Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/Управление DC-мотором при помощи Arduino и потенциометра

Материал из Онлайн справочника
Перейти к: навигация, поиск

Проверка/Оформление/Редактирование: Мякишев Е.А.


Управление DC-мотором при помощи Arduino и потенциометра

Данный пример демонстрирует как управлять двигателем постоянного тока с помощью Arduino и потенциометром. Код примера демонстрирует управление скоростью вращения двигателя постоянного тока с помощью потенциометра. В зависимости от положения ручки потенциометра, двигатель будет "разгонятся", либо замедляться.

Необходимое оборудование

  • Плата Arduino
    ArduinoUno R3 Front.jpg
    Здесь можно купить Arduino Uno:AliExpress
  • Провода перемычки
  • Макетная плата
  • DC-мотор
  • Резистор 1 кОм
  • Транзистор PN2222
  • Керамический конденсатор 1мкФ
  • Диод 1N4004
  • Потенциометр
  • Дополнительный источник питания(например крона )

Цепь

При сборке схемы обратите внимание на распиновку транзистора - эмитор соединяется с минусом, база через резистор на 1кОм соединяется с 9 выходом Arduino, а коллектор с одним из выводов двигателя, другой вывод двигателя соединяется с плюсом источника питания на . Параллельно двигателю подключаетсякерамический конденсатор(для фильтрации помех от работы двигателя) и диод(для защиты блока питания от обратного напряжения при выключении двигателя). Крайний левый контакт потенциометра соединяется с шиной Arduino, крайний правый с GND Arduino, средний контакт идет на 0-ой аналоговый вход Arduino. Не забудьте объединить минус источника питания и GND Arduino.

Arduino uno and dc motor and pot.png

Двигатели постоянного тока, потребляют ток больше чем может выдать Arduino. Также они создают опасные выбросы напряжения. Для этого необходимо изолировать двигатель постоянного тока от платы Arduino и запитывать его через отдельный источник питания. Использование транзистора позволит безопасно управлять двигателем используя ШИМ. Транзистор работает как простой электрически управляемый переключатель. Каждый биполярный транзистор имеет три контакта: эмиттер, база, коллектор. Между коллектором и эмиттером течет большой ток, при малом токе базы. Изменяя ток базы, мы будем регулировать ток через коллектор-эмиттер и менять скорость вращения двигателя. Т.к. двигатель обладает инерцией, быстрое переключения транзистора с помощью ШИМ приведет к регулировке скорости вращения.

Pn2222 1.jpg

Код

  1. #define MOTOR 9                             //используем 9 вывод для управления DC-мотором
  2. #define POT 0                               //потенциометр подключен к 0-му аналоговому входу
  3.  
  4. int val = 0;                                //переменная для хранения считываемого значения
  5.  
  6. void setup()
  7. {
  8.     pinMode (MOTOR, OUTPUT);                //конфигурируем 9 вход как выход
  9. }
  10.  
  11. void loop()
  12. {
  13.     val = analogRead(POT);                  //считываем значение с 0-го входа, к которому подключен потенциометр
  14.     val = map(val, 0, 1023, 0, 255);        //пропорционально преобразуем измеряемый диапазон значений в выдаваемый диапазон значений
  15.     analogWrite(MOTOR, val);                //выдаем на 9 выход преобразованное значение
  16. }

См.также

Внешние ссылки