» electronică » Arduino »Paleta de culori cu funcție aleatorie Arduino

Paleta de culori aleatoare Arduino


Folosind aceasta de casă puteți face orice culoare în sistemul RGB cu cinci butoane

1 - adăugați roșu
2 - Adăugați Green
3 - Adăugați albastru
4 - Aleator (culoare aleatoare)
5 - Resetare

De ce avem nevoie:
1. Arduino (în cazul meu arduino mega)
2. Comitetul de dezvoltare
3. Tip jumper: tată mama și tata tată
4. LCD 1602 (2 linii de 16 caractere)
5. Butoane 5 bucăți
6. LED SMD RGB
7. Rezistență pentru 10 Kom 5 bucăți


Pentru început, conectăm LED-ul RGB (în absența unui rezistor, punem o rezistență la 220 ohmi).
În continuare, punem 5 butoane: un picior de buton la știftul de 5V, iar celălalt printr-o rezistență de 10K la pământ și același picior spre ardino.
Conectăm afișajul LCD 1602 la SDA și SCL (I2C).
Toate acestea sunt conectate la contacte arduino (GND, 5V, SDA SCL, 2, 3, 4, 9, 10, 11, 12, 13) ca în imagine.
în față
în spatele


Ei bine, de fapt schița în sine



#include "LiquidCrustal_I2C.h" // conectați biblioteca pentru a lucra cu afișajul prin I2C
#include "Wire.h" // Conectați biblioteca pentru a lucra cu I2C
int R = 9;
int G = 10;
int B = 11;
// culori RGB
int BR = 0;
int BG = 0;
int BB = 0;
// variabile pentru a salva valoarea
int KR = 2; // buton roșu
int KG = 3; // butonul este verde
int KB = 4; // buton albastru
int C = 13; // butonul de resetare
int RS = 12; // butonul la întâmplare
LiquidCrystal_I2C lcd (0x27.16.2); // Conectați afișajul (adresă, coloane, linii)
void setup () {// executați o dată
    pinMode (R, OUTPUT);
    pinMode (G, OUTPUT);
    pinMode (B, OUTPUT);
// conectați LED-ul RGB
    }
void loop () {// repetați la nesfârșit
    întârziere (10); // întârziere 10 ms
        lcd.init (); // definiți afișajul
lcd.backlight (); // porniți lumina de fundal a afișajului
    lcd.clear (); // ștergeți afișajul
lcd.setCursor (5, 0); // puneți cursorul pe a 6-a coloană și pe 0 rând
lcd.print ("Culoare"); // culoare de scriere
lcd.setCursor (0, 1);
lcd.print ("R"); // scrie R
lcd.setCursor (6, 1);
lcd.print ("G"); / scrie G
lcd.setCursor (12, 1);
lcd.print ("B"); scrie B
lcd.print (BB); // imprimați valoarea albastră
    lcd.setCursor (2, 1);
lcd.print (BR); // imprimați valoarea roșu
    lcd.setCursor (8, 1);
lcd.print (BG); // imprimați valoarea verde
    lcd.setCursor (13, 1);
    if (digitalRead (KR) == HIGH) {BR + = 15; } // dacă este apăsat butonul R, atunci valoarea R +15
    if (digitalRead (KG) == HIGH) {BG + = 15; } // dacă este apăsat butonul G, atunci valoarea lui G +15
    if (digitalRead (KB) == HIGH) {BB + = 15; } // dacă este apăsat butonul B, atunci valoarea B +15
     if (digitalRead (C) == HIGH) {BR - = 254; } // dacă este apăsat butonul C, atunci valoarea lui R -254
    if (digitalRead (C) == HIGH) {BG - = 254; } // dacă este apăsat butonul C, atunci valoarea lui G -254
    if (digitalRead (C) == HIGH) {BB - = 254; } // dacă este apăsat butonul C, atunci valoarea B -254
    if (digitalRead (RS) == HIGH) {BR = aleator (0, 254); } // dacă este apăsat butonul RS, atunci valoarea lui R este de la 0 la 254
     if (digitalRead (RS) == HIGH) {BG = aleator (0, 254); } // dacă este apăsat butonul RS, atunci valoarea lui G este de la 0 la 254
     if (digitalRead (RS) == HIGH) {BB = aleator (0, 254); } // dacă este apăsat butonul RS, atunci valoarea lui B este de la 0 la 254
    
  BR = constrângere (BR, 0, 254); // BR = (valoare, de la, la)
    analogWrite (R, BR); // folosind modularea PWM reglăm luminozitatea de la 0 la 254
      

  BG = constrângere (BG, 0, 254); // BG = (valoare, de la, la)
    analogWrite (G, BG); // folosind modularea PWM reglăm luminozitatea de la 0 la 254
     
    
  BB = constrain (BB, 0, 254); // BB = (valoare, de la, la)
    analogWrite (B, BB); // folosind modularea PWM reglăm luminozitatea de la 0 la 254
     
    }


Descărcați schița: sketch_feb07a2_ino.zip [587 b] (descărcări: 71)

Asta ar trebui să fie!




Scrie în comentarii că nu este clar că voi răspunde la toate întrebările
interviu
Total de alegători: 15
10
5
5

Adaugă un comentariu

    • zâmbetzâmbetexaxabinedontknowYahooNea
      șefzgârieturăpăcălidada-daagresivsecret
      scuzedansdance2dance3iertareajutorbăuturi
      oprireprietenibungoodgoodfluiersincopălimbă
      fumaplauzeCrayvestimbatjocoritorDon-t_mentiondescărcare
      căldurămânioslaugh1mdaîntâlniremoskingnegativ
      not_ifloricele de porumbpedepsicititsperiasperiecăutare
      batjocurăthank_youacestto_clueUmnikacutconveni
      răubeeeblack_eyeblum3roșilăudăroșenieplictiseală
      cenzuratpleasantrysecret2amenințavictorieyusun_bespectacled
      ShokRespektlolprevedbun venitKrutoyya_za
      ya_dobryiajutorne_huliganne_othodifludinterdicțieînchide
3 comentarii
Bine, bine.
Autorul
Această paletă este necesară pentru a selecta o nuanță specifică pentru proiecte iluminate.
Ce este și pentru ce?

Vă sfătuim să citiți:

Înmânează-l pentru smartphone ...