Arduino-Code für Transfusion mit verschiedenen Farben. RGB-LED und Arduino. Beiträge von Lektionen

Ich habe kürzlich 2 Rollen gekauft rGB-LED-Ribbon. 5 Meter und beschlossen sofort, damit zu experimentieren. Enthielt einen Block zum Kontrollieren des Bandes, aber es schien mir, dass es kleine Interessenprogramme gab, und zur Hand war Tinyos Uno (voller chinesischer Analogon Arduino uno.). Angesichts der Tatsache, dass arduino Es arbeitet mit einem Maximum von 5V bis zum Beenden und häufiger 3.3b, dann war es notwendig, eine Lösung zu finden. Dieser Artikel diskutiert, wie Sie ein 12-Volt-LED-Farbband anschließen arduino mit separater Ernährung für Band und Kontrolle mit arduinka Mit MOSFETs (MOSFETs) zur Steuerung von Kanälen RGB-Bänder.

Beginnen wir mit der Standardspezifikation des analogen LED-Bands, das mir am häufigsten scheint.

  • 10.5mm (0,41 ") Breite, 3 mm (0,12 Zoll) Dicke, 100 mm (3,95") Länge für jedes Segment
  • Es ist feuchtigkeitsdichtlich ( wasserdicht) und ohne Schutz ( nicht wasserfest)
  • Er hat Klebeband auf der Rückseite, um das Band zu befestigen
  • Maximale Spannung 12V und 60 mA für jedes Segment
  • 3 LEDs mit einer gemeinsamen Anode in jedem Segment
  • LED-Wellenlänge: 630nm / 530nm / 475nm
  • Kein Mikrocontroller- oder Controller-Chip (reines analoge Steuerung)

Bevor Sie mit der Arbeit mit beginnen Arduino. und Spannung höher als 5 Volt sehr beraten, dass Sie das Lesen, um Ihre nicht zu verbrennen Arduino.. Es ist gut beschrieben. Mosfetov von Arduino. Wenn Sie diesen Artikel bereits gelesen haben, bewegen wir uns weiter.
Für so lED-Ribbon Wir brauchen:

  1. MOSFET. Transistoren, die auf demselben eBay zu finden sind
  2. Widerstände auf 10k?
  3. Makeup-Strahl ( breadboard.)
  4. Beiträge zum Anschluss. arduino Mit einer mutigen Gebühr (Dad Dad)
  5. LED-Band (ich nahm an aliexpress. Hier ist dieses Band und planen, ein paar mehr desselben Verkäufers zu bestellen)

Nun wenden wir uns an das Anschlussschema, der Hauptteil dieses Artikels ist klar daraus:

Nun wenden wir uns an Arduino-IDE.In dem Sie einen Test schreiben, um unser Farbband zu kontrollieren:

// Beachten Sie, dass hier ein erheblicher Legacy-Code, der hier ein paar Jahre alt ist, um nichts zu tun // aber nicht schaden ... // Don "T-FUMZ mit diesen, illegalen Summen später #define rot 9 // Pin für rote LED #Define grün 10 // pin für grün - nie explizit referenziert #define blue 11 // pin für blau - nie explizit referenziert #define größe 255 #define verzögerung 20 #define hue_max 6.0 #define hue_delta 0.01 // langer Deltas \u003d (5, 6, 7); Lange RGB; langer RGBVAL; // aus unbekannten Gründen, wenn Wert! \u003d 0, die LED nicht light. Hmm ... // und Sättigungs-SEMS, um invertierter Float-Hue \u003d 0,0, Sättigung \u003d 1, Wert \u003d 1; / * gewählte LED-Sparkfun-SKU : Com-09264 hat eine maximale Leuchtkraft (RGB): (2800, 6500, 1200) MCD, also normalisieren wir sie alle bis 1200 MCD - R 250/600 \u003d 107/256 G 250/950 \u003d 67/256 B 250/250 \u003d 256 / 256 * / langes hell \u003d (107, 67, 256); // lang hell \u003d (256, 256, 256); lang k, temp_value; void setup (randomseed (anallogrenad (4)); für (k \u003d 0; K.<3; k++) { pinMode(RED + k, OUTPUT); rgb[k]=0; analogWrite(RED + k, rgb[k] * bright[k]/256); } } void loop() { hue += HUE_DELTA; if (hue > Hue_max) (Hue \u003d 0,0;) RGBVAL \u003d HSV_TO_RGB (Farbton, Sättigung, Wert); RGB \u003d (RGBVAL & 0X00FF0000) \u003e\u003e 16; // Es muss bessere Weise geben, wie RGB \u003d (RGBVAL & 0x0000FF00) \u003e\u003e<3; k++) { // for all three colours analogWrite(RED + k, rgb[k] * bright[k]/256); } delay(DELAY); } long HSV_to_RGB(float h, float s, float v) { // H is given on . S and V are given on . // RGB is returned as a 24-bit long #rrggbb int i; float m, n, f; // not very elegant way of dealing with out of range: return black if ((s<0.0) || (s>1.0) || (V.<1.0) || (v> < 0.0) || (h > 6.0)) (Rücklauf lang (v * 255) + lang (v * 255) * 256 + lang (v * 255) * 65536;) i \u003d Boden (h); f \u003d h - i; wenn (! (i & 1)) (f \u003d 1 - f; // wenn ich sogar ist) m \u003d v * (1 - s); n \u003d v * (1 - s * f); Switch (I) (Fall 6: Fall 0: Return Long (V * 255) * 65536 + lang (n * 255) * 256 + lang (M * 255); Fall 1: Langzeit zurückkehren (n * 255) * 65536 + Lang (v * 255) * 256 + lang (M * 255); Fall 2: Return Long (M * 255) * 65536 + lang (v * 255) * 256 + lang (n * 255); Fall 3: Lang zurückkehren (M * 255) * 65536 + lang (n * 255) * 256 + lang (v * 255); Fall 4: Rücklauf lang (n * 255) * 65536 + lang (m * 255) * 256 + lang (v * 255); Fall 5: Rücklauf lang (v * 255) * 65536 + lang (M * 255) * 256 + lang (n * 255);)))

Gießen Sie die Skizze auf Arduino und freuen Sie sich.
Es gibt auch eine Option mit einem Temperatursensor. Ds18b20.das funktioniert auf dem Protokoll 1-Draht..

Die Idee ist, dass " kalte Temperatur ", Normalerweise blau und " heiße Temperatur"Holen Sie sich rot. Wenn Sie einen Blick auf das HSV-Rad ansehen, das wir in der ersten Skizze (cm. Wiki) verwendet haben, beträgt die Farbe von 240 °, wenn er kalt und bis zu 0 ° C kalt und bis zu 0 °, wenn es heiß ist, im Uhrzeigersinn blau, grün und gelb).

Kalte Temperaturen In diesem Fall ist es im Hinblick auf 18 ° C und heiß Es impliziert 30 ° C. Die Temperatur unterhalb der kalten Schwelle wird als kalt über dem heißen Schwellenwert angesehen - heiß. Der endgültige Code ist eigentlich ganz einfach, wenn Sie einen fertigen HSV-Code haben:

HSV Fade / Bounce für Arduino // Beachten Sie, dass hier ein Legacy-Code übrig ist, in dem sich SEMS, um nichts zu tun / / nicht zu tun, aber nicht schaden ... #include "OneWire.h" // # beinhalten "Streaming. H". Const int ds18s20_pin \u003d 2; // ds18s20 Signalstift auf digital 2 #define min_temp 18 #define max_temp 30 // temperaturchip i / o onewire ds (ds18s20_pin); // auf digitalem Pin 2 // Don "T FUMZ mit diesen, Illegale Summen später #define rot 9 // Pin für rote LED #define grün 10 // pin für grün - nie explizit referenziert #define blau 11 // pin für blau - nie explizit referenziert #define größe 255 #define verzögern 0 # definieren hue_max 6.0 #define hue_delta 0.01 // langer Deltas \u003d (5, 6, 7); Lange rgb; langer RGBVAL; // aus unbekannten Gründen, wenn Wert! \u003d 0, die LED nicht light. Hmm ... // und Sättigungs-SEMS, um invertierter Float-Hue \u003d 0,0, Sättigung \u003d 1, Wert \u003d 1; / * gewählte LED-Sparkfun-SKU : Com-09264 hat eine maximale Leuchtkraft (RGB): (2800, 6500, 1200) MCD, also normalisieren wir sie alle bis 1200 MCD - R 250/600 \u003d 107/256 G 250/950 \u003d 67/256 B 250/250 \u003d 256 / 256 * / lang hell \u003d (107, 67, 256); // lang hell \u003d (256, 256, 256); lang k, temp_value; void setup (randomseed (anallogrenad (4)); serial.begin ( 57600); für (k \u003d 0; k<3; k++) { pinMode(RED + k, OUTPUT); rgb[k]=0; analogWrite(RED + k, rgb[k] * bright[k]/256); } } void loop() { float temperature = constrain(getTemp(), MIN_TEMP, MAX_TEMP); float deltaTemp = (MAX_TEMP - MIN_TEMP); float deltaHue = 4 - 0; hue = map((temperature - MIN_TEMP) * 100, 0, deltaTemp * 100, deltaHue * 100, 0) / 100.0; //Serial << "Temperature: " << temperature << endl; //Serial << "HUE: " << hue << endl; rgbval=HSV_to_RGB(hue, saturation, value); rgb = (rgbval & 0x00FF0000) >\u003e 16; // Es muss bessere Weise geben, wie RGB \u003d (RGBVAL & 0x0000FF00) \u003e\u003e 8; RGB \u003d RGBVAL & 0x000000FF; für (k \u003d 0; k<3; k++) { // for all three colours analogWrite(RED + k, rgb[k] * bright[k]/256); } //delay(DELAY); } float getTemp(){ //returns the temperature from one DS18S20 in DEG Celsius byte data; byte addr; if (!ds.search(addr)) { //no more sensors on chain, reset search ds.reset_search(); return -1000; } if (OneWire::crc8(addr, 7) != addr) { Serial.println("CRC is not valid!"); return -1000; } if (addr != 0x10 && addr != 0x28) { Serial.print("Device is not recognized"); return -1000; } ds.reset(); ds.select(addr); ds.write(0x44,1); // start conversion, with parasite power on at the end byte present = ds.reset(); ds.select(addr); ds.write(0xBE); // Read Scratchpad for (int i = 0; i < 9; i++) { // we need 9 bytes data[i] = ds.read(); } ds.reset_search(); byte MSB = data; byte LSB = data; float tempRead = ((MSB << 8) | LSB); //using two"s compliment float TemperatureSum = tempRead / 16; return TemperatureSum; } long HSV_to_RGB(float h, float s, float v) { // H is given on . S and V are given on . // RGB is returned as a 24-bit long #rrggbb int i; float m, n, f; // not very elegant way of dealing with out of range: return black if ((s<0.0) || (s>1.0) || (V.<1.0) || (v>1.0)) (Rückkehr 0l;), wenn ((h< 0.0) || (h > 6.0)) (Rücklauf lang (v * 255) + lang (v * 255) * 256 + lang (v * 255) * 65536;) i \u003d Boden (h); f \u003d h - i; wenn (! (i & 1)) (f \u003d 1 - f; // wenn ich sogar ist) m \u003d v * (1 - s); n \u003d v * (1 - s * f); Switch (I) (Fall 6: Fall 0: Return Long (V * 255) * 65536 + lang (n * 255) * 256 + lang (M * 255); Fall 1: Langzeit zurückkehren (n * 255) * 65536 + Lang (v * 255) * 256 + lang (M * 255); Fall 2: Return Long (M * 255) * 65536 + lang (v * 255) * 256 + lang (n * 255); Fall 3: Lange zurückkehren (M * 255) * 65536 + lang (n * 255) * 256 + lang (v * 255); Fall 4: Rücklauf lang (n * 255) * 65536 + lang (m * 255) * 256 + lang (v * 255); Fall 5: Rücklauf lang (v * 255) * 65536 + lang (M * 255) * 256 + lang (n * 255);)))

Um diese Geräte zu verwalten, wird ein RGB-Controller verwendet. Aber außer ihm wurde die Gebühr von Arduino in den letzten Jahren angewandt.

Arduino - Betriebsprinzip

Arduino Board.

Das Arduino-Board ist ein Gerät, auf dem ein programmierbarer Mikrocontroller installiert ist. Unterschiedliche Sensoren, Steuerungs- oder Encoder-Steuerelemente sind mit ihm verbunden, und gemäß einer bestimmten Skizze (Programm) steuert die Platine Motor, LEDs und andere Betätigungsmechanismen, einschließlich anderer Arduino-Platinen über das SPI-Protokoll. Die Gerätesteuerung kann über die Fernbedienung, das Bluetooth, HC-06, Wi-Fi, ESP oder Internet-Modul sowie Tasten überwacht werden. Einige der beliebtesten Platten - Arduino Nano und Arduino UNO sowie Arduino Pro Mini - Atmega 328 Mikrocontroller-Gerät


Aussehen Arduino pro Mini
Aussehen Arduino UNO.
Aussehen Arduino Micro.

Die Programmierung erfolgt in einer auf dem üblichen Computer installierten Open-Source-Arduino-Umgebung. Die Programme werden über USB geladen.

Ladeverwaltungsprinzip durch Arduino


Büro Arduino.

Auf dem Brett gibt es viele Ausgänge, sowohl digital mit zwei staatlichen staatlichen und deaktivierten und analogen, über PWM-Controller gesteuerten, mit einer Frequenz von 500 Hz.

Die Auslässe werden jedoch auf dem Strom 20 bis 40 mA mit einer Spannung von 5 V berechnet. Dies reicht aus, um den Indikator RGB-LED oder ein Matrix-LED-Modul 32 × 32 mm zu erhöhen. Für eine stärkere Belastung reicht dies nicht aus.

Um ein solches Problem in vielen Projekten zu lösen, müssen Sie zusätzliche Geräte anschließen:

  • Relais. Neben den einzelnen 2-V-Stromversorgungsrelais gibt es ganze Anordnungen mit unterschiedlicher Anzahl von Kontakten sowie mit eingebauten Startern.
  • Verstärker auf bipolaren Transistoren. Die Leistung solcher Geräte ist auf den Steuerstrom beschränkt, Sie können jedoch ein Diagramm mehrerer Elemente sammeln oder eine Transistoranordnung verwenden.
  • Feld- oder MOSFET-Transistoren. Sie können den Strom mit Strömen in mehreren Verstärker und Spannung bis zu 40 - 50 V steuern. Beim Anschließen der MOSFTA mit dem PWM und dem Elektromotor oder einer anderen induktiven Last ist eine Schutzdiode erforderlich. Wenn Sie mit LEDs oder LED-Lampen verbunden sind, ist kein Bedarf erforderlich.
  • Erweiterungskarten.

LED-Band an Arduino verbinden


LED-Band an Arduino verbinden

Meinungssexperte.

Alexey Bartosh.

Spezialist für Reparatur, Wartung elektrischer Geräte und Industrieelektronik.

Stellen Sie einen Fragexperten

Arduino Nano kann nicht nur Elektromotoren verwalten. Sie werden auch für LED-Bänder verwendet. Da der Ausgangsstrom und die Spannung der Platine jedoch nicht ausreichen, um die Bänder mit LEDs direkt zu verbinden, müssen zusätzliche Geräte zwischen dem Controller und dem LED-Farbband installiert werden.

Durch Relais


Verbinden über Relais

Das Relais verbindet sich mit dem Gerät an den digitalen Ausgang. Die mit ihm verwaltete Band hat nur zwei Staaten - ein- und aus. Um rot-blau-grün zu verwalten, erfordert ein Farbband drei Relais. Der Strom, den ein solches Gerät, das eine solche Vorrichtung steuern kann, ist auf die Spulenleistung beschränkt (die Low-Power-Spule kann große Kontakte nicht verlangsamen). Relaisanordnungen werden verwendet, um mehr Strom zu verbinden.

Verwenden von Bipolartransistor


Anschließen mit einem Transistor

Um den Ausgangsstrom und die Spannung zu verbessern, können Sie einen Bipolartransistor verwenden. Es wird durch Strom- und Lastspannung ausgewählt. Der Steuerstrom sollte nicht über 20 mA liegen, daher wird es durch einen Strombegrenzungswiderstand von 1 bis 10 com zugeführt.

Der Transistor ist besser anzuwenden n-p-n Mit einem gemeinsamen Emitter. Zur größeren Verstärkung wird eine Schaltung mit mehreren Elementen oder einer Transistoranordnung (Verstärkerchip) verwendet.

Verwendung von Feldtransistor

Neben Bipolar werden Feldtransistoren zur Steuerung von Streifen verwendet. Ein anderer Name dieser Geräte ist MOS- oder MOSFET-Transistor.

Ein solches Element wird im Gegensatz zu bipolar nicht durch einen Strom, sondern eine Spannung am Gate gesteuert. Dadurch kann ein kleiner Verschlussstrom, um große Lastströme zu steuern - bis zu Dutzend Ampere.

Das Element ist durch den Strombegrenzungswiderstand verbunden. Darüber hinaus ist es empfindlich auf Interferenzen, daher sollte der Controller-Ausgang mit einem Massenwiderstand in 10 com kombiniert werden.

Verwenden der Erweiterungskarten


Verbinden Sie Arduino mit den Erweiterungskarten

Zusätzlich zu Relais und Transistoren werden fertige Blöcke und Verlängerungskarten verwendet.

Es kann ein Wi-Fi- oder Bluetooth sein, ein Elektromotorsteuerungstreiber, beispielsweise ein L298N-Modul oder einen Equalizer. Sie sollen die Belastungen unterschiedlicher Leistung und Spannung steuern. Solche Geräte sind einkanal - kann nur das Monochrome Band steuern, und Multichannel - sind für RGB- und RGBW-Geräte sowie Bänder mit WS 2812-LEDs vorgesehen.

Beispielprogramm


Arduino und LED-Band

Arduino-Boards können LED-Designs gemäß vorbestimmten Programmen steuern. Ihre Bibliotheken können von der offiziellen Website heruntergeladen werden, finden Sie im Internet oder schreiben Sie selbst eine neue Skizze (Code). Sie können ein solches Gerät mit Ihren eigenen Händen sammeln.

Hier sind einige Optionen für die Verwendung solcher Systeme:

  • Lichtsteuerung. Mit Hilfe des Beleuchtungssensors wird das Licht im Raum sowohl auf einmal als auch mit der allmählichen Erhöhung der Helligkeit als Sonnenuntergang eingeschaltet. Die Inklusion kann auch über WLAN erfolgen, mit der Integration in das Smart Home-System oder die Verbindung zum Telefon.
  • Die Aufnahme von Licht auf die Treppe oder in einen langen Korridor. Es sieht sehr schön an die DIODE-Hintergrundbeleuchtung jedes Schritts separat. Beim Anschließen an die Bewegungssensorplatine löst es aus, dass er mit einer Zeitverzögerung konsistent ist, mit einer Zeitverzögerung einschalten, die Hintergrundbeleuchtung oder den Korridor einschalten, und die Deaktivierung dieses Elements führt zum umgekehrten Prozess.
  • Farbe Musik. Nach Angabe an den analogen Eingängen, einem Piepton durch die Filter, führt der Ausgang zu einer Farbmusikinstallation.
  • Computermodning. Mit Hilfe geeigneter Sensoren und Programme kann die Farbe der LEDs von der Temperatur oder dem Laden des Prozessors oder dem RAM abhängen. Ein solches Gerät unter dem Protokoll von DMX 512.
  • Steuerung der Laufgeschwindigkeit der Laufleuchten mit Hilfe eines Gebers. Solche Anlagen werden auf WS 2811, WS 2812 und WS 2812B-Chips gesammelt.

Videoanweisung.

In vielen Anwendungen, sowohl Amateur als auch professionell, müssen manchmal die Farben verschiedener Farbtöne generieren. Die Verwendung einzelner monochromer LEDs in solchen Fällen ist unangemessen konstruktiv und wirtschaftlich. Daher wurden RGB-LEDs für solche Zwecke entwickelt.



RGB-LED (Abkürzung bedeutet Rot, Grün, Blau) ist eine Kombination von Kristallen, die rot, grün und blau erzeugen können. Dank dieser Kombination können diese LEDs 16 Millionen Lichttöne reproduzieren. Die Steuerung der RGB-LEDs ist einfach und können leicht in Projekten mit Arduino verwendet werden. Dieses Material zeigt ein Beispiel für die Steuerung der RGB-LED mithilfe von Arduino.


Da die RGB-LED, wie oben erwähnt, eine Kombination von Kristallen von drei verschiedenen Basisfarben ist, wird er als drei LEDs angezeigt. Strukturell hat eine solche LED eine gemeinsame Ausgabe und drei Ausgänge für jede Farbe. Unten ist das RGB-LED-Verbindungsschema in Arduino. Das Schema enthält auch eine alphanumerische LCD-Anzeige von 16 × 2, Potentiometern und Widerständen, die mit RGB-LED-Leitungen gehasst werden. Diese Widerstände (R1 \u003d 100 Ohm, R2 \u003d 270 Ohm, R3 \u003d 330 Ohm) begrenzen den Strom der LED so, dass sie nicht fehlschlagen. Variable Widerstände (Potentiometer) VR1-VR3-Beständigkeit 10 kΩ werden verwendet, um die Intensität des Glühens der RGB-LED zu steuern, dh mit Hilfe von ihnen können Sie die Farbe der LED einstellen, wodurch die Intensität von Rot, Grün geändert wird und blaue Kristalle. Das VR1-Potentiometer ist mit dem analogen Eingang A1, VR2 mit einem analogen Eingang A1 und VR3 mit analogem Eingang A2 verbunden.



Die LCD-Anzeige wird in diesem Fall verwendet, um den Farbwert und den Hexadezimalwert des Farbcodes anzuzeigen. Der Farbcodewert wird in der 1. Zeile des LCD-Displays angezeigt (als RXXX GXXX BXXX, wobei XXX ein numerischer Wert ist) und der Hexadezimalcode in der 2. Zeile des LCD-Displays (als Hexxxxxx) angezeigt wird. Der Widerstand R4-Widerstand 100 Ohm wird verwendet, um den an der LCD-Hintergrundbeleuchtung angelegten Strom zu begrenzen, und der Variablenwiderstand VR4-Widerstand wird verwendet, um den Kontrast der LCD-Dispersion einzustellen.


Unten ist der Code (Skatch), mit dem Sie die Variation der RGB-LED-Farbe mithilfe der Arduino-Platine und der mit ihm verbundenen Potentiometer steuern können.


#Einschließen. // LCD-Bibliothek LiquidCrystal LCD (7, 6, 5, 4, 3, 2); // arduino-linie zum Anschluss eines int radj lcd; int gadj; Int Badj; int rval \u003d 0; int gval \u003d 0; int bval \u003d 0; int r \u003d 9; INT G \u003d 10; int b \u003d 11; VOINT SETUP () (PINMode (R, Ausgang); // Zeile 9 wird auf den PINMode (G, Ausgang) ausgegeben; // Line 10 ist auf den PinMode-Ausgang (B, Ausgang) gerichtet; // Zeile 11 ist gerichtet an den LCD.BEGIN-Ausgang (16,2); // Verzögerung (1) Anzeige initialisierung; LCD.Setcursor (0,0); LCD.Print ("RGB-Farbe"); LCD.Setcursor (4,1); LCD-LCD .print ("Generator"); Verzögerung (2000); lcd.setcursor (0, 0); lcd.print ("RGB"); LCD.Setcursor (3,1); lcd.print ("hex \u003d"); ) Void Loop () (Radj \u003d anallogrenad (0); gadj \u003d anallogrenad (1); badj \u003d anallogrenad (2); Rval \u003d Radj / 4; // Konvertieren Sie den Bereich von (0-1023) bis (0-255) GVAL \u003d GADJ / 4; // Konvertieren Sie den Bereich von (0-1023) bis (0-255) BVAL \u003d Badj / 4; // Konvertieren Sie den Bereich von (0-1023) bis (0-255) lcd.setcursor ( 2.0); wenn (rval<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); // ШИМ-выход для синего цвета }

