Omet navegació

5.2) Motors amb l'escut L293 A_UNO

Motors amb control tot / res

Arduino UNO no té prou intensitat a les eixides digitals per controlar cap motor de corrent continu. Per això cal utilitzar l'escut A_UNO que té un integrat L293 per augmentar la intensitat a l'eixida on estan connectats els motors. Fes el muntatge següent amb dos motors.

Arduino + Escut L293 + Motors E i D

Ara escriu el següent programa amb Blockly@rduino:

Escut A_UNO L293 tot res

Fixa't que em definit funcions per cada motor per engegar, aturar cada motor avant (Horari) i enrere (antiHorari). Després al bloc principal del programa void_loop cridem aquest funcions per fer anar el motor i aturem el programa el segons que volem mantindre aquesta funció en marxa. Mira el programa equivalent per a l'Arduino IDE.

// Motor esquerre horari
void Motor_Esquerre_Horari() {
  digitalWrite(13, HIGH);
  digitalWrite(12, LOW);
}


// Motor esquerre antiHorari
void Motor_Esquerre_antiHorari() {
  digitalWrite(13, LOW);
  digitalWrite(12, HIGH);
}


// Motor esquerre aturat
void Motor_Esquerre_aturat() {
  digitalWrite(13, LOW);
  digitalWrite(12, LOW);
}


// Motor dret horari
void Motor_Dret_Horari() {
  digitalWrite(8, HIGH);
  digitalWrite(9, LOW);
}


// Motor dret antihorari
void Motor_Dret_antiHorari() {
  digitalWrite(8, LOW);
  digitalWrite(9, HIGH);
}


// Motor dret aturat
void Motor_Dret_aturat() {
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
}



void setup() {
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  Serial.begin(9600);
    Serial.println("Anem a provar l\'escut A_UNO_L293");

  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
}

void loop() {
    Motor_Esquerre_Horari();
    delay(5000);
    Motor_Esquerre_antiHorari();
    delay(5000);
    Motor_Esquerre_aturat();
    delay(5000);
    Motor_Dret_Horari();
    delay(5000);
    Motor_Dret_antiHorari();
    delay(5000);
    Motor_Dret_aturat();
    delay(5000);
}

 
Fes la pràctica de motors 1.