Arduino - Kontroll-LEDs mit einer Fernbedienung

Arduino - Kontroll-LEDs mit einer Fernbedienung - Gunook

Hallo Leute,
Ich teile Ihnen ein Projekt mit, das ich kürzlich durchgeführt habe. Es geht darum, wie Sie einige LEDs mit einer Fernbedienung und Ihrem Arduino steuern können. Sie können dies jedoch auf jedes elektronische Gerät anwenden, wie z. B. Motoren, Lichter.


Sie können meine Website für weitere elektronische Projekte, interessante Neuigkeiten und Tipps besuchen:
http://randomnerdtutorials.com/


Zubehör:

Schritt 1: IR-Bibliothek

Zuerst müssen Sie zu dieser Seite gehen und die IR-Bibliothek herunterladen. Sie müssen nur die Readme-Datei befolgen, um zu installieren. Ich glaube, dass dies mit jeder IR-Fernbedienung möglich ist. Ich verwende eine Philips Universal-Fernbedienung.

Schritt 2: Erforderliche Teile

Liste der Einzelteile:
1x Arduino
1x Steckbrett
1x Fernbedienung
1x IR-Empfänger (ich verwende TSOP4838)
4x LEDs
4x 220 Ohm Widerstände
Überbrückungskabel

Der Infrarotempfänger verfügt über 3 Pins:
Erster Pin: Vout, gibt HIGH aus, wenn kein Signal vorhanden ist, und LOW, wenn eine Marke empfangen wird.
Zweiter Pin: GND.
Dritter Stift: Vcc.

Schritt 3: Schaltplan

Sie müssen Ihre Schaltung so etwas verdrahten.
Und dann ging ich zu der Arduino IDE> Datei> Beispiele> IRremote> IRrecvDemo. Sie müssen die Skizze auf Ihr Arduino hochladen, den seriellen Monitor öffnen und Ihre Fernbedienung verwenden, um zu sehen, welche Werte das Arduino empfängt.

Nach einer Weile habe ich notiert, welche Werte auf dem seriellen Monitor angezeigt werden, wenn Sie die Lauter-Taste oder eine andere Taste drücken, und für alle Tasten, die Sie verwenden möchten, notiert. Und sie waren:

Leistung: E240
Vorwärts: E250
Rückseite: E248
Volumen +: E244
Band: E254
Stummschaltung: E24C7
Sie müssen diese hexadezimalen Zahlen in Dezimalzahlen konvertieren. Verwenden Sie hierfür dieses Tool.

Schritt 4: Laden Sie den Arduino-Code hoch

Laden Sie diesen Code hoch

/*
* IRremote Library - Copyright 2009 Ken Shirriff
* Erstellt von Rui Santos, http://randomnerdtutorials.wordpress.com
* Kontroll-LEDs mit einer Fernbedienung
* 2013
*/

#umfassen

int IR_Recv = 3; // IR Empfänger Pin 3
int g_ledPin = 5; // grüne LED Pin 5
int y_ledPin = 6; // gelbe LED Pin 6
int r_ledPin = 9; // roter LED Pin 9
int b_ledPin = 10; // blaue LED Pin 10
int ledPins [] = {5, 6, 9, 10}; // Array mit allen LED-Pins
int ledStates [] = {0, 0, 0, 0}; // Dies bedeutet, dass der Status der LED zunächst 0 = LOW ist
int i = 0; // LED-Index für die Arrays

IRrecv irrecv (IR_Recv);
decode_results Ergebnisse;

// Variablen, damit die LED bei Auswahl blinkt
int ledState = LOW; // ledState, um die LED ein- oder auszuschalten
long previousMillis = 0; // speichert die letzte Aktualisierung der LED
langes Intervall = 1000; // Intervall, in dem geblinkt werden soll (Millisekunden)

void setup () {
Serial.begin (9600); // startet die serielle Kommunikation
irrecv.enableIRIn (); // Startet den Empfänger
pinMode (g_ledPin, OUTPUT); // setzt den digitalen Pin als Ausgang
pinMode (y_ledPin, OUTPUT); // setzt den digitalen Pin als Ausgang
pinMode (r_ledPin, OUTPUT); // setzt den digitalen Pin als Ausgang
pinMode (b_ledPin, OUTPUT); // setzt den digitalen Pin als Ausgang
}

void loop () {
// dekodiert den Infraroteingang
if (irrecv.decode (& results)) {
long int decCode = results.value;
Serial.println (decCode);
// Gehäuse wechseln, um die ausgewählte Fernbedienungstaste zu verwenden
switch (results.value) {
Fall 57936: // Wenn Sie die Weiter-Taste drücken
// Diese if / else-Anweisung stellt sicher, dass die LED AN oder AUS ist, bevor zur nächsten LED übergegangen wird
if (ledStates [i] == 0)
digitalWrite (ledPins [i], LOW);
sonst
digitalWrite (ledPins [i], HIGH);
Serial.println ("Nächste LED");
// stellt sicher, dass bei Erreichen der letzten LED wieder die erste LED angezeigt wird
wenn (i> = 3)
i = -1;
i + = 1;
brechen;

Fall 57928: // wenn Sie die Umkehrtaste drücken
// Diese if / else-Anweisung stellt sicher, dass die LED AN oder AUS ist, bevor zur vorherigen LED gewechselt wird
if (ledStates [i] == 0)
digitalWrite (ledPins [i], LOW);
sonst
digitalWrite (ledPins [i], HIGH);
Serial.println ("Vorherige LED");
// stellt sicher, dass bei Erreichen der ersten LED die letzte LED angezeigt wird
if (i <= 0)
i = 4;
i = 1;
brechen;

Fall 57932: // Wenn Sie die Stummschalttaste drücken
if (ledStates [i] == 0) {// Wenn die LED aus ist, leuchtet sie auf
Serial.println ("Schaltet die ausgewählte LED ein");
digitalWrite (ledPins [i], HIGH); // schaltet die LED ein
ledStates [i] = 1; // Aktualisiert den LED-Status
}
sonst{
Serial.println ("Schaltet die ausgewählte LED AUS"); // sonst: die LED leuchtet, sie erlischt
digitalWrite (ledPins [i], LOW); // schaltet die LED aus
ledStates [i] = 0; // aktualisiert den LED-Status
}       
brechen;

Fall 57920: // Wenn Sie den Ein- / Ausschalter drücken
Serial.println ("Schaltet alle LEDs aus");
digitalWrite (g_ledPin, LOW); // schaltet die grüne LED aus
ledStates [0] = 0; // Aktualisiert den LED-Status
digitalWrite (y_ledPin, LOW); // schaltet die gelbe LED aus
ledStates [1] = 0; // aktualisiert den LED-Status
digitalWrite (r_ledPin, LOW); // schaltet die rote LED aus
ledStates [2] = 0; // aktualisiert den LED-Status
digitalWrite (b_ledPin, LOW); // schaltet die blaue LED aus
ledStates [3] = 0; // Aktualisiert den LED-Status
brechen;

Standard:
Serial.println ("Waiting");
}
irrecv.resume (); // Erhält den nächsten Wert von der Taste, die Sie drücken
}
// Wenn diese Anweisung aktiviert ist, blinkt die LED, wenn sie deaktiviert ist
if (ledStates [i] == 0) {
ohne Vorzeichen long currentMillis = millis ();
if (currentMillis - previousMillis> interval) {
// Speichern Sie das letzte Mal, wenn Sie die LED blinken
previousMillis = currentMillis;
// Wenn die LED nicht leuchtet, schalten Sie sie ein und umgekehrt:
if (ledState == LOW)
ledState = HIGH;
sonst
ledState = LOW;
// setze die LED mit dem ledState der Variablen:
digitalWrite (ledPins [i], ledState)
}
}
}

Schritt 5: Und fertig

Vielen Dank fürs Lesen, lassen Sie mich wissen, was Sie über meine Projekte denken, hinterlassen Sie einen Kommentar und vergessen Sie nicht, meine Website für weitere Tutorials zu besuchen.

http://randomnerdtutorials.com/