» Electronics » Arduino »Kulay ng paleta na may Arduino random na pag-andar

Arduino Random na Palette ng Kulay


Gamit ito gawang bahay maaari kang gumawa ng anumang kulay sa system ng RGB na may limang mga pindutan

1 - magdagdag ng pula
2 - Magdagdag ng Green
3 - Magdagdag ng Blue
4 - Random (random na kulay)
5 - I-reset

Ano ang kailangan namin:
1. Arduino (sa aking kaso arduino mega)
2. Board ng pag-unlad
3. Uri ng jumper: tatay at tatay
4. LCD 1602 (2 linya ng 16 character)
5. Mga pindutan ng 5 piraso
6. SMD RGB LED
7. Resistor para sa 10 Kom 5 piraso


Upang magsimula, ikinonekta namin ang RGB LED (sa kawalan ng isang risistor, maglagay ng isang risistor sa 220 ohms).
Susunod, naglalagay kami ng 5 mga pindutan: isang pindutan ng leg sa 5V pin, at ang isa pa sa pamamagitan ng isang 10K risistor sa lupa at ang parehong binti sa arduino.
Ikinonekta namin ang display ng LCD 1602 sa SDA at SCL (I2C).
Ang lahat ng ito ay konektado sa mga contact arduino (GND, 5V, SDA SCL, 2, 3, 4, 9, 10, 11, 12, 13) tulad ng sa larawan.
Harapan
Sa likuran


Well, talagang ang sketch mismo



#include "LiquidCrustal_I2C.h" // ikonekta ang library upang gumana sa pagpapakita sa pamamagitan ng I2C
#include "Wire.h" // Ikonekta ang library upang gumana sa I2C
int R = 9;
int G = 10;
int B = 11;
// kulay ng RGB
int BR = 0;
int BG = 0;
int BB = 0;
// variable upang mai-save ang halaga
int KR = 2; // pindutan ng pula
int KG = 3; // button ay berde
int KB = 4; // asul na butones
int C = 13; // button na i-reset
int RS = 12; // button na random
LiquidCrystal_I2C lcd (0x27.16.2); // Ikonekta ang display (address, haligi, linya)
walang pag-setup () {// tumakbo nang isang beses
    pinMode (R, OUTPUT);
    pinMode (G, OUTPUT);
    pinMode (B, OUTPUT);
// ikonekta ang RGB LED
    }
walang bisa na loop () {// ulitin nang walang katapusang
    pagkaantala (10); // antala ng 10 ms
        lcd.init (); // tukuyin ang display
lcd.backlight (); // i-on ang backlight ng display
    lcd.clear (); // i-clear ang display
lcd.setCursor (5, 0); // ilagay ang cursor sa ika-6 na haligi at ika-0 na hilera
lcd.print ("Kulay"); // kulay ng pagsulat
lcd.setCursor (0, 1);
lcd.print ("R"); // isulat ang R
lcd.setCursor (6, 1);
lcd.print ("G"); / isulat ang G
lcd.setCursor (12, 1);
lcd.print ("B"); isulat ang B
lcd.print (BB); // i-print ang asul na halaga
    lcd.setCursor (2, 1);
lcd.print (BR); // i-print ang halaga ng pula
    lcd.setCursor (8, 1);
lcd.print (BG); // i-print ang berdeng halaga
    lcd.setCursor (13, 1);
    kung (digitalRead (KR) == HIGH) {BR + = 15; } // kung ang pindutan ng R ay pinindot, pagkatapos ay ang halaga ng R +15
    kung (digitalRead (KG) == HIGH) {BG + = 15; } // kung ang pindutan ng G ay pinindot, pagkatapos ay ang halaga ng G +15
    kung (digitalRead (KB) == HIGH) {BB + = 15; } // kung ang pindutan ng B ay pinindot, pagkatapos ang halaga B +15
     kung (digitalRead (C) == HIGH) {BR - = 254; } // kung ang pindutan ng C ay pinindot, pagkatapos ang halaga ng R -254
    kung (digitalRead (C) == HIGH) {BG - = 254; } // kung ang pindutan ng C ay pinindot, pagkatapos ay ang halaga ng G -254
    kung (digitalRead (C) == HIGH) {BB - = 254; } // kung ang pindutan ng C ay pinindot, pagkatapos ang halaga B -254
    kung (digitalRead (RS) == HIGH) {BR = random (0, 254); } // kung ang pindutan ng RS ay pinindot, kung gayon ang halaga ng R ay mula 0 hanggang 254
     kung (digitalRead (RS) == HIGH) {BG = random (0, 254); } // kung ang pindutan ng RS ay pinindot, kung gayon ang halaga ng G ay mula 0 hanggang 254
     kung (digitalRead (RS) == HIGH) {BB = random (0, 254); } // kung ang pindutan ng RS ay pinindot, kung gayon ang halaga ng B ay mula 0 hanggang 254
    
  BR = pilitin (BR, 0, 254); // BR = (halaga, mula, hanggang)
    analogWrite (R, BR); // gamit ang PWM modulation ay inaayos namin ang ningning mula 0 hanggang 254
      

  BG = pilitin (BG, 0, 254); // BG = (halaga, mula, hanggang)
    analogWrite (G, BG); // gamit ang PWM modulation ay inaayos namin ang ningning mula 0 hanggang 254
     
    
  BB = pilitin (BB, 0, 254); // BB = (halaga, mula, hanggang)
    analogWrite (B, BB); // gamit ang PWM modulation ay inaayos namin ang ningning mula 0 hanggang 254
     
    }


I-download ang sketch: sketch_feb07a2_ino.zip [587 b] (mga pag-download: 71)

Iyon ang dapat!




Isulat sa mga puna na hindi malinaw na sasagutin ko ang lahat ng mga katanungan
Poll
Kabuuang Mga Botante: 15
10
5
5

Magdagdag ng isang puna

    • ngitinakangitixaxaok langhindi alamyahoonea
      bosskumamottangaoooo-ooagresibolihim
      sorrysayawsayaw2sayaw3kapatawarantumulonginumin
      humintomga kaibiganmabutigoodgoodsipolswoondila
      usokpumapalakpakkrayolaipahayagnakakainisdon-t_mentionpag-download
      initnakakainistumawa1mdapagpupulongnakikipag-usapnegatibo
      hindi_ipopcornparusahanbasahintakottakotpaghahanap
      panunuyasalamat_youitoto_clueumniktalamaksumang-ayon
      masamabeeeblack_eyeblum3namulamagyabanginip
      censoredkaaya-ayalihim2nagbabantatagumpayyusun_bespectacled
      shokrespektlolnagustuhanmaligayang pagdatingkrutoyya_za
      ya_dobryikatulongne_huliganne_othodimapusokpagbabawalmalapit
3 komentaryo
Ok, okay lang.
Ang may-akda
Ang palette na ito ay kinakailangan upang pumili ng isang tukoy na lilim para sa mga naiilaw na proyekto.
Ano ito at para sa ano?

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...