>> Tecnologia Eletrônica >  >> TVs >> Controles Remotos

Circuito DIY de Carro Robô Controlado Sem Fio (Arduino + HC-12)

Lista de peças e ligação para robô 2WD controlado por segundo transceiver HC-12 como controle remoto portátil.

Lista de Materiais

  • Arduino Uno × 2 (robô + controle)
  • Driver ponte H duplo L298N
  • Transceiver HC-12 433 MHz × 2
  • 2× motores DC com redução (motor TT 1:48) + rodas
  • Chassi + roda livre
  • 2× baterias 18650 Li-ion + suporte (7,4 V) ou 6× AA NiMH
  • Fios jumpers, protoboard/placa perfurada

Ligação do Robô

  • HC-12 VCC → 3,3 V, GND → GND, TX → D2, RX → D3 (SoftwareSerial).
  • L298N: ENA→D5, IN1→D6, IN2→D7, IN3→D8, IN4→D9, ENB→D10.
  • Motores em OUT1–OUT4. Bateria no L298N +12 V e GND; 5 V out → Arduino Vin.

Ligação do Controle

  • HC-12 mesmos pinos (D2/D3).
  • 4 pushbuttons (Frente/Trás/Esq/Dir) em D4–D7 com INPUT_PULLUP.
  • Alimentação via USB ou 2× AA.

Código do Robô

#include <SoftwareSerial.h> SoftwareSerial hc12(2,3); const int ENA=5,IN1=6,IN2=7,IN3=8,IN4=9,ENB=10; void setup(){ hc12.begin(9600); pinMode(ENA,OUTPUT);pinMode(IN1,OUTPUT);pinMode(IN2,OUTPUT); pinMode(IN3,OUTPUT);pinMode(IN4,OUTPUT);pinMode(ENB,OUTPUT); } void loop(){ if(hc12.available()){ char c=hc12.read(); switch(c){ case 'F': forward(); break; case 'B': backward(); break; case 'L': left(); break; case 'R': right(); break; case 'S': stop(); break; } } } void forward(){digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);digitalWrite(IN3,HIGH);digitalWrite(IN4,LOW);analogWrite(ENA,200);analogWrite(ENB,200);} void backward(){digitalWrite(IN1,LOW);digitalWrite(IN2,HIGH);digitalWrite(IN3,LOW);digitalWrite(IN4,HIGH);analogWrite(ENA,200);analogWrite(ENB,200);} void left(){digitalWrite(IN1,LOW);digitalWrite(IN2,HIGH);digitalWrite(IN3,HIGH);digitalWrite(IN4,LOW);analogWrite(ENA,150);analogWrite(ENB,150);} void right(){digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);digitalWrite(IN3,LOW);digitalWrite(IN4,HIGH);analogWrite(ENA,150);analogWrite(ENB,150);} void stop(){analogWrite(ENA,0);analogWrite(ENB,0);} 

Código do Controle

#include <SoftwareSerial.h> SoftwareSerial hc12(2,3); const int btnF=4,btnB=5,btnL=6,btnR=7; void setup(){ hc12.begin(9600); pinMode(btnF,INPUT_PULLUP);pinMode(btnB,INPUT_PULLUP); pinMode(btnL,INPUT_PULLUP);pinMode(btnR,INPUT_PULLUP); } void loop(){ if(!digitalRead(btnF)) hc12.write('F'); else if(!digitalRead(btnB)) hc12.write('B'); else if(!digitalRead(btnL)) hc12.write('L'); else if(!digitalRead(btnR)) hc12.write('R'); else hc12.write('S'); delay(50); } 

Ajustes

  • Configure HC-12 no mesmo canal (AT+C001) e potência (AT+P8).
  • Ajuste valores PWM para velocidade/torque.
  • Adicione sensor ultrassônico (HC-SR04) para desvio de obstáculos.