Comunicação serial / L298N / Carrinho 

codigo em c++ :
  1. /***************************************\ 
  2. **               Robotec               ** 
  3. *    https://robotec.webnode.com.br/     * 
  4. *                                       *
  5. *      inscreva-se no nosso canal       *
  6. *    www.youtube.com/c/Roboteclink      *
  7. *                                       *
  8. *        curta a nossa fampage          *
  9. *   www.facebook.com/Robotecoficial/    *
  10. *                                       *
  11. * ESTE CODIGO É DA ROBOTEC COMPORATION  * 
  12. *       FAVOR - MANTER O DOMINIO        *
  13. **                                     ** 
  14. \***************************************/
  1.  
  2. const int led = 10; //buzina
  3. int EstadoBotao = 0; //Variavel para ler o status do pushbutton 
  4. int IN1 = 4; //numero da porta do que devo ligar =IN1
  5. int IN2 = 5;//numero da porta do que devo ligar =IN2
  6. int IN3 = 6;//numero da porta do que devo ligar = IN3
  7. int IN4 = 7;//numero da porta do que devo ligar = IN4
  8. int temp = 250; //define tempo de execução 
  9. void setup() //inicia o programa 
  10. {
  11.  
  12.   Serial.begin(9600);   //numero da porta serial padrao 
  13.   pinMode(led, OUTPUT); 
  14.   pinMode(IN1, OUTPUT);
  15.   pinMode(IN2, OUTPUT);
  16.   pinMode(IN3, OUTPUT);
  17.   pinMode(IN4, OUTPUT);
  18. }
  19.  
  20. void loop()  // loop
  21.  
  22.   if (Serial.available() > 0) {   // biblioteca serial .aVailable
  23.  
  24.     char ler = int(Serial.read()); // define com o nome ler 
  25.  
  26.     switch (ler) { 
  27.     case 'w':   //comando no teclado 
  28.       digitalWrite(IN1, LOW);
  29.       digitalWrite(IN2, HIGH);
  30.       digitalWrite(IN3, HIGH);
  31.       digitalWrite(IN4, LOW);
  32.       delay(temp);
  33.       Serial.println("Frente"); // define para ir para frente
  34.       break;
  35.     case 'a'://comando do teclado 
  36.       digitalWrite(IN1, HIGH);
  37.       digitalWrite(IN2, LOW);
  38.       digitalWrite(IN3, HIGH);
  39.       digitalWrite(IN4, LOW);
  40.       delay(temp);   
  41.       Serial.println("Esquerda"); // define para ir para esquerda 
  42.       break;
  43.     case 'd':  ///comando do teclado
  44.       digitalWrite(IN1, LOW);
  45.       digitalWrite(IN2, HIGH);
  46.       digitalWrite(IN3, LOW);
  47.       digitalWrite(IN4, HIGH);
  48.       delay(temp); 
  49.       Serial.println("Direita"); //define para ir para a direita 
  50.       break;
  51.     case 's': //comando do teclado
  52.       digitalWrite(IN1, HIGH);
  53.       digitalWrite(IN2, LOW);
  54.       digitalWrite(IN3, LOW);
  55.       digitalWrite(IN4, HIGH);
  56.       delay(temp);   
  57.       Serial.println("Tras"); // define para ir para tras 
  58.       break;
  59.     case 'o'://comando do teclado 
  60.       digitalWrite(led, HIGH);
  61.       delay(temp);   
  62.       Serial.println("buzina"); // define para ir para esquerda
  63.     case 'i'://comando do teclado 
  64.       digitalWrite(led, LOW);
  65.       delay(temp);   
  66.       Serial.println("buzina desligada"); // define a buzina
  67.   }
  68.     digitalWrite(IN1, HIGH);
  69.     digitalWrite(IN2, HIGH);
  70.     digitalWrite(IN3, HIGH);
  71.     digitalWrite(IN4, HIGH);
  72.     //delay(1);       
  73.   }
  74.  
  75.  
  76. }
  77.  
  78.  
  79. //Fim do codigo
 
 
imagem: