Оглавление:

Модуль резольвера Arduino: 4 шага
Модуль резольвера Arduino: 4 шага

Видео: Модуль резольвера Arduino: 4 шага

Видео: Модуль резольвера Arduino: 4 шага
Видео: Разбираю мотор Toyota Aqua | Декодер резольвера 2024, Ноябрь
Anonim
Модуль Arduino Resolver
Модуль Arduino Resolver

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 на Arduino к выводу + 3V3 и выводу 5V на модуле резольвера (модуль может иметь питание 3,3 В, обеспечивая возбуждение 5 В на резольвере)

3: Подключите RTN на Arduino к RTN на модуле Resolver

4. Подключите D9 на Arduino к ШИМ на модуле резольвера.

5: Подключите A0 на Arduino к MCU_COS + на модуле Resolver

6. Подключите A1 на Arduino к MCU_SIN + на модуле Resolver.

7. Подключите провод резольвера EX + к разъему EX + на модуле резольвера.

8: Подключите провод EX- резольвера к EX- на модуле резольвера.

9. Подключите провод COS + резольвера к COS + на модуле резольвера.

10. Подключите 2 провода RCOM резольвера к RCOM на модуле резольвера.

11: Подключите провод резольвера SIN + к SIN + на модуле резольвера.

12: Подключите батарею 9 В к RTN (-) и VIN (+)

13: Или подключите вывод Nscope + 5V к 5V на Arduino и RTN на Nscope к RTN на Arduino

14: Подключите Scope к USB на ПК

15. Подключите Arduino к USB на ПК.

Шаг 3: Загрузите код

Загрузите код
Загрузите код
Загрузите код
Загрузите код

Скопируйте и вставьте приведенный ниже код Arduino в свой эскиз в Arduino IDE.

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

Sin + и Cos + такие, как они означают. Синхронизация с волной Cos сдвинута по фазе на 90 градусов.

Поскольку они сдвинуты по фазе на 90 градусов, нам нужно использовать функцию Atan2 (Cos, Sin), чтобы получить правильную координату положения резольвера.

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

Я мог бы сделать код немного лучше с помощью прерываний, чтобы обеспечить более непрерывное управление ШИМ, но этого будет достаточно для этого приложения. Int A = A0;

int B = A1; 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. Развлекайтесь

Наслаждайтесь вращением резольвера и узнавайте, как работает резолвер, и в каких приложениях вы можете использовать этот модуль резольвера.

Рекомендуемые: