Izmantojot šo mājās gatavots jūs varat padarīt jebkuru krāsu RGB sistēmā ar piecām pogām
1 - pievienojiet sarkanu
2 - pievienojiet zaļo krāsu
3 - pievienojiet zilu
4 - nejaušs (nejauša krāsa)
5 - atiestatīt
Kas mums nepieciešams:
1. Arduino (manā gadījumā arduino mega)
2. Attīstības padome
3. Džempera tips: tēta mamma un tēta tētis
4. LCD 1602 (2 rindiņas ar 16 rakstzīmēm)
5. Pogas 5 gab
6. SMD RGB gaismas diode
7. Rezistors 10 Kom 5 gabaliem
Lai sāktu, mēs savienojam RGB gaismas diodi (ja nav rezistora, ielieciet rezistoru pie 220 omi).
Tālāk mēs ieliekam 5 pogas: vienas pogas kāju pie 5 V tapas, bet otru caur 10K rezistoru līdz zemei un to pašu kāju arduino.
Mēs savienojam LCD 1602 displeju ar SDA un SCL (I2C).
Tas viss ir savienots arduino kontaktiem (GND, 5V, SDA SCL, 2, 3, 4, 9, 10, 11, 12, 13), kā parādīts attēlā.
Nu, faktiski pati skice
#include "LiquidCrustal_I2C.h" // pievienojiet bibliotēku darbam ar displeju, izmantojot I2C
#include "Wire.h" // Pievienojiet bibliotēku darbam ar I2C
int R = 9;
int G = 10;
int B = 11;
// RGB krāsas
int BR = 0;
int BG = 0;
int BB = 0;
// mainīgie lielumi vērtības saglabāšanai
int KR = 2; // sarkanā poga
int KG = 3; // poga ir zaļa
int KB = 4; // zilā poga
int C = 13; // atiestatīšanas poga
int RS = 12; // poga izlases veidā
LiquidCrystal_I2C LCD (0x27.16.2); // Savienojiet displeju (adrese, kolonnas, līnijas)
void setup () {// palaist vienreiz
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
// pievienojiet RGB gaismas diodi
}
void loop () {// atkārtot bezgalīgi
kavēšanās (10); // kavēšanās 10 ms
lcd.init (); // definējiet displeju
LCD displejs (); // ieslēdziet displeja fona apgaismojumu
lcd.clear (); // notīriet displeju
lcd.setCursor (5, 0); // novietojiet kursoru uz 6. kolonnu un 0. rindu
lcd.print ("Krāsa"); // rakstīt krāsu
lcd.setCursor (0, 1);
lcd.print ("R"); // rakstiet R
lcd.setCursor (6, 1);
lcd.print ("G"); / rakstiet G
lcd.setCursor (12, 1);
lcd.print ("B"); rakstīt B
lcd.print (BB); // izdrukājiet zilo vērtību
lcd.setCursor (2, 1);
lcd.print (BR); // izdrukājiet sarkanās krāsas vērtību
lcd.setCursor (8, 1);
lcd.print (BG); // izdrukājiet zaļo vērtību
lcd.setCursor (13, 1);
if (digitalRead (KR) == AUGSTS) {BR + = 15; } // ja tiek nospiesta poga R, tad R +15 vērtība
if (digitalRead (KG) == AUGSTS) {BG + = 15; } // ja tiek nospiesta poga G, tad G +15 vērtība
if (digitalRead (KB) == AUGSTS) {BB + = 15; } // ja tiek nospiesta poga B, tad vērtība B +15
if (digitalRead (C) == AUGSTS) {BR - = 254; } // ja tiek nospiesta poga C, tad R -254 vērtība
if (digitalRead (C) == AUGSTS) {BG - = 254; } // ja tiek nospiesta poga C, tad G-254 vērtība
if (digitalRead (C) == AUGSTS) {BB - = 254; } // ja tiek nospiesta poga C, tad vērtība B -254
if (digitalRead (RS) == HIGH) {BR = nejaušs (0, 254); } // ja tiek nospiesta RS poga, tad R vērtība ir no 0 līdz 254
if (digitalRead (RS) == AUGSTS) {BG = nejaušs (0, 254); } // ja tiek nospiesta poga RS, tad G vērtība ir no 0 līdz 254
if (digitalRead (RS) == HIGH) {BB = nejaušs (0, 254); } // ja tiek nospiesta poga RS, tad B vērtība ir no 0 līdz 254
BR = ierobežojums (BR, 0, 254); // BR = (vērtība, no, līdz)
analogWrite (R, BR); // izmantojot PWM modulāciju, mēs pielāgojam spilgtumu no 0 līdz 254
BG = ierobežojums (BG, 0, 254); // BG = (vērtība, no, līdz)
analogWrite (G, BG); // izmantojot PWM modulāciju, mēs pielāgojam spilgtumu no 0 līdz 254
BB = ierobežojums (BB, 0, 254); // BB = (vērtība, no, līdz)
analogWrite (B, BB); // izmantojot PWM modulāciju, mēs pielāgojam spilgtumu no 0 līdz 254
}
Lejupielādēt skici:
Tā tam vajadzētu būt!
Komentāros rakstiet, ka nav skaidrs, vai es atbildēšu uz visiem jautājumiem
#include "LiquidCrustal_I2C.h" // pievienojiet bibliotēku darbam ar displeju, izmantojot I2C
#include "Wire.h" // Pievienojiet bibliotēku darbam ar I2C
int R = 9;
int G = 10;
int B = 11;
// RGB krāsas
int BR = 0;
int BG = 0;
int BB = 0;
// mainīgie lielumi vērtības saglabāšanai
int KR = 2; // sarkanā poga
int KG = 3; // poga ir zaļa
int KB = 4; // zilā poga
int C = 13; // atiestatīšanas poga
int RS = 12; // poga izlases veidā
LiquidCrystal_I2C LCD (0x27.16.2); // Savienojiet displeju (adrese, kolonnas, līnijas)
void setup () {// palaist vienreiz
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
// pievienojiet RGB gaismas diodi
}
void loop () {// atkārtot bezgalīgi
kavēšanās (10); // kavēšanās 10 ms
lcd.init (); // definējiet displeju
LCD displejs (); // ieslēdziet displeja fona apgaismojumu
lcd.clear (); // notīriet displeju
lcd.setCursor (5, 0); // novietojiet kursoru uz 6. kolonnu un 0. rindu
lcd.print ("Krāsa"); // rakstīt krāsu
lcd.setCursor (0, 1);
lcd.print ("R"); // rakstiet R
lcd.setCursor (6, 1);
lcd.print ("G"); / rakstiet G
lcd.setCursor (12, 1);
lcd.print ("B"); rakstīt B
lcd.print (BB); // izdrukājiet zilo vērtību
lcd.setCursor (2, 1);
lcd.print (BR); // izdrukājiet sarkanās krāsas vērtību
lcd.setCursor (8, 1);
lcd.print (BG); // izdrukājiet zaļo vērtību
lcd.setCursor (13, 1);
if (digitalRead (KR) == AUGSTS) {BR + = 15; } // ja tiek nospiesta poga R, tad R +15 vērtība
if (digitalRead (KG) == AUGSTS) {BG + = 15; } // ja tiek nospiesta poga G, tad G +15 vērtība
if (digitalRead (KB) == AUGSTS) {BB + = 15; } // ja tiek nospiesta poga B, tad vērtība B +15
if (digitalRead (C) == AUGSTS) {BR - = 254; } // ja tiek nospiesta poga C, tad R -254 vērtība
if (digitalRead (C) == AUGSTS) {BG - = 254; } // ja tiek nospiesta poga C, tad G-254 vērtība
if (digitalRead (C) == AUGSTS) {BB - = 254; } // ja tiek nospiesta poga C, tad vērtība B -254
if (digitalRead (RS) == HIGH) {BR = nejaušs (0, 254); } // ja tiek nospiesta RS poga, tad R vērtība ir no 0 līdz 254
if (digitalRead (RS) == AUGSTS) {BG = nejaušs (0, 254); } // ja tiek nospiesta poga RS, tad G vērtība ir no 0 līdz 254
if (digitalRead (RS) == HIGH) {BB = nejaušs (0, 254); } // ja tiek nospiesta poga RS, tad B vērtība ir no 0 līdz 254
BR = ierobežojums (BR, 0, 254); // BR = (vērtība, no, līdz)
analogWrite (R, BR); // izmantojot PWM modulāciju, mēs pielāgojam spilgtumu no 0 līdz 254
BG = ierobežojums (BG, 0, 254); // BG = (vērtība, no, līdz)
analogWrite (G, BG); // izmantojot PWM modulāciju, mēs pielāgojam spilgtumu no 0 līdz 254
BB = ierobežojums (BB, 0, 254); // BB = (vērtība, no, līdz)
analogWrite (B, BB); // izmantojot PWM modulāciju, mēs pielāgojam spilgtumu no 0 līdz 254
}