O veículo IR é um projeto simples, um carro com Arduino, que recebe sinais infravermelho de um controle remoto para controlar 2 servomotores.
Lista de materiais do veículo IR
- Arduino Uno.
- Módulo receptor IR KY-022.
![sensor do veículo IR](https://www.electricalelibrary.com/wp-content/uploads/2024/01/Receptor-IR-frente.jpg)
- Controle remoto IR.
![controle remoto do veículo IR](https://www.electricalelibrary.com/wp-content/uploads/2024/01/IR-remote-control.jpg)
- 2 baterias recarregáveis Li-Ion de 3,7V/2600mAh.
![baterias para o veículo IR](https://www.electricalelibrary.com/wp-content/uploads/2024/01/batteries-1024x573.png)
- Uma chave de três terminais e um polo.
![](https://www.electricalelibrary.com/wp-content/uploads/2024/01/switch.png)
- Fios para conexão entre os componentes.
- 2 servomotores SM-S4303R da marca Springrc, que podem girar 360º, como se fossem motores comuns. Apenas servos com esta característica devem ser usados neste projeto.
![](https://www.electricalelibrary.com/wp-content/uploads/2024/01/servomotor.png)
![](https://www.electricalelibrary.com/wp-content/uploads/2024/01/schematics.png)
As rodas que se encaixam nos servos foram impressas em 3D.
![](https://www.electricalelibrary.com/wp-content/uploads/2024/01/wheels1.png)
![](https://www.electricalelibrary.com/wp-content/uploads/2024/01/wheels2-1-1024x510.png)
![](https://www.electricalelibrary.com/wp-content/uploads/2024/01/used-PCI.png)
![veículo IR](https://www.electricalelibrary.com/wp-content/uploads/2024/01/IR-car-destaque.png)
Algoritmo
Neste código, são usados os comandos vistos nas partes 3 e 8 dos tutoriais de Arduino.
#include <IRremote.h>
#include <Servo.h>
#define IR_RECEIVE_PIN 8
Servo servo1,servo2;
int posservo1,posservo2;
void setup(){
Serial.begin(9600);
IrReceiver.begin(IR_RECEIVE_PIN);
servo1.attach(5);
servo2.attach(6);
servo1.write(90);
servo2.write(90);
}
void loop(){
if (IrReceiver.decode()) {
IrReceiver.resume();
Serial.println(IrReceiver.decodedIRData.command);
}
if(IrReceiver.decodedIRData.command==22){
servo1.write(60);
}
else if(IrReceiver.decodedIRData.command==12){
servo1.write(90);
}
else if(IrReceiver.decodedIRData.command==8){
servo1.write(140);
}
else if(IrReceiver.decodedIRData.command==90){
servo2.write(70);
}
else if(IrReceiver.decodedIRData.command==94){
servo2.write(90);
}
else if(IrReceiver.decodedIRData.command==13){
servo2.write(130);
}
}