Управление скоростью драйвера двигателя с помощью 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: