IR-Fernbedienung
Komponenten und Verbrauchsmaterialien
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Notwendige Werkzeuge und Maschinen
|
Über dieses Projekt
Ich fand das ursprüngliche Design auf Instructables und baute eine Version davon. Das Original war ein Schienenfahrzeug und dieses ist 4WD. Die Anpassung an das ursprüngliche Design erfolgt im Setup der IR. Das ursprüngliche Design litt unter Rückkopplungen, wenn die Motoren liefen, die den IR-Empfänger störten. Die Motoren fungierten als Generatoren, wo sich die Erdungsdrähte trafen. Ich habe die Pins und Zuweisungen für das IR geändert
Bauen Sie die Autobasis gemäß den Anweisungen zusammen, die bei Verwendung des SAINSMART-Rover-Kits bereitgestellt werden. Hier gefunden
IR-Empfänger:
int empfänger_pin =4; // Verbinden Sie den Ausgangspin 4 des Controllers mit dem IR-Empfänger Y
int vcc =5; // Verbinden Sie den Ausgangspin 5 des Controllers mit dem IR-Empfänger V
int gnd =6; // Verbinden Sie den Ausgangspin 4 des Controllers mit dem IR-Empfänger G
L298N Motorantriebsmodul :
// Motor A
int enA =8;
int in1 =12;
int in2 =11;
// Motor B
int enB =7;
int in3 =10;
int in4 =9;
L298N Motorantriebsmodul GND zu Controller GND
L298N Motorantriebsmodul zu Motoren:
//Motorsatz A rechts
Verbinden die "+" (Rote) Seite der Motoren an Out 4
Verbinden Sie die "-" (schwarze) Seite der Motoren mit Out 3
// Motorsatz B linke Seite
Verbinden die "+" (Rote) Seite der Motoren an Out 2
Verbinden Sie die "-" (schwarze) Seite der Motoren mit Out 1
Verbinden Sie den Akku mit dem L298N-Antriebsmodul "+" (Rot) an VCC und "-" (Schwarz) an GND
Vollständiges Diagramm
Code
- Auto mit IR-Fernbedienung
Auto mit IR-FernbedienungC#
#includechar-Befehl;int receiver_pin =4; // Verbinden Sie den Ausgangspin des IR-Empfängers mit Pin 4int vcc =5; // VCC für IR-Sensorint gnd =6; // GND für IR sensorint statusled =13; IRrecv irrecv (receiver_pin); decode_results Ergebnisse; // Motorcontroller-Pins mit Arduino-Digitalpins verbinden // 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); // set alle Motorsteuerstifte zu den Ausgängen pinMode (enA, OUTPUT); pinMode (enB, AUSGANG); pinMode (in1, AUSGANG); pinMode (in2, AUSGANG); pinMode (in3, AUSGANG); pinMode (in4, AUSGANG); pinMode (vcc, AUSGANG); pinMode (erde, AUSGANG); // Initialisieren des vcc-Pins hoch digitalWrite (vcc, HIGH);}void loop () {if (irrecv.decode(&results)) {digitalWrite(statusled,LOW);irrecv.resume();if (results.value ==0xFF18E7 ) { // Taste 2 Vorwärtsrobotersteuerung eingeben // Diese Funktion lässt die Motoren in beide Richtungen mit einer festen Geschwindigkeit laufen Serial.println ("Taste 2"); // Motor einschalten A digitalWrite (in1, HIGH); digitalWrite (in2, LOW); // Geschwindigkeit auf 200 außerhalb des möglichen Bereichs 0 ~ 255 einstellen analogWrite (enA, 100); // Motor B einschalten DigitalWrite (in3, HIGH); digitalWrite (in4, LOW); // Geschwindigkeit auf 200 außerhalb des möglichen Bereichs 0 ~ 255 einstellen analogWrite (enB, 100);} Sonst if (results.value ==0xFF10EF) { // Taste 4 eingeben, Robotersteuerung nach links drehen // Diese Funktion lässt Motor A laufen Vorwärtsrichtungen Motor B stoppen Serial.println ("Button 4"); // Motor einschalten A digitalWrite (in1, HIGH); digitalWrite (in2, LOW); // Geschwindigkeit auf 200 außerhalb des möglichen Bereichs 0 ~ 255 einstellen analogWrite (enA, 100); // Motor B einschalten DigitalWrite (in3, LOW); digitalWrite (in4, LOW); // Geschwindigkeit auf 200 außerhalb des möglichen Bereichs 0 ~ 255 einstellen analogWrite (enB, 100); } Sonst if (results.value ==0xFF30CF) {// Typ Taste 1 Rotieren der linken Robotersteuerung // Diese Funktion lässt Motor A in Vorwärtsrichtung Motor B in Rückwärtsrichtung laufen Serial.println ("Button Turn Right"); // Motor einschalten A digitalWrite (in1, HIGH); digitalWrite (in2, LOW); // Geschwindigkeit auf 200 außerhalb des möglichen Bereichs 0 ~ 255 einstellen analogWrite (enA, 100); // Motor B einschalten DigitalWrite (in3, LOW); digitalWrite (in4, HIGH); // Geschwindigkeit auf 200 außerhalb des möglichen Bereichs 0 ~ 255 einstellen analogWrite (enB, 100); } Sonst if (results.value ==0xFF5AA5) {// Taste 6 eingeben, Robotersteuerung rechts drehen // Diese Funktion stoppt Motor A und läuft Motor B in Vorwärtsrichtung Serial.println ( "Button Turn Left"); // Motor einschalten A digitalWrite (in1, LOW); digitalWrite (in2, LOW); // Geschwindigkeit auf 200 außerhalb des möglichen Bereichs 0 ~ 255 einstellen analogWrite (enA, 100); // Motor B einschalten DigitalWrite (in3, HIGH); digitalWrite (in4, LOW); // setze die Geschwindigkeit auf 200 außerhalb des möglichen Bereichs 0 ~ 255 analogWrite (enB, 100);} Sonst if (results.value ==0xFF7A85) { // Taste 3 eintippen, rechte Robotersteuerung drehen // diese Funktion lässt Motor A laufen Rückwärtsrichtungen Motor B in Vorwärtsrichtungen // Motor A einschalten DigitalWrite (in1, LOW); digitalWrite (in2, HIGH); // Geschwindigkeit auf 200 außerhalb des möglichen Bereichs 0 ~ 255 einstellen analogWrite (enA, 100); // Motor B einschalten DigitalWrite (in3, HIGH); digitalWrite (in4, LOW); // Geschwindigkeit auf 200 außerhalb des möglichen Bereichs 0 ~ 255 einstellen analogWrite (enB, 100);} else if (results.value ==0xFF4AB5) { // Taste 8 rückwärts Robotersteuerung eingeben // diese Funktion läuft Motor A und Motor B in Rückwärtsrichtung // Motor einschalten A digitalWrite (in1, LOW); digitalWrite (in2, HIGH); // Geschwindigkeit auf 200 außerhalb des möglichen Bereichs 0 ~ 255 einstellen analogWrite (enA, 100); // Motor B einschalten DigitalWrite (in3, LOW); digitalWrite (in4, HIGH); // Geschwindigkeit auf 200 außerhalb des möglichen Bereichs 0 ~ 255 einstellen analogWrite (enB, 100);} sonst if (results.value ==0xFF38C7) { // Taste 5 eingeben Robotersteuerung stoppen // Diese Funktion stoppt sowohl Motor A als auch Motor B // Motor A einschalten DigitalWrite (in1, LOW); digitalWrite (in2, LOW); // Geschwindigkeit auf 200 außerhalb des möglichen Bereichs 0 ~ 255 einstellen analogWrite (enA, 100); // Motor B einschalten DigitalWrite (in3, LOW); digitalWrite (in4, LOW); // Geschwindigkeit auf 200 außerhalb des möglichen Bereichs 0 ~ 255 einstellen analogWrite (enB, 100); }}}
Schaltpläne
Herstellungsprozess
- Steuerkreise
- C#-Konstruktor
- Raspberry Pi Universal-Fernbedienung
- Pool-Füllkontrolle
- Ferngesteuerter Herzfrequenzmesser
- Unerwünschte Infrarot-Fernbedienung zum Herunterfahren und Neustarten des Raspberry Pi wiederverwenden
- ICS-Sicherheitsangriff ermöglicht die Fernsteuerung von Gebäuden
- Cloud-Überwachung, ein Fernsteuerungssystem
- 5 Vorteile der Fernsteuerung der Produktion
- Laufkran-Fernbedienung:Alles, was Sie wissen müssen