Arduino - silnik prądu stałego

W tym rozdziale połączymy różne typy silników z płytą Arduino (UNO) i pokażemy, jak podłączyć silnik i sterować nim z płyty.

Istnieją trzy różne typy silników -

  • Silnik prądu stałego
  • Siłownik
  • Silnik krokowy

Silnik prądu stałego (silnik prądu stałego) jest najpopularniejszym typem silnika. Silniki prądu stałego zwykle mają tylko dwa przewody, jeden dodatni i jeden ujemny. Jeśli podłączysz te dwa przewody bezpośrednio do akumulatora, silnik będzie się obracał. Jeśli zmienisz przewody, silnik będzie się obracał w przeciwnym kierunku.

Warning- Nie steruj silnikiem bezpośrednio z pinów płyty Arduino. Może to spowodować uszkodzenie tablicy. Użyj obwodu sterownika lub układu scalonego.

Podzielimy ten rozdział na trzy części -

  • Po prostu wpraw silnik w ruch
  • Kontroluj prędkość silnika
  • Kontroluj kierunek wirowania silnika prądu stałego

Wymagane składniki

Będziesz potrzebował następujących komponentów -

  • 1x płytka Arduino UNO
  • 1x tranzystor PN2222
  • 1x mały silnik 6 V DC
  • 1x dioda 1N4001
  • 1x Rezystor 270 Ω

Procedura

Postępuj zgodnie ze schematem obwodu i wykonaj połączenia, jak pokazano na rysunku poniżej.

Środki ostrożności

Podczas wykonywania połączeń należy zachować następujące środki ostrożności.

  • Najpierw upewnij się, że tranzystor jest podłączony we właściwy sposób. Płaska strona tranzystora powinna być skierowana w stronę płytki Arduino, jak pokazano na układzie.

  • Po drugie, pasiasta końcówka diody powinna być skierowana w stronę linii zasilającej + 5V zgodnie z układem pokazanym na obrazku.

Spin ControlArduino Code

int motorPin = 3;

void setup() {

}

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

Kod do uwagi

Tranzystor działa jak przełącznik, kontrolując moc silnika. Pin 3 Arduino służy do włączania i wyłączania tranzystora i otrzymuje w szkicu nazwę „motorPin”.

Wynik

Silnik będzie się obracał z pełną prędkością, gdy pin nr 3 Arduino stanie się wysoki.

Kontrola prędkości silnika

Poniżej znajduje się schemat ideowy silnika prądu stałego, podłączonego do płytki Arduino.

Kod Arduino

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);
      }
   }
}

Kod do uwagi

Tranzystor działa jak przełącznik, kontrolując moc silnika. Pin 3 Arduino służy do włączania i wyłączania tranzystora i otrzymuje w szkicu nazwę „motorPin”.

Gdy program się uruchamia, wyświetla monit o podanie wartości sterujących prędkością silnika. Musisz wprowadzić wartość od 0 do 255 w monitorze szeregowym.

W funkcji „pętla” polecenie „Serial.parseInt” służy do odczytywania liczby wprowadzonej jako tekst w monitorze szeregowym i konwertowania jej na liczbę „int”. Tutaj możesz wpisać dowolną liczbę. Instrukcja „if” w następnym wierszu po prostu wykonuje zapis analogowy o tej liczbie, jeśli liczba zawiera się w przedziale od 0 do 255.

Wynik

Silnik prądu stałego będzie się obracał z różnymi prędkościami w zależności od wartości (od 0 do 250) odebranej przez port szeregowy.

Kontrola kierunku wirowania

Aby kontrolować kierunek wirowania silnika prądu stałego, bez zamiany wyprowadzeń, można użyć obwodu o nazwie H-Bridge. Mostek H to obwód elektroniczny, który może napędzać silnik w obu kierunkach. Mostki typu H są używane w wielu różnych zastosowaniach. Jedną z najczęstszych aplikacji jest sterowanie silnikami w robotach. Nazywa się to mostkiem H, ponieważ wykorzystuje cztery tranzystory połączone w taki sposób, że schemat wygląda jak „H.”.

Będziemy używać tutaj układu scalonego mostka H L298. L298 może kontrolować prędkość i kierunek silników prądu stałego i silników krokowych, a także może sterować dwoma silnikami jednocześnie. Jego prąd znamionowy wynosi 2A dla każdego silnika. Jednak przy tych prądach będziesz musiał użyć radiatorów.

Wymagane składniki

Będziesz potrzebował następujących komponentów -

  • 1 × mostek L298 IC
  • 1 × silnik prądu stałego
  • 1 × Arduino UNO
  • 1 × płytka prototypowa
  • 10 x przewody połączeniowe

Procedura

Poniżej znajduje się schemat ideowy interfejsu silnika prądu stałego do płyty Arduino Uno.

Powyższy schemat pokazuje, jak podłączyć L298 IC do sterowania dwoma silnikami. Istnieją trzy styki wejściowe dla każdego silnika, Wejście1 (IN1), Wejście2 (IN2) i Włączenie1 (EN1) dla silnika1 i wejścia3, wejścia4 i zezwolenia2 dla silnika2.

Ponieważ w tym przykładzie będziemy sterować tylko jednym silnikiem, podłączymy Arduino do IN1 (pin 5), IN2 (pin 7) i Enable1 (pin 6) układu L298. Piny 5 i 7 są cyfrowe, tj. Wejścia ON lub OFF, podczas gdy pin 6 wymaga sygnału modulowanego szerokością impulsu (PWM) do sterowania prędkością silnika.

Poniższa tabela pokazuje, w którym kierunku silnik będzie się obracał na podstawie wartości cyfrowych IN1 i IN2.

W 1 W 2 Zachowanie motoryczne
HAMULEC
1 NAPRZÓD
1 DO TYŁU
1 1 HAMULEC

Pin IN1 układu scalonego L298 jest podłączony do pinu 8 Arduino, podczas gdy IN2 jest podłączony do pinu 9. Te dwa piny cyfrowe Arduino sterują kierunkiem silnika. Pin EN A układu scalonego jest podłączony do pinu 2 PWM Arduino. Pozwoli to kontrolować prędkość silnika.

Do ustawienia wartości pinów 8 i 9 Arduino wykorzystaliśmy funkcję digitalWrite (), natomiast do ustawienia wartości pinu 2 musimy skorzystać z funkcji analogWrite ().

Kroki połączenia

  • Podłącz odpowiednio 5 V i masę układu scalonego do 5 V i masę Arduino.
  • Podłącz silnik do pinów 2 i 3 układu scalonego.
  • Podłącz IN1 układu scalonego do pinu 8 Arduino.
  • Podłącz IN2 układu scalonego do pinu 9 Arduino.
  • Podłącz EN1 układu scalonego do pinu 2 Arduino.
  • Podłącz pin SENS A układu scalonego do masy.
  • Podłącz Arduino za pomocą kabla Arduino USB i prześlij program do Arduino za pomocą oprogramowania Arduino IDE.
  • Dostarcz zasilanie do płyty Arduino za pomocą zasilacza, baterii lub kabla USB.

Kod Arduino

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) ;
}

Wynik

Silnik będzie pracował najpierw w kierunku zgodnym z ruchem wskazówek zegara (CW) przez 3 sekundy, a następnie w kierunku przeciwnym do ruchu wskazówek zegara (CCW) przez 3 sekundy.