4WD IR-Fernsteuerungs-Roboterauto mit Arduino bauen
Komponenten und Zubehör
| Komponente | Menge |
|---|---|
| WINGONEER Infrarot IR Fernbedienung Sensormodul Kit für Arduino | 1 |
| SainSmart L298N Dual H-Bridge Schrittmotor-Treiber | 1 |
| 4WD Roboter-Auto Chassis Kit | 1 |
| Arduino UNO | 1 |
Benötigte Werkzeuge und Maschinen
- Lötkolben (generic)
Über dieses Projekt
Ich fand das Originaldesign auf Instructables und baute eine eigene Version. Das Original war ein Kettenfahrzeug, dieses hier ist ein 4WD. Die Anpassung am Originaldesign betrifft die IR-Einrichtung. Das Original litt unter Rückkopplungen beim Motorbetrieb, die den IR-Empfänger störten. Die Motoren fungierten als Generatoren, wo sich die Masseleitungen trafen. Ich änderte die Pins und Zuordnungen für den IR-Empfänger.
Bauen Sie das Auto-Chassis mit den mitgelieferten Anweisungen zusammen, falls Sie das SAINSMART Rover Kit verwenden.
IR-Empfänger Anschluss
int receiver_pin = 4; // Ausgangspin 4 am Controller an IR-Empfänger Y
int vcc = 5; // Ausgangspin 5 am Controller an IR-Empfänger V
int gnd = 6; // Ausgangspin 6 am Controller an IR-Empfänger G
L298N Motortreiber-Modul
Motor A (rechts)
int enA = 8;
int in1 = 12;
int in2 = 11;
Motor B (links)
int enB = 7;
int in3 = 10;
int in4 = 9;
L298N Motortreiber GND an Controller GND
L298N Motortreiber zu Motoren
Motorsatz A rechte Seite
- Verbinden Sie die "+" (Rot) Seite der Motoren mit Out 4
- Verbinden Sie die "-" (Schwarz) Seite der Motoren mit Out 3
Motorsatz B linke Seite
- Verbinden Sie die "+" (Rot) Seite der Motoren mit Out 2
- Verbinden Sie die "-" (Schwarz) Seite der Motoren mit Out 1
Batterie an L298N Treiber: "+" (Rot) an VCC und "-" (Schwarz) an GND
Komplettschaltplan
Code
IR Remote Control Car (C/C++)
#include <IRremote.h>
char command;
int receiver_pin = 4;
int vcc = 5;
int gnd = 6;
int statusled = 13;
IRrecv irrecv(receiver_pin);
decode_results results;
// 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(statusled, OUTPUT);
digitalWrite(statusled, LOW);
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(vcc, OUTPUT);
pinMode(gnd, OUTPUT);
digitalWrite(vcc, HIGH); // VCC für IR-Sensor aktivieren
}
void loop() {
if (irrecv.decode(&results)) {
digitalWrite(statusled, LOW);
irrecv.resume();
// Taste 2: Vorwärts
if (results.value == 0xFF18E7) {
Serial.println("Taste 2");
digitalWrite(in1, HIGH); digitalWrite(in2, LOW);
analogWrite(enA, 100);
digitalWrite(in3, HIGH); digitalWrite(in4, LOW);
analogWrite(enB, 100);
}
// Taste 4: Links drehen
else if (results.value == 0xFF10EF) {
Serial.println("Taste 4");
digitalWrite(in1, HIGH); digitalWrite(in2, LOW);
analogWrite(enA, 100);
digitalWrite(in3, LOW); digitalWrite(in4, LOW);
analogWrite(enB, 100);
}
// Taste 1: Rechts drehen (Rotation)
else if (results.value == 0xFF30CF) {
Serial.println("Taste Rechts drehen");
digitalWrite(in1, HIGH); digitalWrite(in2, LOW);
analogWrite(enA, 100);
digitalWrite(in3, LOW); digitalWrite(in4, HIGH);
analogWrite(enB, 100);
}
// Taste 6: Rechts abbiegen
else if (results.value == 0xFF5AA5) {
Serial.println("Taste Links abbiegen");
digitalWrite(in1, LOW); digitalWrite(in2, LOW);
analogWrite(enA, 100);
digitalWrite(in3, HIGH); digitalWrite(in4, LOW);
analogWrite(enB, 100);
}
// Taste 3: Links drehen (Rotation)
else if (results.value == 0xFF7A85) {
digitalWrite(in1, LOW); digitalWrite(in2, HIGH);
analogWrite(enA, 100);
digitalWrite(in3, HIGH); digitalWrite(in4, LOW);
analogWrite(enB, 100);
}
// Taste 8: Rückwärts
else if (results.value == 0xFF4AB5) {
Serial.println("Taste 8");
digitalWrite(in1, LOW); digitalWrite(in2, HIGH);
analogWrite(enA, 100);
digitalWrite(in3, LOW); digitalWrite(in4, HIGH);
analogWrite(enB, 100);
}
// Taste 5: Stopp
else if (results.value == 0xFF38C7) {
Serial.println("Taste 5");
digitalWrite(in1, LOW); digitalWrite(in2, LOW);
analogWrite(enA, 100);
digitalWrite(in3, LOW); digitalWrite(in4, LOW);
analogWrite(enB, 100);
}
}
}
Schaltplan
Herstellungsprozess
- Steuerschaltungen: Grundlagen, Anwendungen und Best Practices
- C# Konstruktoren: Typen, Beispiele und fortgeschrittene Muster
- Professionelle Raspberry Pi Universalfernbedienung mit LIRC bauen
- Automatisiertes Pool-Befüllungs- und Überwachungssystem
- Fern-Herzfrequenz-Überwachung mit AWS IoT Alarmen
- Raspberry Pi mit umfunktionierter IR-Fernbedienung steuern: Herunterfahren & Neustart via LIRC
- Delta Controls enteliBUS Schwachstelle: Remote Control von Gebäudesystemen offengelegt
- Cloud Monitoring: Fernsteuerungssystem für Echtzeit-Asset-Management
- 5 Schlüsselvorteile der ferngesteuerten Produktionskontrolle für die moderne Industrie
- Brückenlaufkran-Fernsteuerung meistern: Sicherheit & Effizienz im Lager steigern