Verwenden Sie dies hausgemacht Mit fünf Tasten können Sie im RGB-System jede Farbe erstellen
1 - rot hinzufügen
2 - Grün hinzufügen
3 - Blau hinzufügen
4 - Zufällig (zufällige Farbe)
5 - Zurücksetzen
Was wir brauchen:
1. Arduino (in meinem Fall Arduino Mega)
2. Entwicklungsboard
3. Jumper-Typ: Papa Mama und Papa Papa
4. LCD 1602 (2 Zeilen mit 16 Zeichen)
5. Knöpfe 5 Stück
6. SMD RGB LED
7. Widerstand für 10 Kom 5 Stück
Zu Beginn schließen wir die RGB-LED an (wenn kein Widerstand vorhanden ist, setzen Sie einen Widerstand auf 220 Ohm).
Als nächstes setzen wir 5 Tasten: ein Tastenbein an Pin 5V und das andere über einen 10K-Widerstand an Masse und das gleiche Bein an Arduino.
Wir verbinden das LCD 1602-Display mit SDA und SCL (I2C).
All dies ist wie im Bild mit Arduino-Kontakten (GND, 5 V, SDA SCL, 2, 3, 4, 9, 10, 11, 12, 13) verbunden.
Nun, eigentlich die Skizze selbst
#include "LiquidCrustal_I2C.h" // Verbinde die Bibliothek, um über I2C mit dem Display zu arbeiten
#include "Wire.h" // Verbinde die Bibliothek, um mit I2C zu arbeiten
int R = 9;
int G = 10;
int B = 11;
// RGB-Farben
int BR = 0;
int BG = 0;
int BB = 0;
// Variablen zum Speichern des Wertes
int KR = 2; // roter Knopf
int KG = 3; // Schaltfläche ist grün
int KB = 4; // blaue Taste
int C = 13; // Reset-Taste
int RS = 12; // Knopf zufällig
LiquidCrystal_I2C lcd (0x27.16.2); // Display anschließen (Adresse, Spalten, Zeilen)
void setup () {// einmal ausführen
PinMode (R, OUTPUT);
PinMode (G, OUTPUT);
PinMode (B, OUTPUT);
// Verbinde die RGB LED
}}
void loop () {// endlos wiederholen
Verzögerung (10); // Verzögerung 10 ms
lcd.init (); // definiere die Anzeige
lcd.backlight (); // Hintergrundbeleuchtung des Displays einschalten
lcd.clear (); // Anzeige löschen
lcd.setCursor (5, 0); // Setzen Sie den Cursor auf die 6. Spalte und die 0. Zeile
lcd.print ("Farbe"); // schreibe Farbe
lcd.setCursor (0, 1);
lcd.print ("R"); // schreibe R.
lcd.setCursor (6, 1);
lcd.print ("G"); Ich schreibe G.
lcd.setCursor (12, 1);
lcd.print ("B"); schreibe B.
lcd.print (BB); // drucke den blauen Wert
lcd.setCursor (2, 1);
lcd.print (BR); // drucke den Wert von rot
lcd.setCursor (8, 1);
lcd.print (BG); // drucke den grünen Wert
lcd.setCursor (13, 1);
if (digitalRead (KR) == HIGH) {BR + = 15; } // Wenn die R-Taste gedrückt wird, ist der Wert von R +15
if (digitalRead (KG) == HIGH) {BG + = 15; } // Wenn die G-Taste gedrückt wird, ist der Wert von G +15
if (digitalRead (KB) == HIGH) {BB + = 15; } // Wenn Taste B gedrückt wird, ist der Wert B +15
if (digitalRead (C) == HIGH) {BR - = 254; } // Wenn die Taste C gedrückt wird, wird der Wert von R -254 angezeigt
if (digitalRead (C) == HIGH) {BG - = 254; } // Wenn die C-Taste gedrückt wird, wird der Wert G -254 angezeigt
if (digitalRead (C) == HIGH) {BB - = 254; } // Wenn die C-Taste gedrückt wird, wird der Wert B -254 angezeigt
if (digitalRead (RS) == HIGH) {BR = zufällig (0, 254); } // Wenn die RS-Taste gedrückt wird, liegt der Wert von R zwischen 0 und 254
if (digitalRead (RS) == HIGH) {BG = zufällig (0, 254); } // Wenn die RS-Taste gedrückt wird, liegt der Wert von G zwischen 0 und 254
if (digitalRead (RS) == HIGH) {BB = zufällig (0, 254); } // Wenn die RS-Taste gedrückt wird, liegt der Wert von B zwischen 0 und 254
BR = Einschränkung (BR, 0, 254); // BR = (Wert von, bis)
analogWrite (R, BR); // Mit der PWM-Modulation stellen wir die Helligkeit von 0 bis 254 ein
BG = Einschränkung (BG, 0, 254); // BG = (Wert von, bis)
analogWrite (G, BG); // Mit der PWM-Modulation stellen wir die Helligkeit von 0 bis 254 ein
BB = Einschränkung (BB, 0, 254); // BB = (Wert von, bis)
analogWrite (B, BB); // Mit der PWM-Modulation stellen wir die Helligkeit von 0 bis 254 ein
}}
Skizze herunterladen:
So sollte es sein!
Schreiben Sie in den Kommentaren, dass es nicht klar ist, dass ich alle Fragen beantworten werde
#include "LiquidCrustal_I2C.h" // Verbinde die Bibliothek, um über I2C mit dem Display zu arbeiten
#include "Wire.h" // Verbinde die Bibliothek, um mit I2C zu arbeiten
int R = 9;
int G = 10;
int B = 11;
// RGB-Farben
int BR = 0;
int BG = 0;
int BB = 0;
// Variablen zum Speichern des Wertes
int KR = 2; // roter Knopf
int KG = 3; // Schaltfläche ist grün
int KB = 4; // blaue Taste
int C = 13; // Reset-Taste
int RS = 12; // Knopf zufällig
LiquidCrystal_I2C lcd (0x27.16.2); // Display anschließen (Adresse, Spalten, Zeilen)
void setup () {// einmal ausführen
PinMode (R, OUTPUT);
PinMode (G, OUTPUT);
PinMode (B, OUTPUT);
// Verbinde die RGB LED
}}
void loop () {// endlos wiederholen
Verzögerung (10); // Verzögerung 10 ms
lcd.init (); // definiere die Anzeige
lcd.backlight (); // Hintergrundbeleuchtung des Displays einschalten
lcd.clear (); // Anzeige löschen
lcd.setCursor (5, 0); // Setzen Sie den Cursor auf die 6. Spalte und die 0. Zeile
lcd.print ("Farbe"); // schreibe Farbe
lcd.setCursor (0, 1);
lcd.print ("R"); // schreibe R.
lcd.setCursor (6, 1);
lcd.print ("G"); Ich schreibe G.
lcd.setCursor (12, 1);
lcd.print ("B"); schreibe B.
lcd.print (BB); // drucke den blauen Wert
lcd.setCursor (2, 1);
lcd.print (BR); // drucke den Wert von rot
lcd.setCursor (8, 1);
lcd.print (BG); // drucke den grünen Wert
lcd.setCursor (13, 1);
if (digitalRead (KR) == HIGH) {BR + = 15; } // Wenn die R-Taste gedrückt wird, ist der Wert von R +15
if (digitalRead (KG) == HIGH) {BG + = 15; } // Wenn die G-Taste gedrückt wird, ist der Wert von G +15
if (digitalRead (KB) == HIGH) {BB + = 15; } // Wenn Taste B gedrückt wird, ist der Wert B +15
if (digitalRead (C) == HIGH) {BR - = 254; } // Wenn die Taste C gedrückt wird, wird der Wert von R -254 angezeigt
if (digitalRead (C) == HIGH) {BG - = 254; } // Wenn die C-Taste gedrückt wird, wird der Wert G -254 angezeigt
if (digitalRead (C) == HIGH) {BB - = 254; } // Wenn die C-Taste gedrückt wird, wird der Wert B -254 angezeigt
if (digitalRead (RS) == HIGH) {BR = zufällig (0, 254); } // Wenn die RS-Taste gedrückt wird, liegt der Wert von R zwischen 0 und 254
if (digitalRead (RS) == HIGH) {BG = zufällig (0, 254); } // Wenn die RS-Taste gedrückt wird, liegt der Wert von G zwischen 0 und 254
if (digitalRead (RS) == HIGH) {BB = zufällig (0, 254); } // Wenn die RS-Taste gedrückt wird, liegt der Wert von B zwischen 0 und 254
BR = Einschränkung (BR, 0, 254); // BR = (Wert von, bis)
analogWrite (R, BR); // Mit der PWM-Modulation stellen wir die Helligkeit von 0 bis 254 ein
BG = Einschränkung (BG, 0, 254); // BG = (Wert von, bis)
analogWrite (G, BG); // Mit der PWM-Modulation stellen wir die Helligkeit von 0 bis 254 ein
BB = Einschränkung (BB, 0, 254); // BB = (Wert von, bis)
analogWrite (B, BB); // Mit der PWM-Modulation stellen wir die Helligkeit von 0 bis 254 ein
}}