Brug af dette hjemmelavet du kan fremstille enhver farve i RGB-systemet med fem knapper
1 - tilføj rødt
2 - Tilføj grønt
3 - Tilføj blå
4 - Tilfældig (tilfældig farve)
5 - Nulstil
Hvad vi har brug for:
1. Arduino (i mit tilfælde arduino mega)
2. Udviklingsbestyrelse
3. Jumper type: far mor og far far
4. LCD 1602 (2 linjer på 16 tegn)
5. Knapper 5 stk
6. SMD RGB LED
7. Modstand til 10 Kom 5 stykker
For at starte forbinder vi RGB LED (i mangel af en modstand, sæt en modstand på 220 ohm).
Dernæst satte vi 5 knapper: et knapben til pin 5V og det andet gennem en 10K modstand til jorden og det samme ben til arduino.
Vi forbinder LCD 1602-displayet til SDA og SCL (I2C).
Alt dette er forbundet med arduino-kontakter (GND, 5V, SDA SCL, 2, 3, 4, 9, 10, 11, 12, 13) som på billedet.
Nå, faktisk selve skitsen
#include "LiquidCrustal_I2C.h" // forbinde biblioteket til at arbejde med skærmen via I2C
#include "Wire.h" // Forbind biblioteket til at arbejde med I2C
int R = 9;
int G = 10;
int B = 11;
// RGB-farver
int BR = 0;
int BG = 0;
int BB = 0;
// variabler for at gemme værdien
int KR = 2; // rød knap
int KG = 3; // -knappen er grøn
int KB = 4; // blå knap
int C = 13; // reset-knap
int RS = 12; // knap tilfældigt
LiquidCrystal_I2C lcd (0x27.16.2); // Forbind skærmen (adresse, kolonner, linjer)
void setup () {// kør en gang
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
// Tilslut RGB LED
}
void loop () {// gentag uendeligt
forsinkelse (10); // forsinkelse 10 ms
lcd.init (); // definere displayet
lcd.backlight (); // tænd for displayets baggrundsbelysning
lcd.clear (); // rydde skærmen
lcd.set markør (5, 0); // sæt markøren på 6. kolonne og 0. række
lcd.print ("Farve"); // skriv farve
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); // udskriv den blå værdi
lcd.set markør (2, 1);
lcd.print (BR); // udskriv værdien på rødt
lcd.set markør (8, 1);
lcd.print (BG); // udskriv den grønne værdi
lcd.set markør (13, 1);
if (digitalRead (KR) == HØJ) {BR + = 15; } // hvis der trykkes på R-knappen, er værdien på R +15
if (digitalRead (KG) == HØJ) {BG + = 15; } // Hvis der trykkes på G-knappen, er værdien på G +15
if (digitalRead (KB) == HØJ) {BB + = 15; } // hvis der trykkes på knap B, så er værdien B +15
if (digitalRead (C) == HØJ) {BR - = 254; } // hvis der trykkes på C-knappen, er værdien på R -254
if (digitalRead (C) == HØJ) {BG - = 254; } // hvis der trykkes på C-knappen, er værdien på G -254
if (digitalRead (C) == HØJ) {BB - = 254; } // Hvis der trykkes på C-knappen, er værdien B -254
if (digitalRead (RS) == HØJ) {BR = tilfældig (0, 254); } // Hvis der trykkes på RS-knappen, er værdien af R fra 0 til 254
if (digitalRead (RS) == HØJ) {BG = tilfældig (0, 254); } // Hvis der trykkes på RS-knappen, er G-værdien fra 0 til 254
if (digitalRead (RS) == HØJ) {BB = tilfældig (0, 254); } // Hvis der trykkes på RS-knappen, er værdien af B fra 0 til 254
BR = begrænsning (BR, 0, 254); // BR = (værdi, fra til)
analogWrite (R, BR); // ved hjælp af PWM-modulation justerer vi lysstyrken fra 0 til 254
BG = begrænsning (BG, 0, 254); // BG = (værdi, fra, til)
analogWrite (G, BG); // ved hjælp af PWM-modulation justerer vi lysstyrken fra 0 til 254
BB = begrænsning (BB, 0, 254); // BB = (værdi, fra til)
analogWrite (B, BB); // ved hjælp af PWM-modulation justerer vi lysstyrken fra 0 til 254
}
Download skitse:
Det skal det være!
Skriv i kommentarerne, at det ikke er klart, at jeg vil besvare alle spørgsmål
#include "LiquidCrustal_I2C.h" // forbinde biblioteket til at arbejde med skærmen via I2C
#include "Wire.h" // Forbind biblioteket til at arbejde med I2C
int R = 9;
int G = 10;
int B = 11;
// RGB-farver
int BR = 0;
int BG = 0;
int BB = 0;
// variabler for at gemme værdien
int KR = 2; // rød knap
int KG = 3; // -knappen er grøn
int KB = 4; // blå knap
int C = 13; // reset-knap
int RS = 12; // knap tilfældigt
LiquidCrystal_I2C lcd (0x27.16.2); // Forbind skærmen (adresse, kolonner, linjer)
void setup () {// kør en gang
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
// Tilslut RGB LED
}
void loop () {// gentag uendeligt
forsinkelse (10); // forsinkelse 10 ms
lcd.init (); // definere displayet
lcd.backlight (); // tænd for displayets baggrundsbelysning
lcd.clear (); // rydde skærmen
lcd.set markør (5, 0); // sæt markøren på 6. kolonne og 0. række
lcd.print ("Farve"); // skriv farve
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); // udskriv den blå værdi
lcd.set markør (2, 1);
lcd.print (BR); // udskriv værdien på rødt
lcd.set markør (8, 1);
lcd.print (BG); // udskriv den grønne værdi
lcd.set markør (13, 1);
if (digitalRead (KR) == HØJ) {BR + = 15; } // hvis der trykkes på R-knappen, er værdien på R +15
if (digitalRead (KG) == HØJ) {BG + = 15; } // Hvis der trykkes på G-knappen, er værdien på G +15
if (digitalRead (KB) == HØJ) {BB + = 15; } // hvis der trykkes på knap B, så er værdien B +15
if (digitalRead (C) == HØJ) {BR - = 254; } // hvis der trykkes på C-knappen, er værdien på R -254
if (digitalRead (C) == HØJ) {BG - = 254; } // hvis der trykkes på C-knappen, er værdien på G -254
if (digitalRead (C) == HØJ) {BB - = 254; } // Hvis der trykkes på C-knappen, er værdien B -254
if (digitalRead (RS) == HØJ) {BR = tilfældig (0, 254); } // Hvis der trykkes på RS-knappen, er værdien af R fra 0 til 254
if (digitalRead (RS) == HØJ) {BG = tilfældig (0, 254); } // Hvis der trykkes på RS-knappen, er G-værdien fra 0 til 254
if (digitalRead (RS) == HØJ) {BB = tilfældig (0, 254); } // Hvis der trykkes på RS-knappen, er værdien af B fra 0 til 254
BR = begrænsning (BR, 0, 254); // BR = (værdi, fra til)
analogWrite (R, BR); // ved hjælp af PWM-modulation justerer vi lysstyrken fra 0 til 254
BG = begrænsning (BG, 0, 254); // BG = (værdi, fra, til)
analogWrite (G, BG); // ved hjælp af PWM-modulation justerer vi lysstyrken fra 0 til 254
BB = begrænsning (BB, 0, 254); // BB = (værdi, fra til)
analogWrite (B, BB); // ved hjælp af PWM-modulation justerer vi lysstyrken fra 0 til 254
}