Управление скоростью драйвера двигателя с помощью Arduino

В этом примере мы будем управлять скоростью линейного привода с помощью Arduino и драйвера двигателя.

Примечание. Это руководство предполагает наличие предварительных знаний об основных электронных принципах, аппаратном и программном обеспечении Arduino. Если вы впервые используете Arduino, мы предлагаем изучить основы одного из многих замечательных руководств для начинающих, доступных через поиск в Google и на YouTube. Имейте в виду, что у нас нет ресурсов для оказания технической поддержки для пользовательских приложений, и мы не будем отлаживать, редактировать, предоставлять код или схемы соединений за пределами этих общедоступных руководств.

Компоненты

Проводка

Управление скоростью драйвера двигателя с помощью Arduino

Обзор оборудования и программного обеспечения

Двигатели постоянного тока в линейных приводах требуют высокого тока (до 5 А), если бы мы подключили линейный привод непосредственно к Arduino, такое высокое потребление тока разрушило бы цифровые выводы Arduino, поскольку они рассчитаны только на 40 мА каждый. Поэтому мы используем драйвер двигателя, который может принимать слаботочный ШИМ-сигнал (широтно-импульсная модуляция) с платы Arduino и выводить сильноточный ШИМ-сигнал на линейный привод.

Драйвер двигателя подключен к двум цифровым выводам ШИМ (выводы 10 и 11 на Arduino Uno). Установив один из этих выводов в НИЗКИЙ, а другой в ВЫСОКИЙ (см. Строки 18 и 19 в коде ниже), мы можем выдвинуть привод на максимальной скорости. Чтобы остановить привод, мы устанавливаем оба контакта в положение LOW (см. Строки 21 и 22 в коде ниже), а чтобы изменить направление движения, мы можем изменить порядок контактов HIGH и LOW (см. Строки 24 и 25 в коде ниже). Мы также можем регулировать скорость, изменяя переменную «Speed» на любое значение в диапазоне [0, 255]; см. строку 17 в коде ниже.

Код

https://gist.github.com/Will-Firgelli/c0ef0871dc1946d75257e0c29dccae2a

Регулировка скорости с помощью потенциометра

В приведенном выше примере мы вручную установили скорость в строке 17 кода. Однако могут возникнуть ситуации, когда мы хотим изменять скорость привода во времени. Самый простой способ добиться этого - использовать потенциометр. А потенциометртрехконтактный переменный резистор, который может действовать как делитель напряжения. Вращая ручку потенциометра, выходное напряжение будет изменяться, и мы можем подключить его к аналоговому выводу на Arduino, чтобы установить переменную скорость.

Проводка

Управление скоростью драйвера двигателя с помощью Arduino

Обзор оборудования и программного обеспечения

Как упоминалось выше, потенциометр - это поворотное устройство, которое изменяет сопротивление при повороте ручки. При подключении двух внешних выводов потенциометра к 5V и GND, а средний вывод к аналоговому выводу Arduino, A0, создается делитель напряжения. При вращении ручки Arduino будет считывать аналоговые показания в диапазоне от [0, 1023].

Для значений в диапазоне [512, 1023] мы хотим, чтобы привод выдвигался, а для значений [0, 511] мы хотим, чтобы привод втягивался, этого можно достичь с помощью простого оператора if () / else в строках 22 и 28 в код ниже. Затем, используя функцию map () (строки 23 и 29 в приведенном ниже коде), мы можем преобразовать это в сигнал ШИМ, который будет управлять скоростью и направлением привода.

Код

https://gist.github.com/Will-Firgelli/d2cdf69edc829974885984b3fb8e4856

Share This Article
Tags:

Need Help Finding the Right Actuator?

We precision engineer and manufacture our products so you get direct manufacturers pricing. We offer same day shipping and knowledgeable customer support. Try using our Actuator Calculator to get help picking the right actuator for your application.