Arduino-Code zur Transfusion verschiedener Farben. Von Arduino gesteuerter RGB-LED-Streifen. LED-Streifen an Arduino anschließen

In vielen Anwendungen, sowohl im Amateur- als auch im Profibereich, ist es manchmal erforderlich, Farben in unterschiedlichen Farbtönen zu erzeugen. Der Einsatz separater einfarbiger LEDs ist in solchen Fällen baulich und wirtschaftlich nicht gerechtfertigt. Daher wurden für solche Zwecke RGB-LEDs entwickelt.



Eine RGB-LED (das Akronym steht für RED, GREEN, BLUE) ist eine Kombination von Kristallen, die rote, grüne und blaue Farben erzeugen können. Dank dieser Kombination können diese LEDs 16 Millionen Lichtschattierungen reproduzieren. RGB-LEDs sind einfach anzusteuern und können problemlos in Arduino-Projekten eingesetzt werden. Dieses Material zeigt ein Beispiel für die Steuerung einer RGB-LED mit Arduino.


Da es sich bei einer RGB-LED, wie oben erwähnt, um eine Kombination aus Kristallen mit drei verschiedenen Grundfarben handelt, wird sie schaltungstechnisch als drei LEDs dargestellt. Strukturell verfügt eine solche LED über einen gemeinsamen Anschluss und drei Anschlüsse für jede Farbe. Unten finden Sie ein Diagramm, wie Sie eine RGB-LED an ein Arduino anschließen. Die Schaltung umfasst außerdem ein 16x2 alphanumerisches LCD-Display, Potentiometer und Widerstände in Reihe mit den RGB-LED-Leitungen. Diese Widerstände (R1 = 100 Ohm, R2 = 270 Ohm, R3 = 330 Ohm) begrenzen den Strom der LEDs, damit diese nicht ausfallen. Zur Steuerung der Intensität der RGB-LED werden variable Widerstände (Potentiometer) VR1-VR3 mit einem Widerstand von 10 KOhm verwendet, d. h. mit ihnen lässt sich die Farbe der LED durch Änderung der Intensität von Rot, Grün und Blau einstellen Kristalle. Potentiometer VR1 ist an Analogeingang A0, VR2 an Analogeingang A1 und VR3 an Analogeingang A2 angeschlossen.



Das LCD-Display dient in diesem Fall zur Anzeige des Farbwertes und Hexadezimalwert Farbcode. Der Farbcodewert wird in der 1. Zeile des LCD angezeigt (als Rxxx Gxxx Bxxx, wobei xxx ein numerischer Wert ist) und der Hexadezimalcode wird in der 2. Zeile des LCD angezeigt (als HEXxxxxxx). Ein 100-Ohm-Widerstand R4 dient zur Begrenzung des an die LCD-Hintergrundbeleuchtung angelegten Stroms und ein variabler 10-Ohm-Widerstand VR4 dient zur Einstellung des LCD-Kontrasts.


Nachfolgend finden Sie einen Code (Skizze), mit dem Sie den Farbwechsel einer RGB-LED mithilfe der Arduino-Platine und den daran angeschlossenen Potentiometern steuern können.


