Arduino - Motore CC

In questo capitolo, interfacciamo diversi tipi di motori con la scheda Arduino (UNO) e ti mostreremo come collegare il motore e guidarlo dalla tua scheda.

Esistono tre diversi tipi di motori:

  • motore a corrente continua
  • Servomotore
  • Motore passo-passo

Un motore CC (motore a corrente continua) è il tipo più comune di motore. I motori CC normalmente hanno solo due conduttori, uno positivo e uno negativo. Se colleghi questi due cavi direttamente a una batteria, il motore ruoterà. Se si cambiano i cavi, il motore ruoterà nella direzione opposta.

Warning- Non guidare il motore direttamente dai pin della scheda Arduino. Ciò potrebbe danneggiare la scheda. Usa un circuito driver o un circuito integrato.

Divideremo questo capitolo in tre parti:

  • Basta far girare il motore
  • Controllare la velocità del motore
  • Controlla la direzione della rotazione del motore CC

Componenti richiesti

Avrai bisogno dei seguenti componenti:

  • 1x scheda Arduino UNO
  • 1x transistor PN2222
  • 1x piccolo motore da 6 V CC
  • 1x diodo 1N4001
  • 1x resistore da 270 Ω

Procedura

Seguire lo schema del circuito ed effettuare i collegamenti come mostrato nell'immagine sotto riportata.

Precauzioni

Adottare le seguenti precauzioni durante i collegamenti.

  • Innanzitutto, assicurati che il transistor sia collegato nel modo giusto. Il lato piatto del transistor dovrebbe essere rivolto verso la scheda Arduino come mostrato nella disposizione.

  • Secondo, l'estremità a strisce del diodo dovrebbe essere verso la linea di alimentazione + 5V secondo la disposizione mostrata nell'immagine.

Spin Control Codice Arduino

int motorPin = 3;

void setup() {

}

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

Codice da notare

Il transistor agisce come un interruttore, controllando l'alimentazione al motore. Il pin 3 di Arduino viene utilizzato per accendere e spegnere il transistor e nello schizzo viene assegnato il nome "motorPin".

Risultato

Il motore girerà a piena velocità quando il pin numero 3 di Arduino diventa alto.

Controllo della velocità del motore

Di seguito è riportato il diagramma schematico di un motore CC, collegato alla scheda Arduino.

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

Codice da notare

Il transistor agisce come un interruttore, controllando la potenza del motore. Il pin 3 di Arduino viene utilizzato per accendere e spegnere il transistor e nello schizzo viene assegnato il nome "motorPin".

All'avvio del programma, viene richiesto di fornire i valori per controllare la velocità del motore. È necessario immettere un valore compreso tra 0 e 255 in Serial Monitor.

Nella funzione "loop", il comando "Serial.parseInt" viene utilizzato per leggere il numero inserito come testo nel monitor seriale e convertirlo in un "int". Puoi digitare qualsiasi numero qui. L'istruzione "if" nella riga successiva esegue semplicemente una scrittura analogica con questo numero, se il numero è compreso tra 0 e 255.

Risultato

Il motore CC girerà con velocità diverse in base al valore (da 0 a 250) ricevuto tramite la porta seriale.

Controllo della direzione di rotazione

Per controllare la direzione della rotazione del motore CC, senza scambiare i cavi, è possibile utilizzare un circuito chiamato H-Bridge. Un ponte ad H è un circuito elettronico che può azionare il motore in entrambe le direzioni. I ponti H sono utilizzati in molte applicazioni differenti. Una delle applicazioni più comuni è il controllo dei motori nei robot. È chiamato ponte H perché utilizza quattro transistor collegati in modo tale che il diagramma schematico assomigli a un "H."

Qui utilizzeremo il circuito integrato H-Bridge L298. L'L298 può controllare la velocità e la direzione dei motori CC e dei motori passo-passo e può controllare due motori contemporaneamente. La sua corrente nominale è di 2 A per ogni motore. A queste correnti, tuttavia, sarà necessario utilizzare dissipatori di calore.

Componenti richiesti

Avrai bisogno dei seguenti componenti:

  • 1 × L298 ponte IC
  • 1 × motore CC
  • 1 × Arduino UNO
  • 1 × breadboard
  • 10 × cavi jumper

Procedura

Di seguito è riportato il diagramma schematico dell'interfaccia del motore CC alla scheda Arduino Uno.

Il diagramma sopra mostra come collegare l'IC L298 per controllare due motori. Sono presenti tre pin di ingresso per ogni motore, Input1 (IN1), Input2 (IN2) e Enable1 (EN1) per Motor1 e Input3, Input4 e Enable2 per Motor2.

Poiché in questo esempio controlleremo solo un motore, collegheremo Arduino a IN1 (pin 5), IN2 (pin 7) e Enable1 (pin 6) dell'IC L298. I pin 5 e 7 sono digitali, ovvero ingressi ON o OFF, mentre il pin 6 necessita di un segnale modulato a larghezza di impulso (PWM) per controllare la velocità del motore.

La tabella seguente mostra in quale direzione girerà il motore in base ai valori digitali di IN1 e IN2.

IN 1 IN 2 Comportamento motorio
FRENO
1 INOLTRARE
1 INDIETRO
1 1 FRENO

Il pin IN1 dell'IC L298 è collegato al pin 8 di Arduino mentre IN2 è collegato al pin 9. Questi due pin digitali di Arduino controllano la direzione del motore. Il pin EN A di IC è collegato al pin PWM 2 di Arduino. Questo controllerà la velocità del motore.

Per impostare i valori dei pin 8 e 9 di Arduino abbiamo utilizzato la funzione digitalWrite (), e per impostare il valore del pin 2 dobbiamo utilizzare la funzione analogWrite ().

Passaggi di connessione

  • Collega rispettivamente 5 V e la massa dell'IC a 5 V e la massa di Arduino.
  • Collegare il motore ai pin 2 e 3 dell'IC.
  • Collega IN1 dell'IC al pin 8 di Arduino.
  • Collega IN2 dell'IC al pin 9 di Arduino.
  • Collega EN1 di IC al pin 2 di Arduino.
  • Collegare il pin SENS A del circuito integrato a terra.
  • Collega Arduino utilizzando il cavo USB Arduino e carica il programma su Arduino utilizzando il software IDE Arduino.
  • Fornire alimentazione alla scheda Arduino tramite alimentatore, batteria o cavo USB.

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

Risultato

Il motore funzionerà prima in senso orario (CW) per 3 secondi e poi in senso antiorario (CCW) per 3 secondi.