Bouw een 4WD IR Afstandsbediende Arduino Robot Auto Kit
Onderdelen en Benodigdheden
| WINGONEER Infrarood IR Draadloze Afstandsbediening Sensor Module Kit voor Arduino | × | 1 |
| SainSmart L298N Dual H-Brug Stappenmotor Driver | × | 1 |
| 4WD Robot Auto Chassis Kit | × | 1 |
| Arduino UNO | × | 1 |
Benodigde Tools en Machines
- Solderbout (generisch)
Over dit Project
Ik vond het originele ontwerp op Instructables en bouwde een versie ervan. Het origineel was een gedaantevoertuig (tracks), deze is 4WD. De aanpassing zit in de IR-opstelling. Het originele ontwerp had storingen van de motoren die de IR-ontvanger 방해den. De motoren werkten als generatoren waar de ground draden samenkwamen. Ik veranderde de pinnen en toewijzingen voor de IR.
Monteer de autobasis met de meegeleverde instructies als je de SAINSMART rover kit gebruikt.
IR Ontvanger Aansluiting
int receiver_pin = 4; // Output pin 4 op controller naar IR ontvanger Y
int vcc = 5; // Output pin 5 op controller naar IR ontvanger V
int gnd = 6; // Output pin 6 op controller naar IR ontvanger G
L298N Motor Driver Module
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 motor driver module GND naar controller GND
L298N naar Motoren
Motor set A (Rechts)
- Verbinden "+" (Rood) van motoren met Out 4
- Verbinden "-" (Zwart) van motoren met Out 3
Motor set B (Links)
- Verbinden "+" (Rood) van motoren met Out 2
- Verbinden "-" (Zwart) van motoren met Out 1
Accu aansluiten op L298N drive module: "+" (Rood) naar VCC en "-" (Zwart) naar GND
Compleet Diagram
Code
IR Afstandsbediende Auto (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 controller pinnen
// 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);
// Alle motor control pinnen als output
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(vcc, OUTPUT);
pinMode(gnd, OUTPUT);
// VCC pin high initialiseren
digitalWrite(vcc, HIGH);
}
void loop() {
if (irrecv.decode(&results)) {
digitalWrite(statusled, LOW);
irrecv.resume();
if (results.value == 0xFF18E7) { // Knop 2 - Vooruit
Serial.println("Knop 2");
digitalWrite(in1, HIGH); digitalWrite(in2, LOW); analogWrite(enA, 100);
digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(enB, 100);
}
else if(results.value == 0xFF10EF) { // Knop 4 - Links
Serial.println("Knop 4");
digitalWrite(in1, HIGH); digitalWrite(in2, LOW); analogWrite(enA, 100);
digitalWrite(in3, LOW); digitalWrite(in4, LOW); analogWrite(enB, 100);
}
else if(results.value == 0xFF30CF) { // Knop 1 - Rechts draaien
Serial.println("Knop Draai Rechts");
digitalWrite(in1, HIGH); digitalWrite(in2, LOW); analogWrite(enA, 100);
digitalWrite(in3, LOW); digitalWrite(in4, HIGH); analogWrite(enB, 100);
}
else if(results.value == 0xFF5AA5) { // Knop 6 - Links draaien
Serial.println("Knop Draai Links");
digitalWrite(in1, LOW); digitalWrite(in2, LOW); analogWrite(enA, 100);
digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(enB, 100);
}
else if(results.value == 0xFF7A85) { // Knop 3 - Achteruit draaien
Serial.println("Knop Draai Achteruit");
digitalWrite(in1, LOW); digitalWrite(in2, HIGH); analogWrite(enA, 100);
digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(enB, 100);
}
else if(results.value == 0xFF4AB5) { // Knop 8 - Achteruit
Serial.println("Knop 8");
digitalWrite(in1, LOW); digitalWrite(in2, HIGH); analogWrite(enA, 100);
digitalWrite(in3, LOW); digitalWrite(in4, HIGH); analogWrite(enB, 100);
}
else if(results.value == 0xFF38C7) { // Knop 5 - Stop
Serial.println("Knop 5");
digitalWrite(in1, LOW); digitalWrite(in2, LOW); analogWrite(enA, 100);
digitalWrite(in3, LOW); digitalWrite(in4, LOW); analogWrite(enB, 100);
}
}
}
Schema's
Productieproces
- Anticonceptiepil: Geschiedenis, Voordelen, Risico's en Productie
- Een Professionele Raspberry Pi Universele Afstandsbediening Bouwen met LIRC
- Geautomatiseerd Zwembadvul- en Monitoringssysteem
- Remote Hartslagmonitoringssysteem met AWS IoT-waarschuwingen
- Je Raspberry Pi Besturen met een Herbruikte IR-remote: Afsluiten & Herstarten via LIRC
- Regelschakelingen: Fundamenten, Toepassingen en Best Practices
- Cloud Monitoring: Extern controlsysteem voor real-time activabeheer
- 5 Belangrijkste voordelen van externe productiecontrole voor de moderne industrie
- Overhead kraan afstandsbediening: veiligheid & efficiëntie in uw magazijn
- Delta Controls' enteliBUS-kwetsbaarheid: Remote Controle van Gebouwsystemen Blootgelegd
- C# Constructors: Types, Voorbeelden en Geavanceerde Patronen