#enthalten // Bibliothek für LCD-Anzeige LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // Arduino-Leitungen zum Anschluss des LCD-Displays int Radj; int Gadj; int Badj; int Rval=0; int Gval=0; int Bval=0; int R = 9; int G = 10; int B = 11; void setup() ( pinMode(R, OUTPUT); // Zeile 9 wird an den Ausgang weitergeleitet pinMode(G, OUTPUT); // Zeile 10 wird an den Ausgang weitergeleitet pinMode(B, OUTPUT); // Zeile 11 wird an den Ausgang weitergeleitet zur Ausgabe lcd.begin (16,2); // Display initialization(1); lcd.print("RGB color"); (0, 0); lcd.print(" R G B "); lcd.setCursor("HEX= "); Badj = analogRead(2); von (0-1023) bis (0-255) Gval=Gadj/4; // Konvertieren Sie den Bereich von (0-1023) bis (0-255) Bval=Badj/4; // Konvertieren Sie den Bereich von (0-1023) bis (0-255) 1023) bis (0-255) lcd.setCursor(2,0);<10) { lcd.setCursor(2,0); lcd.print("00"); lcd.print(Rval); } else if(Rval<100) { lcd.setCursor(2,0); lcd.print("0"); lcd.print(Rval); } else { lcd.setCursor(2,0); lcd.print(Rval); } lcd.setCursor(8,1); if (Rval<16) { lcd.print("0"); lcd.print(Rval, 16); } else { lcd.print(Rval, 16); } lcd.setCursor(7,0); if (Gval<10) { lcd.setCursor(7,0); lcd.print("00"); lcd.print(Gval); } else if(Gval<100) { lcd.setCursor(7,0); lcd.print("0"); lcd.print(Gval); } else { lcd.setCursor(7,0); lcd.print(Gval); } lcd.setCursor(10,1); if (Gval<16) { lcd.print("0"); lcd.print(Gval, 16); } else { lcd.print(Gval, 16); } lcd.setCursor(12,0); if (Bval<10) { lcd.setCursor(12,0); lcd.print("00"); lcd.print(Bval); } else if(Bval<100) { lcd.setCursor(12,0); lcd.print("0"); lcd.print(Bval); } else { lcd.setCursor(12,0); lcd.print(Bval); } lcd.setCursor(12,1); if (Bval<16) { lcd.print("0"); lcd.print(Bval, 16); } else { lcd.print(Bval, 16); } analogWrite(R, Rval); // ШИМ-выход для красного цвета analogWrite(G, Gval); // ШИМ-выход для зеленого цвета analogWrite(B, Bval); // ШИМ-выход для синего цвета }

Die dreifarbige LED kann in allen Farben des Regenbogens schimmern! Stimmen Sie zu, das ist viel interessanter als nur das Blinken einer normalen LED
Beginnen wir mit der dritten 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 Helligkeitsstufen und Intensitäten von Rot, Grün und Blau betreiben, erhalten wir neue Farben.

Am Rand der LED befindet sich eine kleine Abschrägung, das ist der Schlüssel, sie zeigt auf den Schenkel der roten LED, dann ist da noch der allgemeine, dann grün und blau.

Verbinden Sie den ROTEN LED-Zweig mit dem 330-Ohm-Widerstand. Verbinden Sie das andere Ende des Widerstands mit dem Arduino Pin9-Anschluss.

Verbinden Sie den gemeinsamen Pin mit GND.

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

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

Verbinden Sie das BLAUE Bein mit dem 330-Ohm-Widerstand.

Verbinden Sie das andere Ende des Widerstands mit dem Arduino Pin11-Anschluss.

Das folgende Bild zeigt das Aussehen eines Steckbretts mit der zusammengebauten Schaltung und einer Arduino-Platine mit Drähten, die vom Steckbrett ausgehen.

ArduinoKit-Experimentierset
Programmcode für Erlebnis Nr. 3:

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

Letztes Mal haben wir uns angeschaut, wie man einen LED-Streifen über den L298-Treiber an einen Arduino anschließt. Das Farbmanagement erfolgte programmgesteuert – die Random-Funktion. Jetzt ist es an der Zeit herauszufinden, wie man die Farbe des LED-Streifens anhand der Messwerte des Temperatur- und Feuchtigkeitssensors DHT 11 steuern kann.

Das Beispiel basiert auf dem Anschluss eines LED-Streifens über den L298-Treiber. Außerdem wurde im Beispiel ein LCD 1602-Display hinzugefügt, das die Messwerte des DHT 11-Sensors anzeigt.

Das Projekt erfordert die folgenden Arduino-Elemente:

  1. Arduino UNO-Board.
  2. Anzeige LCD 1602 + I2C.
  3. Temperatur- und Feuchtigkeitssensor DHT
  4. LED-Streifen.
  5. Treiber L298.
  6. Stromversorgung 9-12V.
  7. Gehäuse für Arduino und Display (optional).

Schauen wir uns zunächst den Schaltplan an (Abb. 1). Darauf können Sie sehen, wie Sie alle oben genannten Elemente verbinden. Der Zusammenbau und Anschluss der Schaltung ist nicht kompliziert, aber es lohnt sich, eine Nuance zu erwähnen, die die meisten Leute vergessen und dadurch falsche Ergebnisse erhalten, wenn sie mit LED-Streifen mit Arduino arbeiten.

Abbildung 1. Schematische Darstellung der Verbindung von Arduino und LED-Streifen mit DHT 11-Sensor

Um Fehlfunktionen des LED-Streifens zu vermeiden (Flackern, Farbabweichung, unvollständiges Leuchten usw.), muss die Stromversorgung für den gesamten Stromkreis gemeinsam erfolgen, d. h. Kombinieren Sie die GND-Pins (Masse) des Arduino-Controllers und des L298-Treibers (LED-Streifen). Wie das geht, sehen Sie im Diagramm.

Ein paar Worte zum Anschluss eines Feuchtigkeitssensors. Wenn Sie einen nackten DHT 11 ohne Umreifung kaufen, müssen Sie zwischen dem ersten und zweiten Kontakt, 5 V bzw. Daten, einen Widerstand mit einem Nennwert von 5-10 kOhm anlöten. Der Temperatur- und Feuchtigkeitsmessbereich ist auf der Rückseite des DHT 11-Sensorgehäuses angegeben. Temperatur: 0-50 Grad Celsius. Luftfeuchtigkeit: 0-80 %.


Abbildung 2. Korrekter Anschluss des DHT 11-Feuchtesensors

Nachdem wir alle Elemente des Projekts gemäß dem Schema zusammengestellt haben, müssen wir Programmcode schreiben, der dafür sorgt, dass alles so funktioniert, wie wir es brauchen. Und wir benötigen, dass der LED-Streifen abhängig von den Messwerten des DHT 11-Sensors (Feuchtigkeit) seine Farbe ändert.

Um den DHT 11-Sensor zu programmieren, benötigen Sie eine zusätzliche Bibliothek.

Arduino- und RGB-Programmcode - Strip. Ändert die Farbe des Bandes je nach Luftfeuchtigkeit.

#include #include //Bibliothek für die Arbeit mit dem LCD 1602-Display #include //Bibliothek für die Arbeit mit dem Feuchtigkeits- und Temperatursensor DHT 11 int chk; //die Variable speichert alle Daten vom DHT11-Sensor int hum; //die Variable speichert die Feuchtigkeitsmesswerte vom DHT11-Sensor dht11 DHT; //Objekt vom Typ DHT #define DHT11_PIN 4 //Datenpin des DHT11-Sensors ist mit Eingang 4 verbunden #define LED_R 9 //Pin für Kanal R #define LED_G 10 //Pin für Kanal G #define LED_B 11 //Pin für Kanal B //Variablen speichern Farbwerte //wenn alle drei Farben gemischt werden, wird die gewünschte Farbe erhalten int led_r=0, led_g=0, led_b=0; //Deklarieren eines Anzeigeobjekts mit der Adresse 0x27 //Vergessen Sie nicht, im Projekt eine Anzeige über eine I2C-Karte zu verwenden LiquidCrystal_I2C lcd(0x27,16,2); void setup() ( //eine Anzeige erstellen lcd.init(); lcd.backlight(); // Pins als Ausgänge deklarieren pinMode(LED_R, OUTPUT); pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); ) void loop () ( chk = DHT.read(DHT11_PIN);//Daten vom DHT11-Sensor lesen //Daten an die Anzeige ausgeben lcd.print("Temp: "); lcd.print(DHT.temperatur, 1); lcd.print( " C"); lcd.print("Hum: "); /für den korrekten Betrieb des Sensors ist eine Verzögerung erforderlich erforderlich für die Abfrage von lcd.clear(); hum = DHT.humidity; //Messungen der Luftfeuchtigkeit im Bereich von 19 bis 30 % durchführen, Anzeige grün, wenn ((hum >= 19) && (hum<= 30)) { led_r = 1; led_g = 255; led_b = 1; } //в диапозоне от 31 до 40% влажности выдать красный цвет if ((hum >= 31) && (hm<= 40)) { led_r = 255; led_g = 1; led_b = 1; } //в диапозоне от 41 до 49% влажности выдать синий цвет if ((hum >= 41) && (hm<= 49)) { led_r = 1; led_g = 1; led_b = 255; } // подача сигналов цвета на выхода analogWrite(LED_R, led_r); analogWrite(LED_G, led_g); analogWrite(LED_B, led_b); }

Schlagworte: Schlagworte

Arduino ist ideal zur Steuerung beliebiger Geräte. Der ATmega-Mikroprozessor verwendet ein Skizzenprogramm, um eine große Anzahl diskreter Pins, analog-digitaler Ein-/Ausgänge und PWM-Controller zu manipulieren.

Aufgrund der Flexibilität des Codes wird der ATmega-Mikrocontroller häufig in verschiedenen Automatisierungsmodulen eingesetzt, unter anderem ist es auf seiner Basis möglich, einen LED-Beleuchtungssteuerungscontroller zu erstellen.

Das Prinzip der Laststeuerung über Arduino

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

Der analoge Ausgang ist ein PWM-Controller, dem ein Signal mit einer Frequenz von etwa 500 Hz und einem einstellbaren 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 (den Strom) daran zu ändern.

Befehlssyntax

Digitaler Ausgang:

pinMode(12, OUTPUT);— Port 12 als Datenausgangsport festlegen;
digitalWrite(12, HIGH);— Wir legen eine logische Eins an den diskreten Ausgang 12 an, wodurch die LED aufleuchtet.

Analoger Ausgang:

analogOutPin = 3;– Stellen Sie Port 3 so ein, dass er einen Analogwert ausgibt.
analogWrite(3, Wert);– Wir erzeugen 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 Anschluss angeschlossen werden, besser geht es über einen Begrenzungswiderstand. Wenn Sie versuchen, eine stärkere Last anzuschließen, wird diese beschädigt.

Für leistungsstärkere Verbraucher, darunter auch LED-Streifen, kommt ein elektronischer Schalter – ein Transistor – zum Einsatz.

Arten von Transistorschaltern

  • Bipolar;
  • Feld;
  • Verbundwerkstoff (Darlington-Baugruppe).
Verbindungsmethoden laden
Über Bipolartransistor Über Feldeffekttransistor Über Spannungsschalter

Wenn ein hoher Logikpegel angelegt wird (digitalWrite(12, HIGH);)Über den Ausgangsanschluss zur Basis des Transistors fließt die Referenzspannung über die Kollektor-Emitter-Kette zur Last. Auf diese Weise können Sie die LED ein- und ausschalten.

Ein Feldeffekttransistor funktioniert ähnlich, da er jedoch anstelle einer „Basis“ einen Drain hat, der nicht durch den Strom, sondern durch die Spannung gesteuert wird, ist in dieser Schaltung kein Begrenzungswiderstand erforderlich.

Die bipolare Sichtweise ermöglicht es Ihnen nicht, starke Belastungen zu regulieren. Der Strom durch ihn ist auf 0,1–0,3 A begrenzt.

Feldeffekttransistoren arbeiten mit stärkeren Lasten mit Strömen bis zu 2A. Für eine noch stärkere Belastung kommen Mosfet-Feldeffekttransistoren mit einem Strom von bis zu 9A und einer Spannung von bis zu 60V zum Einsatz.

Anstelle von Feldtransistoren können Sie eine Darlington-Anordnung von Bipolartransistoren auf den Mikroschaltungen ULN2003, ULN2803 verwenden.

ULN2003-Chip und Schaltplan eines elektronischen Spannungsschalters:

Das Funktionsprinzip eines Transistors zur reibungslosen Steuerung eines LED-Streifens

Ein Transistor funktioniert wie ein Wasserhahn, nur für Elektronen. Je höher die an der Basis des Bipolartransistors bzw. am Drain des Feldeffekttransistors anliegende Spannung ist, desto geringer ist der Widerstand im Emitter-Kollektor-Kreis und desto höher ist der Strom, der durch die Last fließt.

Nachdem wir den Transistor an den analogen Arduino-Port angeschlossen haben, weisen wir ihm einen Wert von 0 bis 255 zu und ändern die an den Kollektor oder Drain angelegte Spannung von 0 auf 5 V. Der Kollektor-Emitter-Kreis reicht von 0 bis 100 % der Lastreferenzspannung.

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

Anschlussplan für LED-Streifen an Arduino:

RGB-Streifen mit Andurino steuern

Neben Single-Chip-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 und so die gewünschte Leuchtfarbe erzielen.

Anschlussplan für Arduino RGB LED:

Die Arduino RGB-Streifensteuerung ist ähnlich aufgebaut:

Es ist besser, den Arduino RGB-Controller mit Feldeffekttransistoren zusammenzubauen.

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

Skizze zur Helligkeitssteuerung des Arduino-LED-Streifens

int led = 120; Stellen Sie die Helligkeit auf mittlere Stufe ein

void setup() (
pinMode(4, OUTPUT); Stellen Sie den 4. analogen Port auf Ausgang ein
pinMode(2, INPUT);

pinMode(4, INPUT); Stellen Sie den 2. und 4. digitalen Port als Eingang für Abruftasten ein
}
Leere Schleife()

button1 = digitalRead(2);

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

analogWrite(4, led);
}
if (button2 == HIGH) Durch Drücken der zweiten Taste wird die Helligkeit verringert
{
geführt = geführt - 5;

analogWrite(4, led);
}

Wenn Sie die erste oder zweite Taste gedrückt halten, ändert sich die Spannung, die dem Steuerkontakt des elektronischen Schlüssels zugeführt wird, stufenlos. Dann kommt es zu einem sanften Helligkeitswechsel.

Arduino-Steuermodule

Um einen vollwertigen LED-Streifen-Steuerungstreiber zu erstellen, können Sie Sensormodule verwenden.

IR-Steuerung

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

Der Signalradius beträgt ca. 8m.

Der Preis des Sets beträgt 6 USD.

Per Funkkanal

Vierkanaliges Gerät mit einer Reichweite von bis zu 100 m

Der Preis des Sets beträgt 8 USD.

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

Kontaktlos

Der Abstandssensor ist in der Lage, die Helligkeit der Beleuchtung durch Bewegung Ihrer Hand zu erhöhen oder zu verringern.

Aktionsradius bis zu 5m.

Modulpreis 0,3 USD

Wir haben es bereits in der vorherigen Lektion versucht. Schauen wir uns nun die mehrfarbige LED an, die oft als Abkürzung bezeichnet wird: RGB-LED.

RGB ist eine Abkürzung und steht für: Rot – Rot, Grün – Grün, Blau – Blau. Das heißt, in diesem Gerät sind drei separate LEDs untergebracht. Je nach Typ kann eine RGB-LED eine gemeinsame Kathode oder eine gemeinsame Anode haben.

Farben mischen

Warum ist eine RGB-LED besser als drei herkömmliche? Es geht um die Fähigkeit unseres Sehvermögens, Licht aus verschiedenen nahe beieinander platzierten Quellen zu mischen. Wenn wir beispielsweise blaue und rote LEDs nebeneinander platzieren, verschmelzen sie in einem Abstand von mehreren Metern und das Auge sieht einen violetten Punkt. Und wenn wir noch Grün hinzufügen, erscheint uns der Punkt weiß. Genau so funktionieren Computermonitore, Fernseher und Outdoor-Bildschirme.

Die TV-Matrix besteht aus einzelnen Punkten unterschiedlicher Farbe. Nimmt man eine Lupe und schaut durch sie auf den eingeschalteten Monitor, kann man diese Punkte gut erkennen. Auf einem Outdoor-Bildschirm sind die Punkte jedoch nicht so dicht platziert, dass sie mit bloßem Auge erkennbar sind. Aber aus einer Entfernung von mehreren Dutzend Metern sind diese Punkte nicht zu unterscheiden.

Es stellt sich heraus, dass das Auge umso weniger Abstand benötigt, um diese Farben zu mischen, je näher die mehrfarbigen Punkte beieinander liegen. Daher das Fazit: Im Gegensatz zu drei separaten LEDs ist die Farbmischung einer RGB-LED bereits in einer Entfernung von 30-70 cm spürbar. Eine RGB-LED mit einer matten Linse schneidet übrigens noch besser ab.



gastroguru 2017