Omet navegació

Motors CC amb l'escut L298. Control tot/res.

Fes el muntatge següent.

2Motors CC L298 ESP32

Et calen:

  • Portapiles 3V
  • Portapiles 9V
  • Piles.
  • Targeta L298
  • Targeta ESP32
  • 2 Motors CC
  • Cables

El funcionament del L298 és facil. Mentre estiga habilitat EnableA i EnableB ja sigua per que tens una clema en cada pin, o per que amb la targeta actives Enable A i B, els dos motors A i B estan habilitats, les entrades IN1 i IN2 fan anar el motor Horariament o  Anti Horariament respectivament. Si desactiven les dues el motor A para. IN4 i IN3 fan anar el motor Horariament o  Anti Horariament respectivament. Si desactiven les dues el motor B para. Obre el BlocklyArduino i fes el programa següent per provar els motors.

2Motors L298 tot_res ESP32

El programa equivalent per Arduino IDE és ací baix. Fixat que les funcions (procediments) en rosa que hem creat amb el diagrama de blocs de BlocklyArduino està  baix en funcions

void nom_funció ( ) {

ordres de la funció

}

Després dins de la funció principal void loop ( )  { } cridem a aquestes funcions que hem definit dins dels blocs rosa.

// Motor A Horari
void Motor_A_Horari() {
  Serial.println("Escut L298 motor A Horari");
  Serial.println("Activem IN1=21");
  digitalWrite(21, HIGH);
  Serial.println("Desactivem IN2=22");
  digitalWrite(22, LOW);
}


// Motor B Horari
void Motor_B_Horari() {
  Serial.println("Escut L298 motor B Horari");
  Serial.println("Activem IN4=18");
  digitalWrite(18, HIGH);
  Serial.println("Desactivem IN3=19");
  digitalWrite(19, LOW);
}


// Motor A antiHorari
void Motor_A_antiHorari() {
  Serial.println("Escut L298 motor A antiHorari");
  Serial.println("Desactivem IN1=21 ");
  digitalWrite(21, LOW);
  Serial.println("Activem IN2=22");
  digitalWrite(22, HIGH);
}


// Motor B antiHorari
void Motor_B_antiHorari() {
  Serial.println("Escut L298 motor B Horari");
  Serial.println("Desactivem IN4=18");
  digitalWrite(18, LOW);
  Serial.println("Activem IN3=19");
  digitalWrite(19, HIGH);
}


// Atura motor A
void Atura_Motor_A() {
  Serial.println("Escut L298 motor A aturat");
  Serial.println("Desactivem IN1=21");
  digitalWrite(21, LOW);
  Serial.println("Desactivem IN2=22");
  digitalWrite(22, LOW);
}


// Atura motor B
void Atura_Motor_B() {
  Serial.println("Escut L298 motor B aturat");
  Serial.println("Desactivem IN4=18");
  digitalWrite(18, LOW);
  Serial.println("Desactivem IN3=19");
  digitalWrite(19, LOW);
}



void setup() {
  pinMode(21, OUTPUT);
  pinMode(22, OUTPUT);
  pinMode(18, OUTPUT);
  pinMode(19, OUTPUT);
  Serial.begin(9600);

}

void loop() {
    Motor_A_Horari();
    delay(5000);
    Motor_A_antiHorari();
    delay(5000);
    Atura_Motor_A();
    delay(5000);
    Motor_B_Horari();
    delay(5000);
    Motor_B_antiHorari();
    delay(5000);
    Atura_Motor_B();

} // Final programa

Una funció (procediment) executa un conjunt d'ordres que podem cridar de forma repetida i que sol ser útil que estiga escrita a part per evitar repetir tot el conjunt d'ordres.

Clica el botó </> Codi al BlocklyArduino per exportar el programa a un format llegible per Arduino IDE. Pega dins el codi i carrega el programa a la targeta.

En Windows, no cal pegar el codi a Arduino IDE, prem el botó transfereix a la targeta per carregar el codi a la targeta.

Em ambdos casos no oblides prémer el botó boot al ESP32 i el mantens premut fins que comença a compilar-se el programa 3 segons més tard de prémer el botó Puja/Transfereix a la targeta, podràs veure el % de carrega del programa i al final veuràs un missatge al terminal d'Arduino i els motors es posaran en marxa..

Creat amb eXeLearning (Finestra nova)