In der vorherigen Lektion haben wir bereits versucht. Jetzt können wir es mit einer mehrfarbigen LED herausfinden, die oft abgekürzt wird: RGB-LED..

RGB ist eine Abkürzung, die entschlüsselt als: Rot - Rot, Grün - Grün, Blau - Blau. Das heißt, in diesem Gerät gibt es drei separate LEDs. Je nach Typ kann die RGB-LED eine gemeinsame Kathode oder eine gemeinsame Anode aufweisen.

Blumen mischen

Wie ist die RGB-LED, besser als drei gewöhnliche? Es geht um das Eigentum unserer Vision, um Licht aus verschiedenen Quellen zu mischen, die nahe beieinander liegen. Wenn wir beispielsweise neben blauen und roten LEDs liefern, ist es in einem Abstand von mehreren Metern in einem Abstand von mehreren Metern Sohlen, und das Auge wird einen lila Punkt sehen. Und wenn Sie mehr grün hinzufügen, scheint der Punkt für uns weiß zu sein. So arbeiten Computer-Monitore, Fernseher und Straßenbildschirme.

Die TV-Matrix besteht aus separaten Punkten unterschiedlicher Farben. Wenn Sie ein Lupe nehmen und auf den Monitor ansehen, so eingeschaltet, können diese Punkte leicht zu sehen sein. Aber auf dem Straßenbildschirm sind Punkte nicht sehr eng, sodass sie durch das bloße Auge unterschieden werden können. Aber aus der Entfernung von mehreren Zehn Meter sind diese Punkte nicht unterscheidbar.

Es stellt sich heraus, dass sich einander am nächsten mehr mehrfarbige Punkte befinden, der geringere Abstand muss, um diese Farben zu mischen. Daher ist die Schlussfolgerung: Im Gegensatz zu den drei abgelösten LEDs ist das Mischen von RGB-LED-Farben bereits in einem Abstand von 30 bis 70 cm merklich. Übrigens zeigt die RGB mit einem matten Objektiv noch besser.

Multicolor-LEDs oder wie sie auch RGB genannt werden, werden verwendet, um eine dynamisch ändernde Hintergrundbeleuchtung anzuzeigen und zu erstellen. In der Tat, nichts Besonderes in ihnen, lasst uns herausfinden, wie sie arbeiten und was RGB-LEDs ist.

Interne Organisation

Tatsächlich ist die RGB-LED drei monochrome Kristalle in einem Fall kombiniert. Der RGB-Name entschlüsselt als rot-rotes, grüngrünes, blaublaues Blau-Blau bzw. Farben, die jeden der Kristalle abgeben.

Diese drei Farben sind basisch, und bei ihrem Mischen wird jede Farbe gebildet, eine solche Technologie wurde längst in Fernseher und Fotografie angewendet. In dem Bild, das sich oben befindet, wird der Glühen jedes Kristalls separat gesehen.

In diesem Bild sehen Sie das Prinzip der Mischfarben für alle Farben.

Kristalle in RGB-LEDs können nach dem Schema angeschlossen werden:

Mit einer gemeinsamen Anode;

Mit einer gemeinsamen Kathode;

Nicht verbunden.

In den ersten beiden Optionen sehen Sie, dass die LED 4-Ausgänge hat:

Oder 6. Schlussfolgerungen im letzteren Fall:

Sie können drei Kristalle sehen, die auf dem Foto unter der Linse deutlich sichtbar sind.

Spezielle Montageseiten werden für solche LEDs verkauft, sie zeigen sogar die Abtretung von Schlussfolgerungen an.

Es ist unmöglich, die RGBW-LEDs zu verlassen, ihr Unterschied besteht darin, dass ein weiterer Kristall in ihrem Gehäuse vorhanden ist, der weißes Licht emittiert.

