lunes, 1 de julio de 2019

Proyecto de robot oruga


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: