Sobre un chasis de cadenas con dos motores, hemos colocado un Arduino, una batería de 12 voltios y un driver de motores, el doble puente H (L298N). El precio de este driver en Aliexpress es de 1,45 €. Los pines que utiliza el driver de motores son el 2, 3, 4 y 5. También dispone de un receptor de infrarrojos conectado en el pin 6.
La pieza que alberga la batería y sobre la que se sitúan la placa Arduino UNO, el driver de motores y el interruptor está construida con la impresora 3D y su archivo se puede encontrar en Thingiverse.
#include <IRremote.h>
IRrecv receptorinfra(6); //Se crea un receptor de infrarrojos de nombre "receptorinfra", conectado al pin 6
decode_results valor; //En la variable "valor" se guardan los valores enviados por el mando a distancia
int tecla; //En esta variable se guardan los valores asignados a cada tecla del mando a distancia
void setup()
{
Serial.begin(9600);
receptorinfra.enableIRIn(); // Se reinicia el receptor de infrarojos
pinMode (3, OUTPUT);
}
void loop() {
if (receptorinfra.decode(&valor)) { //Si se recibe algun dato del mando a distancia
tecla=valor.value;
Serial.println(tecla);
if (tecla==-1786){ // Código de la tecla adelante
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
}
if (tecla==31620){ // Código de la tecla atras
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
}
if (tecla==11220){ // Código de la tecla izquierda
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
}
if (tecla==-9946){ // Código de la tecla derecha
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
}
if (tecla==31110){ // Código de la tecla encender/apagar, para parar el robot
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
receptorinfra.resume(); // Recibe el siguiente valor
}
delay(100); //Espera 100 milisegundos
}
No hay comentarios:
Publicar un comentario