Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Construa um Carro Robô 4WD Controlado por IR com Arduino

Componentes e Materiais

Componente Quantidade
Kit Módulo Sensor IR Receptor Controle Remoto Wireless (WINGONEER) 1
Driver de Motor Dual H-Bridge L298N (SainSmart) 1
Kit Chassi Carro Robô 4WD 1
Arduino UNO 1

Ferramentas Necessárias

Sobre o Projeto

Encontrei o design original no Instructables e construí uma versão dele. O original era um veículo de esteira e este é 4WD. O ajuste no design original está na configuração do IR. O design original sofria com feedback quando os motores estavam rodando, o que interferia com o receptor IR. Os motores agiam como geradores onde os fios de terra se encontravam. Mudei os pinos e atribuições para o IR.

Monte a base do carro usando as instruções fornecidas se estiver usando o kit rover SAINSMART.

Construa um Carro Robô 4WD Controlado por IR com Arduino

Receptor IR

int pino_receptor = 4; // Conecte o pino de saída 4 no controlador ao pino Y do receptor IR
int vcc = 5;           // Conecte o pino de saída 5 no controlador ao VCC do receptor IR
int gnd = 6;           // Conecte o pino de saída 6 no controlador ao GND do receptor IR
Construa um Carro Robô 4WD Controlado por IR com Arduino

Módulo Driver de 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 L298N para GND do controlador

Construa um Carro Robô 4WD Controlado por IR com Arduino

Módulo L298N para Motores

// Conjunto Motor A lado direito

Conecte o lado "+" (Vermelho) dos motores na Saída 4

Conecte o lado "-" (Preto) dos motores na Saída 3

// Conjunto Motor B lado esquerdo

Conecte o lado "+" (Vermelho) dos motores na Saída 2

Conecte o lado "-" (Preto) dos motores na Saída 1

Conecte bateria ao módulo driver L298N "+" (Vermelho) no VCC e "-" (Preto) no GND

Diagrama Completo

Construa um Carro Robô 4WD Controlado por IR com Arduino
Construa um Carro Robô 4WD Controlado por IR com Arduino

Código

Controle Remoto IR Carro (C/C++)

#include <IRremote.h>

char comando;
int pino_receptor = 4; // Pino de saída do receptor IR no pino 4
int vcc = 5;           // VCC para sensor IR
int gnd = 6;           // GND para sensor IR
int led_status = 13;

IRrecv irrecv(pino_receptor);
decode_results results;

// Pinos do controlador de motor
// Motor A
int enA = 8;
int in1 = 12;
int in2 = 11;
// Motor B
int enB = 7;
int in3 = 10;
int in4 = 9;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(led_status, OUTPUT);
  digitalWrite(led_status, LOW);
  
  // Define todos os pinos de controle do motor como 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);
  
  // Inicializa pino VCC em HIGH
  digitalWrite(vcc, HIGH);
}

void loop() {
  if (irrecv.decode(&results)) {
    digitalWrite(led_status, LOW);
    irrecv.resume();
    
    if (results.value == 0xFF18E7) { // Botão 2 - frente
      Serial.println("Botao 2");
      digitalWrite(in1, HIGH); digitalWrite(in2, LOW);
      analogWrite(enA, 100);
      digitalWrite(in3, HIGH); digitalWrite(in4, LOW);
      analogWrite(enB, 100);
    }
    else if (results.value == 0xFF10EF) { // Botão 4 - virar esquerda
      Serial.println("Botao 4");
      digitalWrite(in1, HIGH); digitalWrite(in2, LOW);
      analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, LOW);
      analogWrite(enB, 100);
    }
    else if (results.value == 0xFF30CF) { // Botão 1 - girar direita
      Serial.println("Botao Girar Direita");
      digitalWrite(in1, HIGH); digitalWrite(in2, LOW);
      analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, HIGH);
      analogWrite(enB, 100);
    }
    else if (results.value == 0xFF5AA5) { // Botão 6 - virar direita
      Serial.println("Botao Girar Esquerda");
      digitalWrite(in1, LOW); digitalWrite(in2, LOW);
      analogWrite(enA, 100);
      digitalWrite(in3, HIGH); digitalWrite(in4, LOW);
      analogWrite(enB, 100);
    }
    else if (results.value == 0xFF7A85) { // Botão 3 - girar direita (motor A ré, motor B frente)
      digitalWrite(in1, LOW); digitalWrite(in2, HIGH);
      analogWrite(enA, 100);
      digitalWrite(in3, HIGH); digitalWrite(in4, LOW);
      analogWrite(enB, 100);
    }
    else if (results.value == 0xFF4AB5) { // Botão 8 - ré
      Serial.println("Botao 8");
      digitalWrite(in1, LOW); digitalWrite(in2, HIGH);
      analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, HIGH);
      analogWrite(enB, 100);
    }
    else if (results.value == 0xFF38C7) { // Botão 5 - parar
      Serial.println("Botao 5");
      digitalWrite(in1, LOW); digitalWrite(in2, LOW);
      analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, LOW);
      analogWrite(enB, 100);
    }
  }
}

Esquemático

Construa um Carro Robô 4WD Controlado por IR com Arduino

Processo de manufatura

  1. Circuitos de Controle: Fundamentos, Aplicações e Melhores Práticas
  2. Construtores em C#: Tipos, Exemplos e Padrões Avançados
  3. Construa um Controle Remoto Universal Profissional para Raspberry Pi com LIRC
  4. Sistema Automatizado de Enchimento e Monitoramento de Piscina
  5. Sistema Remoto de Monitoramento de Frequência Cardíaca com Alertas AWS IoT
  6. Controle seu Raspberry Pi com Controle Remoto IR Reaproveitado: Desligamento e Reinicialização via LIRC
  7. Vulnerabilidade enteliBUS da Delta Controls: Controle Remoto de Sistemas Prediais Exposto
  8. Monitoramento na Nuvem: Sistema de Controle Remoto para Gestão de Ativos em Tempo Real
  9. 5 Principais Benefícios do Controle Remoto de Produção para a Indústria Moderna
  10. Domine o Controle Remoto de Guindaste Ponte: Aumente Segurança e Eficiência no Armazém