Съдържание:

Модул за разрешаване на Arduino: 4 стъпки
Модул за разрешаване на Arduino: 4 стъпки

Видео: Модул за разрешаване на Arduino: 4 стъпки

Видео: Модул за разрешаване на Arduino: 4 стъпки
Видео: How to use 4 channel Relay to control AC load with Arduino code 2024, Ноември
Anonim
Модул за разрешаване на Arduino
Модул за разрешаване на Arduino

Tinee9 се завръща с нов модул. Този модул се нарича Resolver модул.

В света на управлението на двигателя има различни видове или методи за откриване на позиция. Тези методи включват сензори на Хол, XY сензори, резолвер, RVDT, LVDT, директори на полета, потенциометър и др. В зависимост от начина на настройка на всеки от тези сензори можете дори да определите абсолютната си позиция, без дори да се налага да запазвате последната позиция в паметта.

Модулът, който използвам, може да се използва за демодулиране на RVDT, LVDT и Resolver, но за днешната цел ще бъде демодулиране на резолвер.

Техническо разбиране: Експертно ниво

Урок Plug and Play: Средно ниво

Консумативи

1: Arduino Nano

2: Разделител модул

3: Дъска за хляб

4: 9,0 -волтова батерия или NScope

5: Разрешител

6: 10x прекъсвачи за хляб

Стъпка 1: Разделител модул

Разделител модул
Разделител модул

Има няколко неща, които можете да направите с резолвер, можете да демодулирате мотор за моторна комутация, можете да получите абсолютна позиция, ако не преминете през нулевата точка, и можете да извлечете скорост от двигателя.

Там, където съм ги виждал най -много, е в космическите приложения на елерон, кормило, ракета или управление на камерата.

Те са склонни да бъдат малко по -скъпи от сензора за саксия или зала, но ви дават невероятна разделителна способност.

Стъпка 2: Настройка

Настройвам
Настройвам
Настройвам
Настройвам
Настройвам
Настройвам
Настройвам
Настройвам

1: Първо ще трябва да поставите вашия arduino nano върху дъска за хляб

2: Трябва да свържете 5V Pin на Arduino към +3V3 Pin и 5V pin на Resolver модула (Модулът може да има захранване от 3.3V, докато дава 5V възбуждане на резолвера)

3: Свържете RTN на Arduino към модула RTN on Resolver

4: Свържете D9 на Arduino към PWM на модула Resolver

5: Свържете A0 на Arduino към MCU_COS+ на модула Resolver

6: Свържете A1 на Arduino към MCU_SIN+ на модула Resolver

7: Свържете кабела Resolver EX+ към EX+ на модула Resolver

8: Свържете EX-кабела на Resolver към EX-на модула на Resolver

9: Свържете Resolver COS+ проводника към COS+ на модула Resolver

10: Свържете 2 -те проводника RCOM Resolver към RCOM на модула Resolver

11: Свържете проводника SIN+ на Resolver към SIN+ на модула Resolver

12: Свържете 9V батерия към RTN (-) и VIN (+)

13: Или свържете Nscope +5V до 5V Pin на Arduino и RTN на Nscope към RTN на Arduino

14: Свържете обхвата към USB на компютър

15: Свържете Arduino към USB на компютър

Стъпка 3: Заредете кода

Заредете кода
Заредете кода
Заредете кода
Заредете кода

Копирайте Поставете кода Arduino по -долу във вашата скица в Arduino IDE

Това, което ще направи този код, ще бъде PWM модула за разрешаване. Този модул ще възбуди резолвера и ще произведе квадратна вълна върху вторичните бобини на резолвера. Сигналите, които излизат от Sin+ и Cos+, след това се подават към OPAMP, който ще центрира вълната и ще намали изхода, така че да премине между 0-5Volts.

Sin+ и Cos+ са както имат предвид. Грехът е на 90 градуса извън фазата с вълната Cos.

Тъй като те са на 90 градуса извън фазата, трябва да използваме функцията Atan2 (Cos, Sin), за да получим правилната координата на позицията на резолвера.

След това Arduino ще изплюе, след като получи 4 проби, стойност между -3,14 и 3,14, които представляват съответно -180 градуса и +180 градуса. Ето защо, ако искате да използвате резолвера за абсолютна позиция, трябва да използвате само между -180 и 180 без преобръщане, иначе ще се преобърнете и ще мислите, че сте се върнали в началото или края на хода на задвижването. Това би било проблем, ако решите да използвате резолвер за оста x или y на 3D принтер и се преобърнете, което да доведе до объркване на 3D принтера.

Можех да направя кода малко по -добър с прекъсвания, за да има по -непрекъснато PWMing, но това ще бъде достатъчно за това приложение.int A = A0;

int В = А1; int pwm = 9; int c1 = 0; int c2 = 0; int c3 = 0; int c4 = 0; int c5 = 0; int c6 = 0; int s1 = 0; int s2 = 0; int s3 = 0; int s4 = 0; int s5 = 0; int s6 = 0; поплавък изход = 0,00; int sin1 = 0; int cos1 = 0; int position_state = 1; int get_position = 0; void setup () {// поставете вашия код за настройка тук, за да стартирате веднъж: pinMode (pwm, OUTPUT); Serial.begin (115200); }

void loop () {

ако (get_position = 5) {cos1 = (c1+c2)-(c3+c4); sin1 = (s1+s2)-(s3+s4); изход = atan2 (cos1, sin1); c1 = 0; c2 = 0; c3 = 0; c4 = 0; s1 = 0; s2 = 0; s3 = 0; s4 = 0; Serial.print ("Позиция:"); Serial.println (изход); get_position = 1; }

// поставете основния си код тук, за да се изпълнява многократно:

}

Стъпка 4: Стъпка 3: Забавлявайте се

Стъпка 3: Забавлявайте се
Стъпка 3: Забавлявайте се
Стъпка 3: Забавлявайте се
Стъпка 3: Забавлявайте се

Насладете се на завъртането на резолвера и научете как работи резолверът и какви приложения бихте могли да използвате с този модул за разрешаване.

Препоръчано: