In diesem Beitrag möchte ich das Dual Color Modul HW-477 / KY-029 vorstellen. Dieses Modul enthält eine LED welche in den Farben rot & grün leuchten kann.
Das Modul trägt auf der Platine die Bezeichnung HW-477, wenn man jedoch nach diesem im Internet oder vor allem bei Ebay, Amazon usw. suchen möchte, sollte man jedoch nach der Bezeichnung KY-029 suchen.
Bezug
Dieses kleine Modul habe ich über ebay.de für 2,99€ inkl. Versandkosten erstanden.
In meinem Fall kam der Händler aus Deutschland und somit dauerte die Lieferung nur knapp 3 Werktage.
Technische Daten des Moduls HW-477
- Betriebsspannung 5V
- Abmaße
- Platine 19 mm x 15 mm
- Gesamt 43 mm x 15 mm
Aufbau & Schaltung
Das Modul KY-029 verfügt über 3 Pins, eines ist mit “-” und eines mit “S” das in der Mitte ist nicht markiert. Mit einem Messgerät kann man nun prüfen, was das in der Mitte sein wird oder man nimmt an das eine LED welche über 2x Anode (+) und 1x Kathode (-) verfügt auch zwei digitale Eingänge (“S” = Signal) benötigt und einmal GND (“-“).
Für den Aufbau der Schaltung benötigst du:
- 1x Arduino Nano*,
- 1x Dual Color LED Modul KY-029*,
- 1x Breadboard mit min. 400 Pins*,
- 3x Breadboardkabel*, männlich – männlich, 10 cm
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
In der Schaltung werden die Pins D10 & D11 am Arduino Nano verwendet. Diese Pins sind digitale PWM Pins, somit können wir diese nicht nur einfach auf HIGH oder LOW setzen, sondern können auch analoge Werte zwischen 0 und 255 setzen und somit die Helligkeit der LED verändern.
In der nachfolgenden Schaltung habe ich das Modul KY-029 wie folgt angeschlossen:
- weiß, GND,
- orange, digitaler Pin D11,
- grün, digitaler Pin D10
Schaltung – Dual Color LED KY-029 am Arduino Nano
Quellcode
Beispiel 1 – Wechselblinker
Als erstes kleines Beispiel zeige, ich dir wie du einen einfachen Wechselblinker erzeugst, dabei wird die Frequenz über eine Konstante im Quellcode bestimmt.
#define ledRot 11 // Pin für die rote LED am digitalen Pin D11 #define ledGruen 10 // Pin für die gruene LED am digitalen Pin D10 //Konstante für die Pause zwischen dem Blinken const int PAUSE = 250; void setup () { //setzen das der digitale Pin welcher an die Pins der LEDs führt als Ausgang dient. pinMode (ledRot, OUTPUT); pinMode (ledGruen, OUTPUT); //initiales setzen der Ausgänge auf LOW (Status - AUS) digitalWrite(ledRot, LOW); digitalWrite(ledGruen, LOW); } void loop () { //aufrufen der Methode ledBlink mit dem Parameter für den digitalen Pin ledBlink(ledRot); ledBlink(ledGruen); } /** * Methode zum blinken einer LED * pin - der digitale Pin an welchem die LED angeschlossen ist */ void ledBlink(int pin){ //deaktivieren der LED digitalWrite(pin, LOW); //ein kleine Pause delay(PAUSE); //aktivieren der LED digitalWrite(pin, HIGH); //ein kleine Pause delay(PAUSE); //deaktivieren der LED digitalWrite(pin, LOW); }
Video
Beispiel 2 – LED Fade mit Farbwechsel
Wenn du das Modul wie oben beschrieben über die beiden digitalen PWM Pins D10 & D11 angeschlossen hast, dann kannst du auch einen Fade Effekt erzeugen (langsames auf und ableuchten der LED).
#define ledRot 11 // Pin für die rote LED am digitalen Pin D11 #define ledGruen 10 // Pin für die gruene LED am digitalen Pin D10 //Konstante für die Pause zwischen dem Blinken const int PAUSE = 10; void setup () { //setzen das der digitale Pin welcher an die Pins der LEDs führt als Ausgang dient. pinMode (ledRot, OUTPUT); pinMode (ledGruen, OUTPUT); //initiales setzen der Ausgänge auf LOW (Status - AUS) digitalWrite(ledRot, LOW); digitalWrite(ledGruen, LOW); } void loop () { //aufrufen der Methode fadeLed mit dem Parameter für den digitalen Pin fadeLed(ledRot); fadeLed(ledGruen); } /** Methode zum faden einer LED pin - der digitale Pin an welchem die LED angeschlossen ist */ void fadeLed(int pin) { //eine For Schleife von 0 bis 255 in Schritten von jeweils 1 for (int i = 0; i < 255; i++) { //setzen des PWM Signals setAnalogValue(pin, i); } //eine For Schleife von 255 bis 0 in Schritten von jeweils 1 for (int i = 255; i > 0; i--) { //setzen des PWM Signals setAnalogValue(pin, i); } } /** * Methode zum setzen eines Analoges PWM Signals am digitalen Pin * pin - der digitale Pin * value - ein Ganzzahliger Wert zwischen 0 und 255 */ void setAnalogValue(int pin, int value) { //setzen eines PWM Signales am digitalen Pin analogWrite(pin, value); //eine kleine Pause delay(PAUSE); }