- Erforderliche Materialien:
- LDR:
- RGB-LED:
- Schaltplan:
- Programmiererklärung:
- Arbeitsweise der Arduino Farbmischlampe:
Was ist, wenn wir mit einer einzigen RGB-LED verschiedene Farben erzeugen und die Ecke unseres Raums attraktiver machen können? Hier ist also eine einfache Arduino-basierte Farbmischlampe, die ihre Farbe ändern kann, wenn sich das Licht im Raum ändert. Diese Lampe ändert also automatisch ihre Farbe entsprechend den Lichtverhältnissen im Raum.
Jede Farbe ist die Kombination aus roter, grüner und blauer Farbe. Wir können also jede Farbe erzeugen, indem wir rote, grüne und blaue Farben verwenden. Hier variieren wir also die PWM, dh die Lichtintensität auf LDRs. Dadurch wird die Intensität der roten, grünen und blauen Farbe in der RGB-LED weiter geändert, und es werden verschiedene Farben erzeugt.
Die folgende Tabelle zeigt die Farbkombinationen mit der jeweiligen Änderung der Arbeitszyklen.
Erforderliche Materialien:
- 1 x Arduino UNO
- 1 x Steckbrett
- 3 x 220-Ohm-Widerstände
- 3 x 1 Kiloohm Widerstände
- Überbrückungsdrähte
- 3 x LDRs
- 3 x farbige Streifen (rot, grün, blau)
- 1 x RGB LED
LDR:
Wir werden hier in dieser Schaltung einen Fotowiderstand (oder einen lichtabhängigen Widerstand, einen LDR oder eine lichtleitende Zelle) verwenden. LDRs werden aus Halbleitermaterialien hergestellt, damit sie ihre lichtempfindlichen Eigenschaften haben. Diese LDRs oder PHOTO RESISTORS arbeiten nach dem Prinzip der „Fotoleitfähigkeit“. Dieses Prinzip besagt nun, dass immer dann, wenn Licht auf die Oberfläche des LDR fällt (in diesem Fall), die Leitfähigkeit des Elements zunimmt oder mit anderen Worten, der Widerstand des LDR fällt, wenn das Licht auf die Oberfläche des LDR fällt. Diese Eigenschaft der Widerstandsabnahme für das LDR wird erreicht, weil es eine Eigenschaft des auf der Oberfläche verwendeten Halbleitermaterials ist.
Hier werden drei LDR-Sensoren verwendet, um die Helligkeit der einzelnen roten, grünen und blauen LED in der RGB-LED zu steuern. Weitere Informationen zur Steuerung von LDR mit Arduino finden Sie hier.
RGB-LED:
Es gibt zwei Arten von RGB-LEDs: eine vom Typ mit gemeinsamem Kathodentyp (gemeinsam negativ) und eine vom Typ mit gemeinsamem Anodentyp (gemeinsam positiv). In CC (Common Cathode oder Common Negative) gibt es drei positive Anschlüsse, wobei jeder Anschluss eine Farbe darstellt, und einen negativen Anschluss, der alle drei Farben darstellt.
In unserer Schaltung werden wir den CA- Typ (Common Anode oder Common Positive) verwenden. Wenn beim Typ "Gemeinsame Anode" die ROTE LED eingeschaltet sein soll, müssen wir den ROTEN LED-Pin erden und das gemeinsame Plus mit Strom versorgen. Gleiches gilt für alle LEDs. Erfahren Sie hier, wie Sie RGB-LED mit Arduino verbinden.
Schaltplan:
Das vollständige Schaltbild dieses Projekts ist oben angegeben. Die im Schaltplan gezeigte + 5V- und Erdungsverbindung kann über den 5V- und Erdungsstift des Arduino bezogen werden. Das Arduino selbst kann von Ihrem Laptop oder über die DC-Buchse mit einem 12-V-Adapter oder einer 9-V-Batterie mit Strom versorgt werden.
Wir werden PWM verwenden, um die Helligkeit der RGB-LED zu ändern. Hier erfahren Sie mehr über PWM. Hier sind einige PWM-Beispiele mit Arduino:
- Variable Stromversorgung von Arduino Uno
- Gleichstrommotorsteuerung mit Arduino
- Arduino-basierter Tongenerator
Programmiererklärung:
Zunächst deklarieren wir alle Eingänge und Ausgangspins wie unten gezeigt.
const byte red_sensor_pin = A0; const byte green_sensor_pin = A1; const byte blue_sensor_pin = A2; const byte green_led_pin = 9; const byte blue_led_pin = 10; const byte red_led_pin = 11;
Deklarieren Sie die Anfangswerte der Sensoren und LEDs als 0.
unsigned int red_led_value = 0; unsigned int blue_led_value = 0; unsigned int green_led_value = 0; unsigned int red_sensor_value = 0; unsigned int blue_sensor_value = 0; unsigned int green_sensor_value = 0; void setup () { pinMode (red_led_pin, OUTPUT); pinMode (blue_led_pin, OUTPUT); pinMode (green_led_pin, OUTPUT); Serial.begin (9600); }}
Im Loop-Bereich werden drei Sensoren mit analogRead () ausgegeben. Funktion und Speicherung in drei verschiedenen Variablen.
void loop () { red_sensor_value = analogRead (red_sensor_pin); Verzögerung (50); blue_sensor_value = analogRead (blue_sensor_pin); Verzögerung (50); green_sensor_value = analogRead (green_sensor_pin);
Drucken Sie diese Werte zum Debuggen auf den seriellen Monitor
Serial.println ("Raw Sensor Values:"); Serial.print ("\ t Red:"); Serial.print (red_sensor_value); Serial.print ("\ t Blue:"); Serial.print (blue_sensor_value); Serial.print ("\ t Grün:"); Serial.println (green_sensor_value);
Wir erhalten 0-1023 Werte von den Sensoren, aber unsere Arduino PWM-Pins haben 0-255 Werte als Ausgang. Wir müssen also unsere Rohwerte in 0-255 konvertieren. Dazu müssen wir die Rohwerte durch 4 teilen ODER einfach die Mapping-Funktion von Arduino verwenden, um diese Werte zu konvertieren.
red_led_value = red_sensor_value / 4; // definiere rote LED blue_led_value = blue_sensor_value / 4; // Blaue LED definieren green_led_value = green_sensor_value / 4; // Grüne LED definieren
Drucken Sie zugeordnete Werte auf den seriellen Monitor
Serial.println ("Mapped Sensor Values:"); Serial.print ("\ t Red:"); Serial.print (red_led_value); Serial.print ("\ t Blue:"); Serial.print (blue_led_value); Serial.print ("\ t Grün:"); Serial.println (green_led_value);
Verwenden Sie analogWrite () , um die Ausgabe für die RGB-LED einzustellen
analogWrite (red_led_pin, red_led_value); // rote LED anzeigen analogWrite (blue_led_pin, blue_led_value); // blaue LED anzeigen analogWrite (green_led_pin, green_led_value); // grün anzeigen
Arbeitsweise der Arduino Farbmischlampe:
Da wir drei LDRs verwenden, ändert sich beim Einfall von Licht auf diese Sensoren der Widerstand, wodurch sich die Spannungen auch an den analogen Pins von Arduino ändern, die als Eingangsstifte für Sensoren dienen.
Wenn sich die Lichtintensität dieser Sensoren ändert, leuchtet die jeweilige LED in RGB mit der Änderung des Widerstands und wir haben unterschiedliche Farbmischungen in RGB-LED mit PWM.