Natürlich ohne Bänder mit solchen LEDs.

Dieses Bild zeigt ein Band mit RGB-LEDs, das gemäß einer Kreislauf mit einer gemeinsamen Anode gesammelt wird, wobei die Einstellung der Intensität des Glühens durch Steuern von "-" (minus) Stromversorgung ausgeführt wird.

Um die RGB-Ribbon-Farbe zu ändern, werden spezielle RGB-Controller verwendet - Geräte zum Schalten der Spannungszufuhr auf dem Band.

Hier ist das COCOL RGB SMD5050:

Und die Bänder, die Merkmale der Arbeit mit RGB-Bändern sind nicht, alles bleibt ebenso wie bei einfarbigen Modellen.

Es gibt Anschlüsse, damit sie das LED-Klebeband ohne Löten anschließen können.

Hier ist die Einleitung von 5 mm RGB-LED:

Wie sich die Farbe des Glühens ändert

Die Farbeinstellung erfolgt durch Anpassen der Helligkeit der Emissionen anhand jeder der Kristalle. Wir haben bereits in Betracht gezogen.

Der RGB-Controller für das Band arbeitet auf demselben Prinzip, er kostet einen Mikroprozessor, der den Minusausgang der Stromquelle steuert - verbindet und schaltet es von der Kette der entsprechenden Farbe ab. In der Regel mit dem Controller enthalten ist eine Fernbedienung. Controller sind von unterschiedlicher Leistung, ihre Größe hängt davon ab, reicht von einer solchen Miniatur.

Ja, so ein leistungsstarkes Gerät in der Gehäusegröße mit einer Stromversorgung.

Sie sind nach einem solchen Schema mit dem Band verbunden:

Da der Querschnitt der Ribbon-Pfade nicht erlaubt, das folgende Segment des Bands sequentiell mit ihm anzuschließen, wenn die erste Länge 5M überschreitet, müssen Sie das zweite Segment mit den Drähten direkt vom RGB-Controller anschließen.

Sie können jedoch aus der Position herauskommen und die zusätzlichen 4 Kabel nicht 5 Meter vom Controller ziehen und den RGB-Verstärker verwenden. Für seine Arbeit müssen Sie nur 2 Drähte (plus und minus 12 V) strecken oder eine andere Stromversorgung von der nächstgelegenen Quelle 220V sowie 4 "Information" -drähte aus dem vorherigen Segment (R, G und B) speichern, die sie benötigt werden Um Befehle vom Controller zu erhalten, ist der gesamte Designglühler gleichermaßen.

Und das nächste Segment ist bereits mit dem Verstärker verbunden, d. H. Es verwendet ein Signal vom vorherigen Bandteil. Das heißt, Sie können das Farbband von dem Verstärker aufrechterhalten, der sich direkt in der Nähe befindet, wodurch Geld und Zeit auf dem Draht gespart wird, das vom primären RGB-Controller verlegt.

RGB-LED mit Ihren eigenen Händen regulieren

Es gibt also zwei Möglichkeiten, RGB-LEDs zu steuern:

Hier ist eine Option des Systems ohne Verwendung von Arduin und anderen Mikrocontroller mit drei CAT4101-Treibern, die den Strom an 1A ausgeben können.

Nun sind die Controller jedoch ziemlich billig und wenn Sie das LED-Band regulieren, ist es besser, eine fertige Option zu erwerben. Die Schemata mit Arduino sind viel einfacher, desto mehr können Sie die Skizze schreiben, mit der Sie entweder manuell die Farbe einstellen, oder die Büste der Farben ist in Übereinstimmung mit dem angegebenen Algorithmus automatisch.

Fazit

RGB-LEDs ermöglichen es, interessante leichte Effekte in der Innenarchitektur eingesetzt zu werden, wie die Hervorhebung von Haushaltsgeräten, zum Auswirkungen der Fernsehscreen-Erweiterung. Spezielle Unterschiede beim Arbeiten mit ihnen aus gewöhnlichen LEDs - Nein.