RGB-LEDs für Arduino Uno. RGB-LEDs: wie sie funktionieren, Einbauten, wie man sie anschließt, RGB-LED und Arduino. Bauen Sie die Schaltung auf einem Steckbrett zusammen

Arduino ist ideal für die Steuerung jedes Geräts. Der ATmega-Mikroprozessor verwendet ein Skizzenprogramm, um eine große Anzahl von diskreten Pins, A / D I / O- und PWM-Controllern zu manipulieren.

Aufgrund der Flexibilität des Codes wird der ATmega-Mikrocontroller häufig in Modulen verschiedener Automatisierungen verwendet, auf dessen Grundlage es möglich ist, einen Controller zur Steuerung der LED-Beleuchtung zu erstellen.

Das Prinzip der Lastkontrolle durch Arduino

Das Arduino-Board verfügt über zwei Arten von Ausgangsports: digital und analog (PWM-Controller). Ein digitaler Port hat zwei Zustände - logische Null und logische Eins. Wenn Sie eine LED daran anschließen, leuchtet sie entweder oder nicht.

Der Analogausgang ist ein PWM-Regler, dem ein Signal mit einer Frequenz von ca. 500 Hz mit einstellbarem Tastverhältnis zugeführt wird. Was ein PWM-Controller ist und wie er funktioniert, finden Sie im Internet. Über den analogen Anschluss ist es nicht nur möglich, die Last ein- und auszuschalten, sondern auch die Spannung (Strom) daran zu ändern.

Befehlssyntax

Digitaler Ausgang:

pinMode (12, AUSGANG);- Port 12 als Datenausgabeport einstellen;
digitalWrite (12, HIGH);- Wir wenden eine logische Einheit an den diskreten Ausgang 12 an, die die LED aufleuchtet.

Analogausgang:

analogOutPin = 3;- Port 3 für die Ausgabe eines Analogwertes einstellen;
analogWrite (3, Wert);- wir bilden am Ausgang ein Signal mit einer Spannung von 0 bis 5V. Der Wert ist das Tastverhältnis des Signals von 0 bis 255. Bei einem Wert von 255 die maximale Spannung.

Möglichkeiten zur Steuerung von LEDs über Arduino

Nur eine schwache LED kann direkt über den Port angeschlossen werden, und selbst dann ist es besser über einen Begrenzungswiderstand. Wenn Sie versuchen, eine stärkere Last anzuschließen, wird sie deaktiviert.

Für leistungsstärkere Lasten, einschließlich LED-Streifen, wird ein elektronischer Schalter verwendet - ein Transistor.

Arten von Transistorschaltern

  • Bipolar;
  • Bereich;
  • Verbundwerkstoff (Darlington-Baugruppe).
Verbindungsmethoden laden
Durch Bipolartransistor Durch Feldeffekttransistor Durch Spannungsschalter

Beim Einspeisen eines hohen Logikpegels (digitalWrite (12, HIGH);)über den Ausgangsanschluss zur Basis des Transistors durch die Kollektor-Emitter-Kette fließt die Referenzspannung zur Last. Auf diese Weise können Sie die LED ein- und ausschalten.

Der Feldeffekttransistor funktioniert ähnlich, da er jedoch statt einer "Basis" einen Drain besitzt, der nicht vom Strom, sondern von der Spannung gesteuert wird, ist bei dieser Schaltung kein Begrenzungswiderstand erforderlich.

Die bipolare Ansicht erlaubt keine Regulierung starker Lasten. Der Strom durch ihn ist auf 0,1-0,3A begrenzt.

Feldeffekttransistoren arbeiten mit stärkeren Lasten mit einem Strom von bis zu 2A. Für eine noch stärkere Last werden Mosfet-Feldeffekttransistoren mit einem Strom von bis zu 9A und einer Spannung von bis zu 60V verwendet.

Anstelle des Feldeffekts können Sie die Darlington-Anordnung von Bipolartransistoren auf den Mikroschaltungen ULN2003, ULN2803 verwenden.

Chip ULN2003 und schematisches Diagramm des elektronischen Spannungsschalters:

Das Funktionsprinzip des Transistors zur reibungslosen Steuerung des LED-Streifens

Der Transistor funktioniert wie ein Wasserhahn, nur für Elektronen. Je höher die an der Basis des Bipolartransistors oder dem Feldeffekt-Drain anliegende Spannung ist, desto niedriger ist der Widerstand in der Emitter-Kollektor-Kette, desto höher ist der Strom, der durch die Last fließt.

Durch Anschließen des Transistors an den analogen Port des Arduino, weisen Sie ihm einen Wert von 0 bis 255 zu, ändern Sie die an den Kollektor oder den Drain gelieferte Spannung von 0 auf 5 V. Die Kollektor-Emitter-Schaltung führt 0 bis 100 % der Lastreferenzspannung.

Um den Arduino-LED-Streifen zu steuern, müssen Sie einen Transistor mit geeigneter Leistung auswählen. Der Betriebsstrom für die Stromversorgung des LED-Messgeräts beträgt 300-500mA, für diese Zwecke ist ein Leistungsbipolartransistor geeignet. Bei größeren Längen ist ein Feldeffekttransistor erforderlich.

Diagramm zum Anschließen von LED-Band an Arduino:

Steuerung von RGB-Band mit Andurino

Neben Einzelchip-LEDs kann Arduino auch mit Farb-LEDs arbeiten. Indem Sie die Pins jeder Farbe mit den analogen Ausgängen des Arduino verbinden, können Sie die Helligkeit jedes Kristalls beliebig ändern, um die gewünschte Leuchtfarbe zu erzielen.

Schaltplan für Arduino RGB LED:

Die Arduino RGB-Bandsteuerung ist ähnlich aufgebaut:

Der Arduino RGB-Controller lässt sich besser auf Feldeffekttransistoren montieren.

Für stufenlose Helligkeitsregelung zwei Tasten können verwendet werden. Einer erhöht die Helligkeit des Glühens, der andere verringert sich.

Arduino LED-Streifen-Helligkeitssteuerungsskizze

int led = 120; Stellen Sie die durchschnittliche Helligkeitsstufe ein

void setup () (
PinMode (4, AUSGANG); setze den 4. analogen Port auf den Ausgang
PinMode (2, EINGANG);

PinMode (4, EINGANG); Stellen Sie den 2. und 4. Digitalport auf den Eingang zum Abfragen der Tasten ein
}
Leere Schleife () (

button1 = digitalRead (2);

button2 = digitalRead (4);
if (Taste1 == HOCH) Durch Drücken der ersten Taste wird die Helligkeit erhöht
{
LED = LED + 5;

analogWrite (4, LED);
}
wenn (Taste2 == HOCH) Durch Drücken der zweiten Taste wird die Helligkeit verringert
{
geführt = geführt - 5;

analogWrite (4, LED);
}

Wenn die erste oder zweite Taste gedrückt gehalten wird, ändert sich die Spannung, die dem Steuerkontakt des elektronischen Schlüssels zugeführt wird, stufenlos. Dann kommt es zu einer sanften Änderung der Helligkeit.

Arduino-Steuermodule

Um einen vollwertigen Treiber zur Ansteuerung des LED-Streifens zu erstellen, können Sie Sensormodule verwenden.

IR-Steuerung

Mit dem Modul können Sie bis zu 20 Befehle programmieren.

Signalradius ca. 8m.

Der Preis des Sets beträgt 6 USD.

Per Funkkanal

Vierkanalgerät mit einer Reichweite von bis zu 100m

Der Preis des Sets beträgt 8 USD.

Ermöglicht das Einschalten der Beleuchtung, auch wenn Sie sich der Wohnung nähern.

Kontaktlos

Der Distanzsensor ist in der Lage, die Helligkeit der Beleuchtung durch Handbewegung zu erhöhen und zu verringern.

Der Aktionsradius beträgt bis zu 5m.

Der Preis des Moduls beträgt 0,3 US-Dollar.

Serie "Wagen".

RGB steht für als Abkürzung für Rot, Grün, Blau, mit diesen Farben können Sie jede Farbe durch Mischen erhalten. RGB-LED enthält 3 kleine Kristalle R, G, B, mit denen wir jede Farbe oder Schattierung synthetisieren können. In diesem Tutorial werden wir eine RGB-LED an das Arduino-Board anschließen und es in allen Farben des Regenbogens erstrahlen lassen.
Für dieses Projekt benötigen Sie die Details, die in den Kits "Basic" und "Learning Arduino" enthalten sind:

  1. Arduino Uno;
  2. USB-Kabel;
  3. Prototyping-Platine;
  4. Papa-Papa-Drähte - 7 Stück;
  5. Widerstände 220 Ohm - 3 Stück;
  6. RGB-LED - 1 Stück;
  7. Potentiometer.

Zusammenbau der in Abbildung 1 gezeigten Schaltung.

Abbildung 1. Anschlussplan

Beginnen wir nun mit dem Schreiben der Skizze.
Die RGB-LED sollte mit allen Farben des Regenbogens von Rot bis Violett schimmern, dann in einem Kreis auf Rot übergehen und so weiter. Die Farbübergangsgeschwindigkeit ist mit einem Potentiometer einstellbar. Tabelle 1 zeigt die Daten für die R-, G-, B-Werte für die 7 Primärfarben des Regenbogens.

Tabelle 1. Daten der R-, G-, B-Werte für 7 Primärfarben des Regenbogens

Zum Mischen von Farben Es ist notwendig, den gesamten Spannungsbereich von den Arduino-Pins an die R-, G-, B-Eingänge der LED zu liefern. Der Arduino kann jedoch keine beliebige Spannung an den digitalen Pin liefern. Es wird entweder +5V (HIGH) oder 0V (LOW) ausgegeben. PWM (Pulsweitenmodulation oder PWM) wird verwendet, um eine Teilspannung zu simulieren.

Ich hoffe, Sie haben das Kapitel bereits abgeschlossen. 2.6 in Jeremy Blums Learning Arduino: Tools and Techniques for Technical Wizardry, das die Mechanik der Pulsweitenmodulation detailliert beschreibt.
Algorithmus der Programmausführung:

  • Erhöhen Sie den Wert des grünen G-Anteils, bis wir den orangen Wert (255.125,0) erreichen,
  • Erhöhen Sie den Wert des grünen G-Anteils, bis wir gelb (255,255,0) erreichen.
  • Reduzieren Sie den Wert des Rotanteils R auf den Wert von Grün (0,255,0).
  • Der Startpunkt ist rot (255,0,0).
  • Erhöhen Sie den Wert der Blaukomponente B auf den Wert von Cyan (0,255,255).
  • Verringern Sie den grünen G-Wert auf den blauen Wert (0.0.255).
  • Erhöhen Sie den Wert der Rotkomponente R allmählich auf den Wert von Violett (255,0,255).
  • Verringern Sie den Wert der Blaukomponente B auf den Wert von Rot (255,0,0).

Gehen Sie zu Schritt 1.

Nach jedem Schritt pausieren wir, um die Farbanzeige zu korrigieren,

Verzögerung (VIEW_PAUSE);

Überprüfen Sie den Wert des Potentiometers und ändern Sie den Wert der Farbänderungsgeschwindigkeit.

Void setpause () (pause = map (analogRead (POT), 0.1024, MIN_PAUSE, MAX_PAUSE); Serial.print ("pause ="); Serial.println (pause);)

Lassen Sie uns eine neue Skizze in der Arduino IDE erstellen, fügen Sie den Code aus Listing 1 ein und laden Sie die Skizze auf das Arduino-Board hoch. Wir erinnern Sie daran, dass Sie in den Arduino IDE-Einstellungen den Typ der Platine (Arduino UNO) und den Platinenanschluss auswählen müssen.
Eintrag 1

Const int ROT = 11; // R RGB-LED-Ausgang const int GREEN = 10; // G-Ausgang der RGB-LED const int BLUE = 9; // B-Ausgang der RGB-LED int red; // Variable zum Speichern des R-Anteils der Farbe int green; // Variable zum Speichern der G-Komponente der Farbe int blue; // Variable zum Speichern der B-Komponente der Farbe const int POT = A0; // Anschlusspin des Potentiometers const int MIN_PAUSE = 10; // minimale Verzögerung für Farbwechsel, ms const int MAX_PAUSE = 100; // maximale Verzögerung für Farbwechsel, ms int pause; // Variable zum Speichern der aktuellen Verzögerung const int VIEW_PAUSE = 2000; // Zeit zum Fixieren der Hauptfarbe, ms void setup () (Serial.begin (9600);) void loop () (// von rot nach gelb Serial.println ("red - yellow"); red = 255; green = 0 ; blau = 0; für (grün = 0; grün<=255;green++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от желтому к зеленому Serial.println("yellow - green"); red=255;green=255;blue=0; for(red=255;red>= 0; rot--) setRGB (rot, grün, blau); setpause (); Verzögerung (VIEW_PAUSE); // von grün nach blau Serial.println ("grün - blau"); rot = 0, grün = 255, blau = 0; für (blau = 0; blau<=255;blue++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от голубого к синему Serial.println("blue - blue"); red=0;green=255;blue=255; for(green=255;green>= 0; grün--) setRGB (rot, grün, blau); setpause (); Verzögerung (VIEW_PAUSE); // von blau nach lila Serial.println ("blau - lila"); rot = 0, grün = 0, blau = 255; für (rot = 0; rot<=255;red++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от фиолетового к красному Serial.println("purple - red"); red=255;green=0;blue=255; for(blue=0;blue>= 0; blau--) setRGB (rot, grün, blau); setpause (); Verzögerung (VIEW_PAUSE); ) // Funktion zum Einstellen der Farbe einer RGB-LED void setRGB (int r, int g, int b) (analogWrite (RED, r); analogWrite (GREEN, g); analogWrite (BLUE, b); delay (pause) ;) // Funktion zum Setzen der aktuellen Verzögerung void setpause () (pause = map (analogRead (POT), 0.1024, MIN_PAUSE, MAX_PAUSE); Serial.print ("pause ="); Serial.println (pause);)

Nach dem Laden der Skizze beobachten wir den Farbwechsel der RGB-LED mit den Farben des Regenbogens, ändern mit dem Potentiometer die Farbwechselrate (siehe Abbildung 2.3).


Abbildung 2.3. RGB LED - alle Farben des Regenbogens

Die dreifarbige LED kann in allen Farben des Regenbogens funkeln! Stimmen Sie zu, dies ist viel interessanter, als nur mit einer normalen LED zu blinken.
Beginnen wir die dritte Lektion zum Kennenlernen von Arduino.

Geräteanschluss:
Tatsächlich besteht eine dreifarbige LED aus drei LEDs (rot, grün und blau) in einem Gehäuse. Wenn wir es mit unterschiedlichen Helligkeits- und Intensitätsgraden für Rot, Grün und Blau ausführen, erhalten wir neue Farben als Ausgabe.

Es gibt eine kleine Abschrägung am Rand der LED, das ist der Schlüssel, sie zeigt auf das Bein der roten LED, dann geht die gemeinsame, dann grün und blau.

Verbinden Sie das Bein der ROTEN LED mit einem 330 Ohm Widerstand. Verbinden Sie das andere Ende des Widerstands mit dem Arduino-Port Pin9.

Verbinden Sie die Referenz mit GND.

Verbinden Sie das GRÜNE Bein mit dem 330 Ohm Widerstand.

Verbinden Sie das andere Ende des Widerstands mit dem Arduino-Port Pin10.

Verbinden Sie das BLAUE Bein mit dem 330 Ohm Widerstand.

Verbinden Sie das andere Ende des Widerstands mit dem Arduino-Port pin11.

Die folgende Abbildung zeigt das Layout des Steckbretts mit der zusammengebauten Schaltung und des Arduino-Boards mit Drähten, die vom Steckbrett kommen.

ArduinoKit Experimentierkit
Programmcode für Experiment #3:

Es bleibt das Programm über das USB-Kabel auf den Arduino herunterzuladen. Laden Sie die Skizze mit der dritten Lektion LED RGB herunter - oben im Artikel.

  • 3 220-Ohm-Widerstände (hier ist ein großer Satz der gängigsten Widerstände);
  • Anschlussdrähte (ich empfehle dieses Set);
  • Steckbrett;
  • PC mit der Arduino IDE-Entwicklungsumgebung.
  • 1 Der Unterschied zwischen RGB-LEDs gemeinsame Anode und gemeinsame Kathode

    Es gibt zwei Arten von RGB-LEDs: mit gemeinsamer Anode ("Plus") und gemeinsame Kathode ("minus")... Die Abbildung zeigt die schematische Darstellung dieser beiden Arten von LEDs. Der lange Schenkel der LED ist immer das gemeinsame Stromkabel. Das rote LED-Kabel (R) befindet sich separat, das grüne (G) und das blaue (B) befinden sich auf der anderen Seite des gemeinsamen Kabels, wie in der Abbildung gezeigt. In diesem Artikel betrachten wir den Anschluss einer RGB-LED mit einer gemeinsamen Anode und einer gemeinsamen Kathode.

    2 Anschließen einer RGB-LED mit einer gemeinsamen Anode zu Arduino

    Schaltplan für RGB-LED mit gemeinsamer Anode in der Abbildung gezeigt. Wir verbinden die Anode mit "+5 V" auf der Arduino-Platine, die anderen drei Pins mit beliebigen digitalen Pins.


    Bitte beachten Sie, dass wir jede der LEDs über einen eigenen Widerstand anschließen und keinen gemeinsamen verwenden. Es ist ratsam, genau das zu tun, da jede der LEDs ihre eigene Effizienz hat. Und wenn Sie alle über einen Widerstand verbinden, leuchten die LEDs mit unterschiedlicher Helligkeit.

    Um schnell den Widerstandswert für Ihre ausgewählte LED zu berechnen, können Sie unseren Online-LED-Rechner verwenden.

    3 RGB-LED-Steuerung mit arduino

    Lass uns eine klassische Skizze neu schreiben blinken... Wir werden jede der drei Farben der Reihe nach aktivieren und deaktivieren. Beachten Sie, dass die LED aufleuchtet, wenn wir LOW auf den entsprechenden Pin des Arduino anwenden.

    // Stellen Sie die Pin-Nummern ein: const int pinR = 12; const int pinG = 10; const int pinB = 9; void setup () (// Stellen Sie die Pinbelegung ein: PinMode (pinR, OUTPUT); pinMode (pinG, AUSGANG); pinMode (pinB, AUSGANG); } Leere Schleife () ( digitalWrite (pinR, LOW); // den Kanal aufleuchten Rote Verzögerung (100); digitalWrite (pinR, HIGH); // Rote Verzögerung ausschalten (200); digitalWrite (pinG, LOW); // den Kanal aufleuchten Grüne Verzögerung (100); digitalWrite (pinG, HIGH); // Grüne Verzögerung ausschalten (200); digitalWrite (pinB, LOW); // den Kanal beleuchten Blaue Verzögerung (100); digitalWrite (pinB, HIGH); // Blaue Verzögerung ausschalten (200); }

    4 Bauen Sie die Schaltung zusammen auf Steckbrett

    Sehen wir uns die RGB-LED in Aktion an. Die LED leuchtet abwechselnd rot, grün und blau. Jede Farbe leuchtet für 0,1 Sekunden auf, erlischt dann für 0,2 Sekunden und die nächste schaltet sich ein. Sie können jeden Kanal separat beleuchten, Sie können alle gleichzeitig beleuchten, dann ändert sich die Farbe des Glühens.


    RGB-LED ist mit Arduino verbunden. Die Schaltung ist auf einem Steckbrett aufgebaut

    5 zu Arduino

    Wenn Sie verwenden RGB-LED mit gemeinsamer Kathode Verbinden Sie dann die lange Leitung der LED mit Masse Arduino-Boards und die Kanäle R, G und B zu den digitalen Arduino-Ports. Zu beachten ist, dass die LEDs leuchten, wenn an den Kanälen R, G, B ein High-Pegel (HIGH) anliegt, im Gegensatz zur LED mit gemeinsamer Anode.


    Schaltplan für RGB-LED mit gemeinsamer Kathode zu Arduino

    Wenn Sie die obige Skizze nicht ändern, leuchtet jede LED-Farbe in diesem Fall 0,2 Sekunden lang und die Pause zwischen ihnen beträgt 0,1 Sekunden.

    Wenn Sie die Helligkeit der LED steuern möchten, verbinden Sie die RGB-LED mit den digitalen Pins des Arduino, die über PWM-Funktion verfügen. Diese Pins auf einem Arduino sind normalerweise mit einer Tilde (Wellenlinie), einem Sternchen oder einem Kreis gekennzeichnet.

    In diesem Artikel wurden die Grundlagen der Verwendung einer RGB-LED (Rot Grün Blau) mit einem Arduino behandelt.

    Wir verwenden die analogWrite-Funktion, um die RGB-LED-Farbe zu steuern.

    Auf den ersten Blick sehen RGB-LEDs genauso aus wie normale LEDs, aber sie haben tatsächlich drei LEDs in sich: eine rote, eine grüne und eine blaue. Durch die Steuerung der Helligkeit jedes einzelnen können Sie die Farbe der LED steuern.

    Das heißt, wir passen die Helligkeit jeder LED an und erhalten die gewünschte Farbe am Ausgang, als wäre es eine Künstlerpalette oder als würden Sie die Frequenzen an Ihrem Player anpassen. Dazu können Sie variable Widerstände verwenden. Infolgedessen wird das Schema jedoch ziemlich komplex. Glücklicherweise bietet uns Arduino die analogWrite-Funktion an. Wenn wir die mit dem "~"-Symbol gekennzeichneten Kontakte auf der Platine verwenden, können wir die Spannung regulieren, die an die entsprechende LED geliefert wird.

    Erforderliche Knoten

    Um unser kleines Projekt umsetzen zu können, benötigen wir:

    1 RGB-LED 10mm

    3 270--Widerstände (rot, lila, braune Streifen). Sie können einen Widerstand mit einem Widerstand von bis zu 1 kΩ verwenden, aber denken Sie daran, dass die LED mit zunehmendem Widerstand weniger hell zu leuchten beginnt.


    Sechs Ziffern der Zahl entsprechen drei Zahlenpaaren; das erste Paar ist der Rotanteil der Farbe, die nächsten beiden Ziffern sind der Grünanteil und das letzte Paar ist der Blauanteil. Das heißt, der Ausdruck # FF0000 entspricht der roten Farbe, da dies die maximale Helligkeit der roten LED ist (FF ist 255 in hexadezimaler Form) und die roten und blauen Komponenten gleich 0 sind.

    Versuchen Sie, die LED zum Beispiel mit einem Indigo-Farbton zu beleuchten: # 4B0082.

    Die Rot-, Grün- und Blaukomponenten der Indigofarbe sind 4B, 00 bzw. 82. Wir können sie innerhalb der Funktion "setColor" mit der folgenden Codezeile verwenden:

    setColor (0x4B, 0x0, 0x82); // Indigo

    Für die drei Komponenten verwenden wir eine Notation, in der am Anfang jeder von ihnen ein „0x“-Zeichen vorangestellt ist.

    Wenn Sie mit den verschiedenen RGB-LED-Tönen herumspielen, denken Sie daran, nach jeder Verwendung eine "Verzögerung" einzustellen.

    PWM und Arduino

    Pulsweitenmodulation (PWM) ist eine Methode der Energieverwaltung. In unserem Fall wird PWM verwendet, um die Helligkeit jeder einzelnen LED zu steuern.

    Die folgende Abbildung zeigt schematisch ein Signal von einem der PWM-Pins des Arduino.


    Alle 1 / 500stel Sekunde erzeugt der PWM-Ausgang einen Impuls. Die Länge dieses Impulses wird durch die Funktion "analogWrite" gesteuert. Das heißt, "analogWrite (0)" erzeugt keinen Impuls, aber "analogWrite (255)" erzeugt ein Signal, das bis zum Beginn des nächsten anhält. Das heißt, es wird den Eindruck erwecken, dass ein kontinuierlicher Impuls geliefert wird.

    Wenn wir innerhalb der analogWrite-Funktion einen Wert im Bereich von 0 bis 255 angeben, erzeugen wir einen Impuls einer bestimmten Dauer. Wenn die Pulslänge 5% beträgt, werden 5% der maximal verfügbaren Leistung an den angegebenen Arduino-Ausgang angelegt und es scheint, dass die LED nicht bei maximaler Helligkeit leuchtet.

    Hinterlassen Sie Ihre Kommentare, Fragen und teilen Sie Ihre persönlichen Erfahrungen unten. In der Diskussion entstehen oft neue Ideen und Projekte!