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, а коллектор с одним из выводов двигателя, другой вывод двигателя соединяется с плюсом источника питания на . Параллельно двигателю подключается керамический конденсатор(для фильтрации помех от работы двигателя) и диод(для защиты блока питания от обратного напряжения при выключении двигателя). Не забудьте объединить минус источника питания и GND Arduino.

Arduino uno and dc motor.png

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

Pn2222 1.jpg

Код

  1. #define MOTOR 9                         //используем 9 вывод для управления DC-мотором
  2.  
  3. void setup()
  4. {
  5.     pinMode (MOTOR, OUTPUT);            //конфигурируем 9-вывод как выход
  6. }
  7.  
  8. void loop()
  9. {
  10.     for (int i = 0; i < 256; i++)      
  11.     {
  12.         analogWrite(MOTOR, i);         //в цикле, выдаем постепенно увеличивающуюся величину напряжения на 9 выход, тем самым "разгоняя" мотор
  13.         delay(10);                     //ожидание 10 мкс
  14.     }
  15.     delay(2000);                       //ожидание 2000 мкс
  16.     for (int i = 255; i > =0; i--)
  17.     {
  18.         analogWrite(MOTOR, i);        //в цикле, выдаем постепенно уменьшающуюся величину напряжения на 9 выход, тем самым "тормозя" мотор
  19.         delay(10);                    //ожидание 10 мкс
  20.     }
  21.     delay(2000);                      //ожидание 2000 мкс
  22. }

См.также

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