coche arduino

Hola amigos de arduino tengo un problemilla para un trabajo de bachiller alguien sabría como hacer el código para hacer un coche con UN motor dc de los amarillos, un servo motor, un driver L298N y un modulo HC-06 (bluetooth).

Estaría muy agradecido si alguien me lo pasara.

Muchas gracias

La filosofia del foro es que el codigo te lo hagas tu y lo postees aqui si tienes alguna duda concreta,no se le hace el trabajo a nadie y menos si es para el cole.

Busca en este foro (arriba derecha) L298 o bien en Google : Arduino L298 y encontrás cientos de códigos para empezar y/o tutoriales.

Nuestra sección Documentación esta llena de ejemplos tmb.

Hola, justo acabo de terminar un proyecto asi (hecho con reciclados) y creo que no estoy haciendo mal en pasarte el sketch pues vas a tener que estudiarlo si es que te interesa, Saludos.

imagen: auto hosted at ImgBB — ImgBB

#include <SoftwareSerial.h> //Librería que permite establecer comunicación serie en otros pins
 
//Aquí conectamos los pins RXD,TDX del módulo Bluetooth.
SoftwareSerial BT(10,11); //PIN  TXD DEL MODULO VA A DIGITAL 10 Y PIN RXD DEL MODULO VA A DIGITAL 11 DEL ARDUINO UNO

int spk=9;   // altavoz a GND y pin 9

int c[5]={131,262,523,1046,2093};       // frecuencias 4 octavas de Do
int cs[5]={139,277,554,1108,2217};      // Do#
int d[5]={147,294,587,1175,2349};       // Re
int ds[5]={156,311,622,1244,2489};    // Re#
int e[5]={165,330,659,1319,2637};      // Mi
int f[5]={175,349,698,1397,2794};       // Fa
int fs[5]={185,370,740,1480,2960};     // Fa#
int g[5]={196,392,784,1568,3136};     // Sol
int gs[5]={208,415,831,1661,3322};   // Sol#
int a[5]={220,440,880,1760,3520};      // La
int as[5]={233,466,932,1866,3729};    // La#
int b[5]={247,494,988,1976,3951};      // Si

void nota(int a, int b);            // declaración de la función auxiliar. Recibe dos números enteros.

int in3=5;
int in4=4;
int enb=3;
int in1=7;
int in2=8;
int ena=6;
int ledr=12;
int ledb=13;
int q;
int n,nn;
char dato;

void setup() {
  Serial.begin(9600);
  BT.begin(9600);
  pinMode(in1,OUTPUT); 
  pinMode(in2,OUTPUT);
  pinMode(ena,OUTPUT);
  pinMode(in3,OUTPUT); 
  pinMode(in4,OUTPUT);
  pinMode(enb,OUTPUT);
  pinMode(ledr,OUTPUT);
  pinMode(ledb,OUTPUT);
  
}

void nota(int frec, int t) //funcion musical
{
    tone(spk,frec);      // suena la nota frec recibida
    delay(t);                // para despues de un tiempo t
}

void loop() {

if(BT.available())   {
    dato=BT.read(); //Guarda UN carácter  en la variable "dato"

if(dato=='A')    {  // velocidad 1
     //Preparamos la salida para que los motores giren en un sentido
        digitalWrite (in3, HIGH); //adelante
        digitalWrite (in4, LOW);
        digitalWrite (in2, LOW); //adelante
        digitalWrite (in1, HIGH);
      // Aplicamos PWM al pin ENB y ENA, haciendo girar el motor a una velocidad que le indicamos en analogWrite
        analogWrite(enb,200);  //5.05v a 220 5.30v a 240
        analogWrite(ena,205);  //4.16v a 220 5.08v a 240
    }
if(dato=='B')    {  // velocidad 2
     //Preparamos la salida para que los motores giren en un sentido
        digitalWrite (in3, HIGH); //adelante
        digitalWrite (in4, LOW);
        digitalWrite (in2, LOW); //adelante
        digitalWrite (in1, HIGH);
      // Aplicamos PWM al pin ENB y ENA, haciendo girar el motor a una velocidad que le indicamos en analogWrite
        analogWrite(enb,255);  //5.05v a 220 5.30v a 240
        analogWrite(ena,250);  //4.16v a 220 5.08v a 240
    }  
      
      if(dato=='C')       { // parar motores
       analogWrite(enb,0);
       analogWrite(ena,0);
      }

 if(dato=='D')    {  // marcha atras
     //Preparamos la salida para que los motores giren en un sentido
        digitalWrite (in3, LOW); //atras
        digitalWrite (in4, HIGH);
        digitalWrite (in2, HIGH); //atras
        digitalWrite (in1, LOW);
      // Aplicamos PWM al pin ENB y ENA, haciendo girar el motor a una velocidad que le indicamos en analogWrite
        analogWrite(enb,230);  //5.05v a 220 5.30v a 240
        analogWrite(ena,230);  //4.16v a 220 5.08v a 240
    } 

if(dato=='E')    {  // doblar derecha   rueda derecha (enb) gira hacia atras y rueda izq (ena) gira haica adelante
     //Preparamos la salida para que los motores giren en un sentido
        digitalWrite (in3, LOW); //atras
        digitalWrite (in4, HIGH);
        digitalWrite (in2, LOW); //adelante
        digitalWrite (in1, HIGH);
      // Aplicamos PWM al pin ENB y ENA, haciendo girar el motor a una velocidad que le indicamos en analogWrite
        analogWrite(enb,240);  //5.05v a 220 5.30v a 240
        analogWrite(ena,240);  //4.16v a 220 5.08v a 240          
   }

if(dato=='F')    {  // doblar izquierda   rueda derecha (enb) gira hacia adelante y rueda izq (ena) gira haica atras
     //Preparamos la salida para que los motores giren en un sentido
        digitalWrite (in3, HIGH); //adelante
        digitalWrite (in4, LOW);
        digitalWrite (in2, HIGH); //atras
        digitalWrite (in1, LOW);
      // Aplicamos PWM al pin ENB y ENA, haciendo girar el motor a una velocidad que le indicamos en analogWrite
        analogWrite(enb,240);  //5.05v a 220 5.30v a 240
        analogWrite(ena,240);  //4.16v a 220 5.08v a 240          
   }

if(dato=='G' and n!= 1)    {  // luces rosas prende
 digitalWrite (ledr, HIGH); 
 dato='y'; 
 n=1;           
   }   
if(dato=='G' and n!= 0)    {  // luces rosas apaga
 digitalWrite (ledr, LOW); 
 dato='w'; 
 n=0;           
   }  

if(dato=='H' and nn!= 1)    {  // luces blancas prende
 digitalWrite (ledb, HIGH); 
 dato='x'; 
 nn=1;           
   }   
if(dato=='H' and nn!= 0)    {  // luces blancas apaga
 digitalWrite (ledb, LOW);  
 dato='z'; 
 nn=0;           
   }  

if (dato=='I') {
nota(d[1],120);noTone(spk);delay(10);
nota(d[1],120);noTone(spk);delay(10);
nota(d[1],120);noTone(spk);delay(10);
nota(g[1],675);noTone(spk);delay(35);
nota(d[2],675);noTone(spk);delay(10);
nota(c[2],120);noTone(spk);delay(10);
nota(b[1],120);noTone(spk);delay(10);
nota(a[1],120);noTone(spk);delay(10);
nota(g[2],675);noTone(spk);delay(35);
nota(d[2],675);noTone(spk);delay(20);
dato='r'; 
}
      
  }
}