Ennek használata házi bármilyen szín elkészíthető az RGB rendszerben öt gombbal
1 - adjunk hozzá pirosat
2 - Add zöld
3 - Add kék
4 - Véletlenszerű (véletlenszerű szín)
5 - Visszaállítás
Amire szükségünk van:
1. Arduino (az én esetemben arduino mega)
2. Fejlesztési testület
3. Jumper típus: apa anya és apa apa
4. LCD 1602 (2 sor 16 karakterből)
5. Gombok 5 darab
6. SMD RGB LED
7. Ellenállás 10 Kom 5 darabra
Az induláshoz csatlakoztassuk az RGB LED-et (ellenállás hiányában tegyünk egy ellenállást 220 ohmra).
Ezután 5 gombot teszünk: az egyik gombbal az 5V-ot rögzítjük, a másikat pedig egy 10K-os ellenálláson keresztül a földhöz és ugyanazt a lábat az arduino-hoz.
Az LCD 1602 kijelzőt csatlakoztatjuk az SDA-hoz és az SCL-hez (I2C).
Mindez az arduino érintkezőkhöz (GND, 5V, SDA SCL, 2, 3, 4, 9, 10, 11, 12, 13) kapcsolódik, mint a képen.
Nos, valójában a vázlat
#include "LiquidCrustal_I2C.h" // Csatlakoztassa a könyvtárat az I2C-n keresztül a képernyőhöz való működéshez
#include "Wire.h" // Csatlakoztassa a könyvtárat az I2C-hez való működéshez
int R = 9;
int G = 10;
int B = 11;
// RGB színek
int BR = 0;
int BG = 0;
int BB = 0;
// változók az érték mentéséhez
int KR = 2; // piros gomb
int KG = 3; // gomb zöld
int KB = 4; // kék gomb
int C = 13; // Reset gomb
int RS = 12; // gomb véletlenszerűen
LiquidCrystal_I2C lcd (0x27.16.2); // Csatlakoztassa a képernyőt (cím, oszlopok, sorok)
void setup () {// futtassa egyszer
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
// csatlakoztassa az RGB LED-et
}
void loop () {// ismételje meg végtelenül
késleltetés (10); // késleltetés 10 ms
lcd.init (); // a kijelző meghatározása
lcd. háttérvilágítás (); // kapcsolja be a kijelző háttérvilágítását
lcd.clear (); // törölje a kijelzőt
lcd.setCursor (5, 0); // vigye a kurzort a 6. oszlopra és a 0. sorra
lcd.print ("színes"); // színes írása
lcd.setCursor (0, 1);
lcd.print ("R"); // írja R
lcd.setCursor (6, 1);
lcd.print ("G"); / írj G
lcd.set kurzor (12, 1);
lcd.print ("B"); írj B
lcd.print (BB); // nyomtassa ki a kék értéket
lcd.setCursor (2, 1);
lcd.print (BR); // nyomtassa ki a piros értékét
lcd.setCursor (8, 1);
lcd.print (BG); // nyomtassa ki a zöld értéket
lcd.set kurzor (13, 1);
if (digitalRead (KR) == HIGH) {BR + = 15; } // ha megnyomja az R gombot, akkor az R +15 értéke
if (digitalRead (KG) == HIGH) {BG + = 15; } // ha megnyomja a G gombot, akkor a G +15 értéke
if (digitalRead (KB) == HIGH) {BB + = 15; } // ha a B gombot megnyomják, akkor a B +15 érték
if (digitalRead (C) == HIGH) {BR - = 254; } // ha megnyomja a C gombot, akkor az R -254 értéke
if (digitalRead (C) == HIGH) {BG - = 254; } // ha megnyomja a C gombot, akkor a G -254 értéke
if (digitalRead (C) == HIGH) {BB - = 254; } // ha megnyomja a C gombot, akkor a B -254 érték
if (digitalRead (RS) == HIGH) {BR = véletlenszerű (0, 254); } // ha megnyomja az RS gombot, akkor R értéke 0 és 254 között van
if (digitalRead (RS) == HIGH) {BG = véletlenszerű (0, 254); } // ha megnyomja az RS gombot, akkor G értéke 0 és 254 között van
if (digitalRead (RS) == HIGH) {BB = véletlenszerű (0, 254); } // ha megnyomja az RS gombot, akkor B értéke 0 és 254 között van
BR = kényszer (BR, 0, 254); // BR = (érték, -tól -ig)
analogWrite (R, BR); // a PWM modulációval a fényerőt 0 és 254 között állíthatjuk be
BG = kényszer (BG, 0, 254); // BG = (érték, -tól -ig)
analogWrite (G, BG); // a PWM modulációval a fényerőt 0 és 254 között állíthatjuk be
BB = kényszer (BB, 0, 254); // BB = (érték, -tól -ig)
analogWrite (B, BB); // a PWM modulációval a fényerőt 0 és 254 között állíthatjuk be
}
Vázlat letöltése:
Így kell lennie!
Írja meg a megjegyzésekbe, hogy nem egyértelmű, hogy minden kérdésre megválaszolom
#include "LiquidCrustal_I2C.h" // Csatlakoztassa a könyvtárat az I2C-n keresztül a képernyőhöz való működéshez
#include "Wire.h" // Csatlakoztassa a könyvtárat az I2C-hez való működéshez
int R = 9;
int G = 10;
int B = 11;
// RGB színek
int BR = 0;
int BG = 0;
int BB = 0;
// változók az érték mentéséhez
int KR = 2; // piros gomb
int KG = 3; // gomb zöld
int KB = 4; // kék gomb
int C = 13; // Reset gomb
int RS = 12; // gomb véletlenszerűen
LiquidCrystal_I2C lcd (0x27.16.2); // Csatlakoztassa a képernyőt (cím, oszlopok, sorok)
void setup () {// futtassa egyszer
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
// csatlakoztassa az RGB LED-et
}
void loop () {// ismételje meg végtelenül
késleltetés (10); // késleltetés 10 ms
lcd.init (); // a kijelző meghatározása
lcd. háttérvilágítás (); // kapcsolja be a kijelző háttérvilágítását
lcd.clear (); // törölje a kijelzőt
lcd.setCursor (5, 0); // vigye a kurzort a 6. oszlopra és a 0. sorra
lcd.print ("színes"); // színes írása
lcd.setCursor (0, 1);
lcd.print ("R"); // írja R
lcd.setCursor (6, 1);
lcd.print ("G"); / írj G
lcd.set kurzor (12, 1);
lcd.print ("B"); írj B
lcd.print (BB); // nyomtassa ki a kék értéket
lcd.setCursor (2, 1);
lcd.print (BR); // nyomtassa ki a piros értékét
lcd.setCursor (8, 1);
lcd.print (BG); // nyomtassa ki a zöld értéket
lcd.set kurzor (13, 1);
if (digitalRead (KR) == HIGH) {BR + = 15; } // ha megnyomja az R gombot, akkor az R +15 értéke
if (digitalRead (KG) == HIGH) {BG + = 15; } // ha megnyomja a G gombot, akkor a G +15 értéke
if (digitalRead (KB) == HIGH) {BB + = 15; } // ha a B gombot megnyomják, akkor a B +15 érték
if (digitalRead (C) == HIGH) {BR - = 254; } // ha megnyomja a C gombot, akkor az R -254 értéke
if (digitalRead (C) == HIGH) {BG - = 254; } // ha megnyomja a C gombot, akkor a G -254 értéke
if (digitalRead (C) == HIGH) {BB - = 254; } // ha megnyomja a C gombot, akkor a B -254 érték
if (digitalRead (RS) == HIGH) {BR = véletlenszerű (0, 254); } // ha megnyomja az RS gombot, akkor R értéke 0 és 254 között van
if (digitalRead (RS) == HIGH) {BG = véletlenszerű (0, 254); } // ha megnyomja az RS gombot, akkor G értéke 0 és 254 között van
if (digitalRead (RS) == HIGH) {BB = véletlenszerű (0, 254); } // ha megnyomja az RS gombot, akkor B értéke 0 és 254 között van
BR = kényszer (BR, 0, 254); // BR = (érték, -tól -ig)
analogWrite (R, BR); // a PWM modulációval a fényerőt 0 és 254 között állíthatjuk be
BG = kényszer (BG, 0, 254); // BG = (érték, -tól -ig)
analogWrite (G, BG); // a PWM modulációval a fényerőt 0 és 254 között állíthatjuk be
BB = kényszer (BB, 0, 254); // BB = (érték, -tól -ig)
analogWrite (B, BB); // a PWM modulációval a fényerőt 0 és 254 között állíthatjuk be
}