~CARRO ROBOT~
“Practica 3”
FECHA: 9/06/24
Grupo: 6N
PROFESOR: SIXTO HUMBERTO GONZALES PÁEZ
INTEGRANTES: Sared Aleman cárdenas,
Maidelyne Guangorena Balderrama, Yazmín,
Velázquez Saucedo, Itzel Porras Silva.
En esta practica realizaremos el control remoto de
nuestro carro robot, este conociste en que pueda ser
capaz de ser controlarlo por medio de un control
remoto.
Como funciona un control remoto: El control remoto
IR (infrarrojos) o mando a distancia de infrarrojos
funciona emitiendo pulsos de luz infrarroja (por
debajo del visible). La senal infrarroja transmite el
codigo correspondiente al boton del mando a
distancia pulsado al dispositivo en forma de una serie
de impulsos de luz infrarroja
Como funciona el IR: Un termometro infrarrojo (IR) es
un sensor que determina la temperatura de un objeto
detectando y cuantificando la radiacion infrarroja
emitida por el objetivo medido
En primer lugar, seleccionamos un control remoto por
infrarrojos que se adecuara a nuestras necesidades y
especificaciones tecnicas. Luego, procedimos a
conectar el receptor IR al circuito del carro robot,
Identifique los pines adecuados en el circuito del carro
robot para conectar el receptor IR
A continuacion, programamos el control remoto para
que enviara senales infrarrojas específicas al receptor
del carro robot. Esto implico asignar funciones a los
diferentes botones del control, como avanzar,
retroceder, girar a la izquierda y girar a la derecha.
Una vez completada la conexion y la programacion,
realice pruebas exhaustivas para verificar el
funcionamiento del control remoto en el carro robot.
Ajustamos la sensibilidad y la direccion segun fuera
necesario para garantizar movimientos precisos y una
respuesta rapida a los comandos del control remoto
En conclusion, el proceso de implementacion del
control remoto por infrarrojos en nuestro carro robot
fue exitoso. Ahora podemos controlar el carro robot
de manera remota y con precision utilizando el control
IR.
Enseguida el codigo que va agregado al arduino
#include <IRremote.h>
int RECV_PIN = 12;
IRrecv irrecv(RECV_PIN);
decode_results results;
#define IR_Go 0x00FF18E7
#define IR_Back 0x00FF4AB5
#define IR_Left 0x00FF10EF
#define IR_Right 0x00FF5AA5
#define IR_Stop 0x00FF38C7
#define Lpwm_pin 5 //adjusting speed
#define Rpwm_pin 6 //adjusting speed //
int pinLB=2; // defining pin2 left rear
int pinLF=4; // defining pin4 left front
int pinRB=7; // defining pin7 right rear
int pinRF=8; // defining pin8 right front
unsigned char pwm_val =150;
void M_Control_IO_config(void)
{
pinMode(pinLB,OUTPUT); // pin2
pinMode(pinLF,OUTPUT); // pin4
pinMode(pinRB,OUTPUT); // pin7
pinMode(pinRF,OUTPUT); // pin8
pinMode(Lpwm_pin,OUTPUT); // pin5 (PWM)
pinMode(Rpwm_pin,OUTPUT); // pin6 (PWM)
}
void Set_Speed(unsigned char pwm)
{
analogWrite(Lpwm_pin,pwm);
analogWrite(Rpwm_pin,pwm);
}
void advance() // going forward
{
digitalWrite(pinRB,LOW); // making motor move
towards right rear
digitalWrite(pinRF,HIGH);
digitalWrite(pinLB,LOW); // making motor move
towards left rear
digitalWrite(pinLF,HIGH);
}
void turnR() //turning right(dual wheel)
{
digitalWrite(pinRB,LOW); //making motor move
towards right rear
digitalWrite(pinRF,HIGH);
digitalWrite(pinLB,HIGH);
digitalWrite(pinLF,LOW); //making motor move
towards left front
}
void turnL() //turning left(dual wheel)
{
digitalWrite(pinRB,HIGH);
digitalWrite(pinRF,LOW ); //making motor move
towards right front
digitalWrite(pinLB,LOW); //making motor move
towards left rear
digitalWrite(pinLF,HIGH);
}
void stopp() //stop
{
digitalWrite(pinRB,HIGH);
digitalWrite(pinRF,HIGH);
digitalWrite(pinLB,HIGH);
digitalWrite(pinLF,HIGH);
}
void back() //back up
{
digitalWrite(pinRB,HIGH); //making motor move
towards right rear
digitalWrite(pinRF,LOW);
digitalWrite(pinLB,HIGH); //making motor move
towards left rear
digitalWrite(pinLF,LOW);
}
void IR_Control(void)
{
unsigned long Key;
if(irrecv.decode(&results)) //judging if serial port
receives data
{
Key = results.value;
switch(Key)
{
case IR_Go:advance(); //UP
break;
case IR_Back: back(); //back
break;
case IR_Left:turnL(); //Left
break;
case IR_Right:turnR(); //Righ
break;
case IR_Stop:stopp(); //stop
break;
default:
break;
}
irrecv.resume(); // Receive the next value
}
}
void setup()
{
M_Control_IO_config();
Set_Speed(pwm_val);
irrecv.enableIRIn(); // Start the receiver
Serial.begin(9600); //initializing serial port,
Bluetooth used as serial port, setting baud ratio at
9600
stopp();
}
void loop()
{
IR_Control();