Учебники

Arduino — двигатель постоянного тока

В этой главе мы будем связывать различные типы двигателей с платой Arduino (UNO) и покажем вам, как подключить двигатель и управлять им с вашей платы.

Есть три разных типа двигателей —

  • Двигатель постоянного тока
  • Серводвигатель
  • Шаговый двигатель

Двигатель постоянного тока (двигатель постоянного тока) является наиболее распространенным типом двигателя. Двигатели постоянного тока обычно имеют только два провода, один положительный и один отрицательный. Если вы подключите эти два провода напрямую к аккумулятору, двигатель будет вращаться. Если вы переключите провода, двигатель будет вращаться в противоположном направлении.

Двигатель постоянного тока

Предупреждение. Запрещается приводить двигатель в движение непосредственно от выводов платы Arduino. Это может повредить доску. Используйте схему драйвера или IC.

Мы разделим эту главу на три части —

  • Просто сделай мотор крутится
  • Контроль скорости двигателя
  • Контролировать направление вращения двигателя постоянного тока

Необходимые компоненты

Вам понадобятся следующие компоненты —

  • 1x Arduino UNO доска
  • 1x PN2222 Транзистор
  • 1x малый 6В постоянного тока
  • 1x 1N4001 диод
  • 1x 270 Ом Резистор

Процедура

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

Соединения двигателя постоянного тока

Меры предосторожности

При подключении соблюдайте следующие меры предосторожности.

  • Сначала убедитесь, что транзистор подключен правильно. Плоская сторона транзистора должна быть обращена к плате Arduino, как показано на схеме.

  • Во-вторых, полосатый конец диода должен быть направлен к линии питания + 5 В в соответствии с расположением, показанным на рисунке.

Сначала убедитесь, что транзистор подключен правильно. Плоская сторона транзистора должна быть обращена к плате Arduino, как показано на схеме.

Во-вторых, полосатый конец диода должен быть направлен к линии питания + 5 В в соответствии с расположением, показанным на рисунке.

Spin ControlArduino Code

int motorPin = 3;

void setup() {

}

void loop() {
   digitalWrite(motorPin, HIGH);
}

Код для заметки

Транзистор действует как переключатель, управляющий питанием двигателя. Контакт 3 Arduino используется для включения и выключения транзистора, и на эскизе ему присваивается название «motorPin».

Результат

Двигатель будет вращаться на полной скорости, когда вывод Arduino № 3 поднимется высоко.

Контроль скорости двигателя

Ниже приведена принципиальная схема двигателя постоянного тока, подключенного к плате Arduino.

Контроль скорости двигателя

Arduino Code

int motorPin = 9;

void setup() {
   pinMode(motorPin, OUTPUT);
   Serial.begin(9600);
   while (! Serial);
   Serial.println("Speed 0 to 255");
}

void loop() {
   if (Serial.available()) {
      int speed = Serial.parseInt();
      if (speed >= 0 && speed <= 255) {
         analogWrite(motorPin, speed);
      }
   }
}

Код для заметки

Транзистор действует как переключатель, управляющий мощностью двигателя. Контакт 3 Arduino используется для включения и выключения транзистора, и на эскизе ему присваивается название «motorPin».

Когда программа запускается, она предлагает вам ввести значения для управления скоростью двигателя. Вам необходимо ввести значение от 0 до 255 в Serial Monitor.

Командное окно

В функции «loop» команда «Serial.parseInt» используется для считывания числа, введенного в виде текста в Serial Monitor, и преобразования его в «int». Вы можете ввести любой номер здесь. Оператор ‘if’ в следующей строке просто выполняет аналоговую запись с этим номером, если число находится в диапазоне от 0 до 255.

Результат

Двигатель постоянного тока будет вращаться с различными скоростями в соответствии со значением (от 0 до 250), полученным через последовательный порт.

Контроль направления вращения

Для управления направлением вращения двигателя постоянного тока без замены проводов можно использовать схему, называемую H-мостом . H-мост — это электронная схема, которая может управлять двигателем в обоих направлениях. H-мосты используются во многих различных приложениях. Одним из наиболее распространенных приложений является управление двигателями в роботах. Он называется H-мостом, потому что он использует четыре транзистора, соединенных таким образом, что принципиальная схема выглядит как «H».

