Koristeći ovo domaći u RGB sustavu možete napraviti bilo koju boju s pet gumba
1 - dodajte crvenu
2 - Dodajte zelenu
3 - Dodajte plavu
4 - Slučajno (slučajna boja)
5 - resetiranje
Što nam treba:
1. Težak (u mom slučaju arduino mega)
2. Razvojna ploča
3. Tip skakača: mama mama i tata tata
4. LCD 1602 (2 retka od 16 znakova)
5. Gumbi 5 komada
6. SMD RGB LED
7. Otpornik za 10 Kom 5 komada
Za početak povezujemo RGB LED (u nedostatku otpornika, stavimo otpornik na 220 ohma).
Zatim stavimo 5 gumba: jedna noga tipke na pin 5V, a druga kroz otpornik od 10K prema zemlji i ista noga prema arduinu.
LCD zaslon 1602 spajamo na SDA i SCL (I2C).
Sve je to povezano s arduino kontaktima (GND, 5V, SDA SCL, 2, 3, 4, 9, 10, 11, 12, 13) kao na slici.
Pa, zapravo sama skica
#include "LiquidCrustal_I2C.h" // povežite biblioteku za rad s zaslonom putem I2C
#include "Wire.h" // Povežite biblioteku za rad s I2C
int R = 9;
int G = 10;
int B = 11;
// RGB boje
int BR = 0;
int BG = 0;
int BB = 0;
// varijable za spremanje vrijednosti
int KR = 2; // crveni gumb
int KG = 3; // gumb je zelene boje
int KB = 4; // plavo dugme
int C = 13; // gumb za resetiranje
int RS = 12; // tipka slučajna
LiquidCrystal_I2C lcd (0x27.16.2); // Spojite zaslon (adresa, stupci, redovi)
void setup () {// pokrenuti jednom
pinMode (R, IZLAZ);
pinMode (G, IZLAZ);
pinMode (B, IZLAZ);
// spojite RGB LED
}
void petlje () {// ponavljati beskrajno
kašnjenje (10); // kašnjenje 10 ms
lcd.init (); // definirati prikaz
lcd.backlight (); // uključite pozadinsko osvjetljenje zaslona
lcd.clear (); // obrišite zaslon
lcd.setCursor (5, 0); // postavite kursor na 6. stupac i 0. reda
lcd.print ("Boja"); // pisati u boji
lcd.setCursor (0, 1);
lcd.print ("R"); // pisati R
lcd.setCursor (6, 1);
lcd.print ("G"); / napisati G
lcd.setCursor (12, 1);
lcd.print ("B"); napisati B
lcd.print (BB); // ispisati plavu vrijednost
lcd.setCursor (2, 1);
lcd.print (BR); // ispisati vrijednost crvene boje
lcd.setCursor (8, 1);
lcd.print (BG); // ispisati zelenu vrijednost
lcd.setCursor (13, 1);
ako je (digitalno čitanje (KR) == HIGH) {BR + = 15; } // ako se pritisne gumb R, tada je vrijednost R +15
ako je (digitalno čitanje (KG) == HIGH) {BG + = 15; } // ako se pritisne gumb G, tada je vrijednost G +15
ako je (digitalno čitanje (KB) == HIGH) {BB + = 15; } // ako se pritisne gumb B, tada je vrijednost B +15
ako je (digitalno čitanje (C) == HIGH) {BR - = 254; } // ako se pritisne tipka C, tada vrijednost R -254
ako je (digitalno čitanje (C) == HIGH) {BG - = 254; } // ako se pritisne tipka C, tada je vrijednost G -254
ako je (digitalno čitanje (C) == HIGH) {BB - = 254; } // ako se pritisne tipka C, tada je vrijednost B -254
ako je (digitalno čitanje (RS) == HIGH) {BR = slučajno (0, 254); } // ako se pritisne RS tipka, tada je vrijednost R od 0 do 254
ako je (digitalno čitanje (RS) == HIGH) {BG = slučajno (0, 254); } // ako se pritisne RS tipka, tada je vrijednost G od 0 do 254
ako je (digitalno čitanje (RS) == HIGH) {BB = slučajno (0, 254); } // ako se pritisne RS tipka, tada je vrijednost B od 0 do 254
BR = ograničenje (BR, 0, 254); // BR = (vrijednost, od, do)
analogWrite (R, BR); // pomoću PWM modulacije podešavamo svjetlinu od 0 do 254
BG = ograničenje (BG, 0, 254); // BG = (vrijednost, od, do)
analogWrite (G, BG); // pomoću PWM modulacije podešavamo svjetlinu od 0 do 254
BB = ograničenje (BB, 0, 254); // BB = (vrijednost, od, do)
analogWrite (B, BB); // pomoću PWM modulacije podešavamo svjetlinu od 0 do 254
}
Preuzmi skicu:
To bi trebalo biti!
Napišite u komentarima da nije jasno da ću odgovoriti na sva pitanja
#include "LiquidCrustal_I2C.h" // povežite biblioteku za rad s zaslonom putem I2C
#include "Wire.h" // Povežite biblioteku za rad s I2C
int R = 9;
int G = 10;
int B = 11;
// RGB boje
int BR = 0;
int BG = 0;
int BB = 0;
// varijable za spremanje vrijednosti
int KR = 2; // crveni gumb
int KG = 3; // gumb je zelene boje
int KB = 4; // plavo dugme
int C = 13; // gumb za resetiranje
int RS = 12; // tipka slučajna
LiquidCrystal_I2C lcd (0x27.16.2); // Spojite zaslon (adresa, stupci, redovi)
void setup () {// pokrenuti jednom
pinMode (R, IZLAZ);
pinMode (G, IZLAZ);
pinMode (B, IZLAZ);
// spojite RGB LED
}
void petlje () {// ponavljati beskrajno
kašnjenje (10); // kašnjenje 10 ms
lcd.init (); // definirati prikaz
lcd.backlight (); // uključite pozadinsko osvjetljenje zaslona
lcd.clear (); // obrišite zaslon
lcd.setCursor (5, 0); // postavite kursor na 6. stupac i 0. reda
lcd.print ("Boja"); // pisati u boji
lcd.setCursor (0, 1);
lcd.print ("R"); // pisati R
lcd.setCursor (6, 1);
lcd.print ("G"); / napisati G
lcd.setCursor (12, 1);
lcd.print ("B"); napisati B
lcd.print (BB); // ispisati plavu vrijednost
lcd.setCursor (2, 1);
lcd.print (BR); // ispisati vrijednost crvene boje
lcd.setCursor (8, 1);
lcd.print (BG); // ispisati zelenu vrijednost
lcd.setCursor (13, 1);
ako je (digitalno čitanje (KR) == HIGH) {BR + = 15; } // ako se pritisne gumb R, tada je vrijednost R +15
ako je (digitalno čitanje (KG) == HIGH) {BG + = 15; } // ako se pritisne gumb G, tada je vrijednost G +15
ako je (digitalno čitanje (KB) == HIGH) {BB + = 15; } // ako se pritisne gumb B, tada je vrijednost B +15
ako je (digitalno čitanje (C) == HIGH) {BR - = 254; } // ako se pritisne tipka C, tada vrijednost R -254
ako je (digitalno čitanje (C) == HIGH) {BG - = 254; } // ako se pritisne tipka C, tada je vrijednost G -254
ako je (digitalno čitanje (C) == HIGH) {BB - = 254; } // ako se pritisne tipka C, tada je vrijednost B -254
ako je (digitalno čitanje (RS) == HIGH) {BR = slučajno (0, 254); } // ako se pritisne RS tipka, tada je vrijednost R od 0 do 254
ako je (digitalno čitanje (RS) == HIGH) {BG = slučajno (0, 254); } // ako se pritisne RS tipka, tada je vrijednost G od 0 do 254
ako je (digitalno čitanje (RS) == HIGH) {BB = slučajno (0, 254); } // ako se pritisne RS tipka, tada je vrijednost B od 0 do 254
BR = ograničenje (BR, 0, 254); // BR = (vrijednost, od, do)
analogWrite (R, BR); // pomoću PWM modulacije podešavamo svjetlinu od 0 do 254
BG = ograničenje (BG, 0, 254); // BG = (vrijednost, od, do)
analogWrite (G, BG); // pomoću PWM modulacije podešavamo svjetlinu od 0 do 254
BB = ograničenje (BB, 0, 254); // BB = (vrijednost, od, do)
analogWrite (B, BB); // pomoću PWM modulacije podešavamo svjetlinu od 0 do 254
}