Bruker dette hjemmelaget Du kan lage hvilken som helst farge i RGB-systemet med fem knapper
1 - legg til rødt
2 - Legg til grønt
3 - Legg til blått
4 - Tilfeldig (tilfeldig farge)
5 - Tilbakestill
Hva vi trenger:
1. Arduino (i mitt tilfelle arduino mega)
2. Utviklingsstyre
3. Jumper type: pappa mamma og pappa pappa
4. LCD 1602 (2 linjer med 16 tegn)
5. Knapper 5 stk
6. SMD RGB LED
7. Motstand for 10 Kom 5 stk
For å starte kobler vi RGB LED (i mangel av en motstand, sett en motstand på 220 ohm).
Deretter satte vi 5 knapper: det ene knappbenet til 5V-pinnen, og det andre gjennom en 10K-motstand til bakken og det samme benet til arduino.
Vi kobler LCD 1602-skjermen til SDA og SCL (I2C).
Alt dette er koblet til arduino-kontakter (GND, 5V, SDA SCL, 2, 3, 4, 9, 10, 11, 12, 13) som på bildet.
Vel, faktisk selve skissen
#include "LiquidCrustal_I2C.h" // koble biblioteket til å fungere med skjermen via I2C
#include "Wire.h" // Koble biblioteket til å jobbe med I2C
int R = 9;
int G = 10;
int B = 11;
// RGB-farger
int BR = 0;
int BG = 0;
int BB = 0;
// variabler for å lagre verdien
int KR = 2; // rød knapp
int KG = 3; // -knappen er grønn
int KB = 4; // blå knapp
int C = 13; // tilbakestillingsknapp
int RS = 12; // knapp tilfeldig
LiquidCrystal_I2C lcd (0x27.16.2); // Koble skjermen (adresse, kolonner, linjer)
void setup () {// kjør en gang
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
// koble RGB LED
}
void loop () {// gjenta uendelig
forsinkelse (10); // forsinkelse 10 ms
lcd.init (); // definere displayet
lcd.backlight (); // slå på bakgrunnsbelysningen på skjermen
lcd.clear (); // tøm skjermen
lcd.set Markør (5, 0); // sett markøren på sjette kolonne og 0. rad
lcd.print ("Farge"); // skriv farge
lcd.set Markør (0, 1);
lcd.print ("R"); // skriv R
lcd.set markør (6, 1);
lcd.print ("G"); / skriv G
lcd.set markør (12, 1);
lcd.print ("B"); skriv B
lcd.print (BB); // skriv den blå verdien
lcd.set markør (2, 1);
lcd.print (BR); // skriv ut verdien av rødt
lcd.set markør (8, 1);
lcd.print (BG); // skriv ut den grønne verdien
lcd.set markør (13, 1);
if (digitalRead (KR) == HIGH) {BR + = 15; } // hvis du trykker på R-knappen, er verdien R +15
if (digitalRead (KG) == HIGH) {BG + = 15; } // hvis du trykker på G-knappen, er verdien til G +15
if (digitalRead (KB) == HØY) {BB + = 15; } // hvis du trykker på knapp B, deretter verdien B +15
if (digitalRead (C) == HIGH) {BR - = 254; } // hvis du trykker på C-knappen, er verdien R -254
if (digitalRead (C) == HIGH) {BG - = 254; } // Hvis du trykker på C-knappen, er verdien G -254
if (digitalRead (C) == HØY) {BB - = 254; } // Hvis du trykker på C-knappen, er verdien B -254
if (digitalRead (RS) == HØY) {BR = tilfeldig (0, 254); } // Hvis du trykker på RS-knappen, er verdien R fra 0 til 254
if (digitalRead (RS) == HØY) {BG = tilfeldig (0, 254); } // Hvis du trykker på RS-knappen, er verdien til G fra 0 til 254
if (digitalRead (RS) == HØY) {BB = tilfeldig (0, 254); } // Hvis du trykker på RS-knappen, er verdien på B fra 0 til 254
BR = begrensning (BR, 0, 254); // BR = (verdi, fra, til)
analogWrite (R, BR); // ved bruk av PWM-modulering justerer vi lysstyrken fra 0 til 254
BG = begrensning (BG, 0, 254); // BG = (verdi, fra, til)
analogWrite (G, BG); // ved bruk av PWM-modulering justerer vi lysstyrken fra 0 til 254
BB = begrensning (BB, 0, 254); // BB = (verdi, fra, til)
analogWrite (B, BB); // ved bruk av PWM-modulering justerer vi lysstyrken fra 0 til 254
}
Last ned skisse:
Det er hva det skal være!
Skriv i kommentarene at det ikke er klart at jeg vil svare på alle spørsmål
#include "LiquidCrustal_I2C.h" // koble biblioteket til å fungere med skjermen via I2C
#include "Wire.h" // Koble biblioteket til å jobbe med I2C
int R = 9;
int G = 10;
int B = 11;
// RGB-farger
int BR = 0;
int BG = 0;
int BB = 0;
// variabler for å lagre verdien
int KR = 2; // rød knapp
int KG = 3; // -knappen er grønn
int KB = 4; // blå knapp
int C = 13; // tilbakestillingsknapp
int RS = 12; // knapp tilfeldig
LiquidCrystal_I2C lcd (0x27.16.2); // Koble skjermen (adresse, kolonner, linjer)
void setup () {// kjør en gang
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
// koble RGB LED
}
void loop () {// gjenta uendelig
forsinkelse (10); // forsinkelse 10 ms
lcd.init (); // definere displayet
lcd.backlight (); // slå på bakgrunnsbelysningen på skjermen
lcd.clear (); // tøm skjermen
lcd.set Markør (5, 0); // sett markøren på sjette kolonne og 0. rad
lcd.print ("Farge"); // skriv farge
lcd.set Markør (0, 1);
lcd.print ("R"); // skriv R
lcd.set markør (6, 1);
lcd.print ("G"); / skriv G
lcd.set markør (12, 1);
lcd.print ("B"); skriv B
lcd.print (BB); // skriv den blå verdien
lcd.set markør (2, 1);
lcd.print (BR); // skriv ut verdien av rødt
lcd.set markør (8, 1);
lcd.print (BG); // skriv ut den grønne verdien
lcd.set markør (13, 1);
if (digitalRead (KR) == HIGH) {BR + = 15; } // hvis du trykker på R-knappen, er verdien R +15
if (digitalRead (KG) == HIGH) {BG + = 15; } // hvis du trykker på G-knappen, er verdien til G +15
if (digitalRead (KB) == HØY) {BB + = 15; } // hvis du trykker på knapp B, deretter verdien B +15
if (digitalRead (C) == HIGH) {BR - = 254; } // hvis du trykker på C-knappen, er verdien R -254
if (digitalRead (C) == HIGH) {BG - = 254; } // Hvis du trykker på C-knappen, er verdien G -254
if (digitalRead (C) == HØY) {BB - = 254; } // Hvis du trykker på C-knappen, er verdien B -254
if (digitalRead (RS) == HØY) {BR = tilfeldig (0, 254); } // Hvis du trykker på RS-knappen, er verdien R fra 0 til 254
if (digitalRead (RS) == HØY) {BG = tilfeldig (0, 254); } // Hvis du trykker på RS-knappen, er verdien til G fra 0 til 254
if (digitalRead (RS) == HØY) {BB = tilfeldig (0, 254); } // Hvis du trykker på RS-knappen, er verdien på B fra 0 til 254
BR = begrensning (BR, 0, 254); // BR = (verdi, fra, til)
analogWrite (R, BR); // ved bruk av PWM-modulering justerer vi lysstyrken fra 0 til 254
BG = begrensning (BG, 0, 254); // BG = (verdi, fra, til)
analogWrite (G, BG); // ved bruk av PWM-modulering justerer vi lysstyrken fra 0 til 254
BB = begrensning (BB, 0, 254); // BB = (verdi, fra, til)
analogWrite (B, BB); // ved bruk av PWM-modulering justerer vi lysstyrken fra 0 til 254
}