Мы будем использовать L298 H-Bridge IC здесь. L298 может контролировать скорость и направление двигателей постоянного тока и шаговых двигателей, а также может управлять двумя двигателями одновременно. Его текущий рейтинг составляет 2А для каждого двигателя. Однако при таких токах вам необходимо использовать радиаторы.

Контроль направления вращения

Необходимые компоненты

Вам понадобятся следующие компоненты —

  • 1 × L298 мостовая ИС
  • 1 × двигатель постоянного тока
  • 1 × Arduino UNO
  • 1 × макет
  • 10 × перемычек

Процедура

Ниже приведена принципиальная схема интерфейса двигателя постоянного тока с платой Arduino Uno.

Соединения управления направлением вращения

На схеме выше показано, как подключить микросхему L298 для управления двумя двигателями. Для каждого двигателя имеется три входных контакта: Вход1 (IN1), Вход2 (IN2) и Разрешить1 (EN1) для Двигателя1 и Вход3, Вход4 и Разрешить2 для Двигателя2.

Поскольку в этом примере мы будем управлять только одним двигателем, мы подключим Arduino к IN1 (контакт 5), IN2 (контакт 7) и Enable1 (контакт 6) микросхемы L298. Контакты 5 и 7 являются цифровыми, т. Е. Входы ВКЛ или ВЫКЛ, а для вывода 6 требуется сигнал с широтно-импульсной модуляцией (ШИМ) для контроля скорости двигателя.

В следующей таблице показано направление вращения двигателя на основании цифровых значений IN1 и IN2.

В 1 IN2 Мотор Поведение
ТОРМОЗНАЯ
1 ВПЕРЕД
1 BACKWARD
1 1 ТОРМОЗНАЯ

Контакт IN1 микросхемы L298 подключен к контакту 8 Arduino, а IN2 подключен к контакту 9. Эти два цифровых контакта Arduino контролируют направление двигателя. EN Контакт IC подключен к выводу 2 ШИМ Arduino. Это будет контролировать скорость двигателя.

Чтобы установить значения выводов Arduino 8 и 9, мы использовали функцию digitalWrite (), а для установки значения вывода 2 мы должны использовать функцию analogWrite ().

Шаги подключения

  • Подключите 5V и заземление IC к 5V и заземлению Arduino соответственно.
  • Подключите двигатель к контактам 2 и 3 микросхемы.
  • Подключите IN1 IC к контакту 8 Arduino.
  • Подключите IN2 IC к контакту 9 Arduino.
  • Подключите EN1 IC к контакту 2 Arduino.
  • Подключите SENS A контакт IC к земле.
  • Подключите Arduino с помощью USB-кабеля Arduino и загрузите программу в Arduino с помощью программного обеспечения Arduino IDE.
  • Подайте питание на плату Arduino с помощью блока питания, аккумулятора или USB-кабеля.

Arduino Code

const int pwm = 2 ; //initializing pin 2 as pwm
const int in_1 = 8 ;
const int in_2 = 9 ;
//For providing logic to L298 IC to choose the direction of the DC motor

void setup() {
   pinMode(pwm,OUTPUT) ; //we have to set PWM pin as output
   pinMode(in_1,OUTPUT) ; //Logic pins are also set as output
   pinMode(in_2,OUTPUT) ;
}

void loop() {
   //For Clock wise motion , in_1 = High , in_2 = Low
   digitalWrite(in_1,HIGH) ;
   digitalWrite(in_2,LOW) ;
   analogWrite(pwm,255) ;
   /* setting pwm of the motor to 255 we can change the speed of rotation
   by changing pwm input but we are only using arduino so we are using highest
   value to driver the motor */
   //Clockwise for 3 secs
   delay(3000) ;
   //For brake
   digitalWrite(in_1,HIGH) ;
   digitalWrite(in_2,HIGH) ;
   delay(1000) ;
   //For Anti Clock-wise motion - IN_1 = LOW , IN_2 = HIGH
   digitalWrite(in_1,LOW) ;
   digitalWrite(in_2,HIGH) ;
   delay(3000) ;
   //For brake
   digitalWrite(in_1,HIGH) ;
   digitalWrite(in_2,HIGH) ;
   delay(1000) ;
}

Результат

Двигатель будет сначала вращаться в направлении по часовой стрелке (CW) в течение 3 секунд, а затем в течение 3 секунд против часовой стрелки (CCW).