Använda detta hemlagad du kan skapa valfri färg i RGB-systemet med fem knappar
1 - lägg till rött
2 - Lägg till grönt
3 - Lägg till blå
4 - Slumpmässigt (slumpmässig färg)
5 - Återställ
Vad vi behöver:
1. Arduino (i mitt fall arduino mega)
2. Utvecklingsstyrelse
3. Jumper typ: pappa mamma och pappa pappa
4. LCD 1602 (2 rader med 16 tecken)
5. Knappar 5 delar
6. SMD RGB LED
7. Motstånd för 10 Kom 5 delar
För att starta, ansluter vi RGB-LED (i frånvaro av ett motstånd, sätta ett motstånd på 220 ohm).
Därefter satte vi 5 knappar: ett knappben till 5V-stiftet, och det andra genom ett 10K-motstånd mot marken och samma ben till arduino.
Vi ansluter LCD 1602-skärmen till SDA och SCL (I2C).
Allt detta är anslutet till arduino-kontakter (GND, 5V, SDA SCL, 2, 3, 4, 9, 10, 11, 12, 13) som på bilden.
Tja, faktiskt själva skissen
#include "LiquidCrustal_I2C.h" // anslut biblioteket så att det fungerar med skärmen via I2C
#include "Wire.h" // Anslut biblioteket så att det fungerar med I2C
int R = 9;
int G = 10;
int B = 11;
// RGB-färger
int BR = 0;
int BG = 0;
int BB = 0;
// variabler för att spara värdet
int KR = 2; // röd knapp
int KG = 3; // -knappen är grön
int KB = 4; // blå knapp
int C = 13; // återställningsknapp
int RS = 12; // knapp slumpmässigt
LiquidCrystal_I2C lcd (0x27.16.2); // Anslut skärmen (adress, kolumner, rader)
void setup () {// kör en gång
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
// anslut RGB-LED
}
void loop () {// upprepa oändligt
fördröjning (10); // fördröjning 10 ms
lcd.init (); // definiera displayen
lcd.backlight (); // slå på skärmens bakgrundsbelysning
lcd.clear (); // rensa skärmen
lcd.setCursor (5, 0); // placera markören på den sjätte kolumnen och den 0: e raden
lcd.print ("Färg"); // skriva färg
lcd.setCursor (0, 1);
lcd.print ("R"); // skriv R
lcd.setCursor (6, 1);
lcd.print ("G"); / skriv G
lcd.setCursor (12, 1);
lcd.print ("B"); skriva B
lcd.print (BB); // skriv ut det blå värdet
lcd.setCursor (2, 1);
lcd.print (BR); // skriv ut värdet på rött
lcd.setCursor (8, 1);
lcd.print (BG); // skriv ut det gröna värdet
lcd.setCursor (13, 1);
if (digitalRead (KR) == HÖG) {BR + = 15; } // om du trycker på R-knappen, är värdet på R +15
if (digitalRead (KG) == HÖG) {BG + = 15; } // om du trycker på G-knappen, är värdet på G +15
if (digitalRead (KB) == HÖG) {BB + = 15; } // om knappen B trycks ned, sedan värdet B +15
if (digitalRead (C) == HÖG) {BR - = 254; } // om du trycker på C-knappen, är värdet R -254
if (digitalRead (C) == HÖG) {BG - = 254; } // om du trycker på C-knappen, är värdet på G -254
if (digitalRead (C) == HÖG) {BB - = 254; } // om du trycker på C-knappen, är värdet B -254
if (digitalRead (RS) == HÖG) {BR = slumpmässigt (0, 254); } // om du trycker på RS-knappen är värdet på R från 0 till 254
if (digitalRead (RS) == HÖG) {BG = slumpmässigt (0, 254); } // om du trycker på RS-knappen är värdet på G från 0 till 254
if (digitalRead (RS) == HÖG) {BB = slumpmässigt (0, 254); } // om du trycker på RS-knappen är värdet på B från 0 till 254
BR = begränsning (BR, 0, 254); // BR = (värde, från, till)
analogWrite (R, BR); // med PWM-modulering justerar vi ljusstyrkan från 0 till 254
BG = begränsning (BG, 0, 254); // BG = (värde, från, till)
analogWrite (G, BG); // med PWM-modulering justerar vi ljusstyrkan från 0 till 254
BB = begränsning (BB, 0, 254); // BB = (värde, från, till)
analogWrite (B, BB); // med PWM-modulering justerar vi ljusstyrkan från 0 till 254
}
Ladda ner skiss:
Det är vad det ska vara!
Skriv i kommentarerna att det inte är klart att jag kommer att besvara alla frågor
#include "LiquidCrustal_I2C.h" // anslut biblioteket så att det fungerar med skärmen via I2C
#include "Wire.h" // Anslut biblioteket så att det fungerar med I2C
int R = 9;
int G = 10;
int B = 11;
// RGB-färger
int BR = 0;
int BG = 0;
int BB = 0;
// variabler för att spara värdet
int KR = 2; // röd knapp
int KG = 3; // -knappen är grön
int KB = 4; // blå knapp
int C = 13; // återställningsknapp
int RS = 12; // knapp slumpmässigt
LiquidCrystal_I2C lcd (0x27.16.2); // Anslut skärmen (adress, kolumner, rader)
void setup () {// kör en gång
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
// anslut RGB-LED
}
void loop () {// upprepa oändligt
fördröjning (10); // fördröjning 10 ms
lcd.init (); // definiera displayen
lcd.backlight (); // slå på skärmens bakgrundsbelysning
lcd.clear (); // rensa skärmen
lcd.setCursor (5, 0); // placera markören på den sjätte kolumnen och den 0: e raden
lcd.print ("Färg"); // skriva färg
lcd.setCursor (0, 1);
lcd.print ("R"); // skriv R
lcd.setCursor (6, 1);
lcd.print ("G"); / skriv G
lcd.setCursor (12, 1);
lcd.print ("B"); skriva B
lcd.print (BB); // skriv ut det blå värdet
lcd.setCursor (2, 1);
lcd.print (BR); // skriv ut värdet på rött
lcd.setCursor (8, 1);
lcd.print (BG); // skriv ut det gröna värdet
lcd.setCursor (13, 1);
if (digitalRead (KR) == HÖG) {BR + = 15; } // om du trycker på R-knappen, är värdet på R +15
if (digitalRead (KG) == HÖG) {BG + = 15; } // om du trycker på G-knappen, är värdet på G +15
if (digitalRead (KB) == HÖG) {BB + = 15; } // om knappen B trycks ned, sedan värdet B +15
if (digitalRead (C) == HÖG) {BR - = 254; } // om du trycker på C-knappen, är värdet R -254
if (digitalRead (C) == HÖG) {BG - = 254; } // om du trycker på C-knappen, är värdet på G -254
if (digitalRead (C) == HÖG) {BB - = 254; } // om du trycker på C-knappen, är värdet B -254
if (digitalRead (RS) == HÖG) {BR = slumpmässigt (0, 254); } // om du trycker på RS-knappen är värdet på R från 0 till 254
if (digitalRead (RS) == HÖG) {BG = slumpmässigt (0, 254); } // om du trycker på RS-knappen är värdet på G från 0 till 254
if (digitalRead (RS) == HÖG) {BB = slumpmässigt (0, 254); } // om du trycker på RS-knappen är värdet på B från 0 till 254
BR = begränsning (BR, 0, 254); // BR = (värde, från, till)
analogWrite (R, BR); // med PWM-modulering justerar vi ljusstyrkan från 0 till 254
BG = begränsning (BG, 0, 254); // BG = (värde, från, till)
analogWrite (G, BG); // med PWM-modulering justerar vi ljusstyrkan från 0 till 254
BB = begränsning (BB, 0, 254); // BB = (värde, från, till)
analogWrite (B, BB); // med PWM-modulering justerar vi ljusstyrkan från 0 till 254
}