martedì 23 dicembre 2014

Arduino e motore DC con H-bridge L293D

Nel precedente post http://mancusoa74.blogspot.it/2014/12/arduino-e-motore-dc.html ho spiegato con pilotare un motore DC con Arduino.

Tuttavia in quel post il motore poteva girare in un solo verso siccome ho usato un ULN2003.

In questo post uso un L293D, cioe' un chip che implementa due circuiti Half-Bridge (per maggiori info: http://www.rakeshmondal.info/L293D-Motor-Driver




In questo modo e' possibile controllare il verso di rotazione del motore.

Circuito




Ho implementato il circuito riportato qui sopra









Sketch

Ho implemetato questo semplicissimop sketch che fa ruotare il motore in un versoper  1 secondo e poi nel verso opposto per 1 secondo

void setup() {
  Serial.begin(9600);
  Serial.println("Staring");

  pinMode(2, OUTPUT);
  pinMode(7, OUTPUT);
}



void loop() {

  digitalWrite(2, HIGH);
  digitalWrite(7, LOW);
  delay(1000);          

  digitalWrite(2, LOW);
  digitalWrite(7, LOW);
  delay(2000);
  
  digitalWrite(2, LOW);
  digitalWrite(7, HIGH);
  delay(1000);

  digitalWrite(2, LOW);
  digitalWrite(7, LOW);
  delay(2000);  
}


Come si vede dal codice il motore e' controllato dai pin 2 e 7:


  • Se i pin sono entrambi HIGH o LOW il motore e' fermo.
  • Se il pin 2 e' HIGH e il 7 e' LOW il motore gira in senso orario
  • Se il pin 2 e' LOWe il 7 e' HIGH il motore gira in senso antiorario


Verifica Funzionamento

Come sempre verifichiamo che il tutto funzioni come previsto