Estamos modificando el robot de orugas.
La parte mecánica ya está montada, pero se ha de realizar todo el cableado y la programación. Las piezas se pueden encontrar en Thingiverse.
Una vez conectados los cables queda algo así.
Este es el programa de Arduino:
#include <IRremote.h>
IRrecv receptorinfra(3); //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 (8, OUTPUT);
pinMode (9, OUTPUT);
pinMode (10, OUTPUT);
pinMode (11, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
}
void loop() {
if (receptorinfra.decode(&valor)) { //Si se recibe algun dato del mando a distancia
tecla=valor.value;
Serial.println(tecla);
if (tecla==1168){ //Subir pinza
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
}
if (tecla==3216){ //Bajar pinza
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
}
if (tecla==2192){ //Abrir pinza
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
if (tecla==144){ //Cerrar pinza
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
if (tecla==720){ //Girar derecha
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
}
if (tecla==3280){ //Girar izquierda
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
}
if (tecla==752){ //Avanzar
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
}
if (tecla==2800){ //Retroceder
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
}
if (tecla==2672){ //Parar todo
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW); //Espera 100 milisegundos
}
receptorinfra.resume(); // Recibe el siguiente valor
}
delay(100);
}
No hay comentarios:
Publicar un comentario