Carro de controle remoto IR
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 |
Ferramentas e máquinas necessárias
![]() |
|
Sobre este projeto
Encontrei o design original no Instructables e construí uma versão dele. O original era um veículo de pista e este é 4WD. O ajuste ao design original vem na configuração do IR. O projeto original sofreu realimentação durante o funcionamento dos motores, o que interferiu no receptor de infravermelho. Os motores agiam como geradores onde os fios terra se encontravam. Eu mudei os pinos e atribuições para o IR
Monte a base do carro usando as instruções fornecidas se estiver usando o kit móvel SAINSMART. Encontrado aqui

Receptor IR:
pino_ receptor interno =4; // Conecte o pino de saída 4 no controlador ao receptor IR Y
int vcc =5; // Conecte o pino de saída 5 no controlador ao receptor IV V
int gnd =6; // Conecte o pino de saída 4 no controlador ao receptor IR G

Módulo de acionamento do motor L298N:
// motor A
int enA =8;
int in1 =12;
int in2 =11;
// motor B
int enB =7;
int in3 =10;
int in4 =9;
GND do módulo de acionamento do motor L298N para o GND do controlador

Módulo de acionamento de motor L298N para motores:
// Motor definido A lado direito
Conectar o lado "+" (vermelho) dos motores para fora 4
Conecte o lado "-" (Preto) dos motores ao Out 3
// Conjunto de motor B lado esquerdo
Conectar o lado "+" (vermelho) dos motores para fora 2
Conecte o lado "-" (Preto) dos motores à Saída 1
Conecte a bateria ao módulo de acionamento L298N "+" (vermelho) ao VCC e "-" (preto) ao GND
Diagrama Completo


Código
- Carro de controle remoto IR
Carro de controle remoto IR C #
#includecomando char; int receiver_pin =4; // Conecte o pino de saída do receptor IR no pino 4int vcc =5; // VCC para IR sensorint gnd =6; // GND para IR sensorint statusled =13; IRrecv irrecv (receiver_pin); decode_results results; // conecte os pinos do controlador do motor aos pinos digitais do Arduino // motor Aint enA =8; int in1 =12; int in2 =11; // motor Bint enB =7; int in3 =10; int in4 =9; void setup () {Serial.begin (9600); irrecv.enableIRIn (); pinMode (statusled, OUTPUT); digitalWrite (statusled, LOW); // definir todos os pinos de controle do motor para as saídas pinMode (enA, OUTPUT); pinMode (enB, OUTPUT); pinMode (in1, OUTPUT); pinMode (in2, OUTPUT); pinMode (in3, OUTPUT); pinMode (in4, OUTPUT); pinMode (vcc, OUTPUT); pinMode (gnd, OUTPUT); // Inicializando vcc pin high digitalWrite (vcc, HIGH);} void loop () {if (irrecv.decode (&results)) {digitalWrite (statusled, LOW); irrecv.resume (); if (results.value ==0xFF18E7 ) {// digite o botão 2 de controle do robô para a frente // esta função irá operar os motores em ambas as direções a uma velocidade fixa Serial.println ("Botão 2"); // liga o motor A digitalWrite (in1, HIGH); digitalWrite (in2, LOW); // definir a velocidade para 200 fora do intervalo possível 0 ~ 255 analogWrite (enA, 100); // liga o motor B digitalWrite (in3, HIGH); digitalWrite (in4, LOW); // definir a velocidade para 200 fora do intervalo possível 0 ~ 255 analogWrite (enB, 100);} else if (results.value ==0xFF10EF) {// digite o botão 4 virar à esquerda controle do robô // esta função acionará o motor A em direção direta do motor B para Serial.println ("Botão 4"); // liga o motor A digitalWrite (in1, HIGH); digitalWrite (in2, LOW); // definir a velocidade para 200 fora do intervalo possível 0 ~ 255 analogWrite (enA, 100); // liga o motor B digitalWrite (in3, LOW); digitalWrite (in4, LOW); // definir a velocidade para 200 fora do intervalo possível 0 ~ 255 analogWrite (enB, 100); } else if (results.value ==0xFF30CF) {// digite o botão 1 girar para a esquerda controle do robô // esta função acionará o motor A nas direções para a frente motor B nas direções para trás Serial.println ("Botão girar à direita"); // liga o motor A digitalWrite (in1, HIGH); digitalWrite (in2, LOW); // definir a velocidade para 200 fora do intervalo possível 0 ~ 255 analogWrite (enA, 100); // liga o motor B digitalWrite (in3, LOW); digitalWrite (in4, HIGH); // definir a velocidade para 200 fora do intervalo possível 0 ~ 255 analogWrite (enB, 100); } else if (results.value ==0xFF5AA5) {// digite o botão 6 gire à direita controle do robô // esta função irá parar o motor A, aciona o motor B nas direções para frente Serial.println ("Botão girar à esquerda"); // liga o motor A digitalWrite (in1, LOW); digitalWrite (in2, LOW); // definir a velocidade para 200 fora do intervalo possível 0 ~ 255 analogWrite (enA, 100); // liga o motor B digitalWrite (in3, HIGH); digitalWrite (in4, LOW); // definir a velocidade para 200 fora do intervalo possível 0 ~ 255 analogWrite (enB, 100);} else if (results.value ==0xFF7A85) {// digite o botão 3 girar para a direita controle do robô // esta função acionará o motor A em direções para trás motor B nas direções para frente // liga o motor A digitalWrite (in1, LOW); digitalWrite (in2, HIGH); // definir a velocidade para 200 fora do intervalo possível 0 ~ 255 analogWrite (enA, 100); // liga o motor B digitalWrite (in3, HIGH); digitalWrite (in4, LOW); // definir a velocidade para 200 fora do intervalo possível 0 ~ 255 analogWrite (enB, 100);} else if (results.value ==0xFF4AB5) {// digite o botão 8 para trás controle do robô // esta função acionará o motor A e o motor B nas direções reversas // liga o motor A digitalWrite (in1, LOW); digitalWrite (in2, HIGH); // definir a velocidade para 200 fora do intervalo possível 0 ~ 255 analogWrite (enA, 100); // liga o motor B digitalWrite (in3, LOW); digitalWrite (in4, HIGH); // definir a velocidade para 200 fora do intervalo possível 0 ~ 255 analogWrite (enB, 100);} else if (results.value ==0xFF38C7) {// digite o botão 5 parar o controle do robô // esta função irá parar o motor A e motor B // liga o motor A digitalWrite (in1, LOW); digitalWrite (in2, LOW); // definir a velocidade para 200 fora do intervalo possível 0 ~ 255 analogWrite (enA, 100); // liga o motor B digitalWrite (in3, LOW); digitalWrite (in4, LOW); // definir a velocidade para 200 fora do intervalo possível 0 ~ 255 analogWrite (enB, 100); }}}
Esquemas

Processo de manufatura
- Circuitos de controle
- Construtor C#
- Controle remoto universal Raspberry Pi
- Controle de enchimento da piscina
- Monitor de frequência cardíaca remoto
- Reutilize o controle remoto infravermelho indesejado para desligar e reiniciar o Raspberry Pi
- Ataque de segurança ICS habilita o controle remoto de edifícios
- Monitoramento em nuvem, um sistema de controle remoto
- 5 vantagens do controle remoto de produção
- Controle remoto de guindaste aéreo:tudo o que você precisa saber