Sadržaj:

Arduino Nano bazirano IR kontrolirano RGB LED svjetlo: 5 koraka
Arduino Nano bazirano IR kontrolirano RGB LED svjetlo: 5 koraka

Video: Arduino Nano bazirano IR kontrolirano RGB LED svjetlo: 5 koraka

Video: Arduino Nano bazirano IR kontrolirano RGB LED svjetlo: 5 koraka
Video: ESP32 Tutorial 12 - WS2812 RGB Srip 4 Project with SunFounder's ESP32 IoT Learnig kit 2024, Studeni
Anonim
Arduino Nano bazirana IR upravljana RGB LED dioda
Arduino Nano bazirana IR upravljana RGB LED dioda

u ovom malom projektu želim vam pokazati kako sam izgradio RGB LED zasnovan na Arduinu koji se kontrolira daljinskim upravljačem i napaja USB kabelom.

Pribor

1. RGB LED

2. IC prijemnik

3. USB kabel

4. Arduino nano

5. IC daljinski

6. neki kabeli

7. Otpornici 50-100 ohma (koristim otpornike od 47 ohma, ali nema velike razlike)

Korak 1: Odaberite svoj daljinski upravljač

Odaberite svoj daljinski upravljač
Odaberite svoj daljinski upravljač

Dakle, vaš daljinski upravljač je vaša odluka, ali vaš daljinski upravljač trebao bi imati 6 ključeva koje želite koristiti. 2 su za crvenu, 2 za zelenu i 2 za plavu.

Korak 2: Prvo ga izradite na ploči za kruh (nije potrebno, ali se preporučuje)

Prvo ga izradite na ploči za kruh (nije potrebno, ali se preporučuje)
Prvo ga izradite na ploči za kruh (nije potrebno, ali se preporučuje)
Prvo ga izradite na ploči za kruh (nije potrebno, ali se preporučuje)
Prvo ga izradite na ploči za kruh (nije potrebno, ali se preporučuje)

Sada izgradite krug na ploči

veze:

RGB LED GND> Arduino nano GND

RGB LED crvena> Arduino nano digitalni pin 5

RGB LED zelena> Arduino nano Digitalni pin 6

RGB LED plava> Arduino nano Digitalni pin 9

USB GND> Arduino nano GND

USB 5v> Arduino nano 5v

Pin 1 za IR prijemnik> Arduino nano Digitalni pin 4

Pin 2 za IR prijemnik> Arduino nano GND

IC prijemnik pin 3> Arduino nano 5v

(sve veze su prikazane gore)

(svaki pin u boji RGB LED spojen je serijski na otpornike)

Korak 3: Kôd

kod je sljedeći:

Evo biblioteke koju sam koristio.

#uključi

int IR_Recv = 4; // pin IR prijemnika

int Rval = 0; int Gval = 0; int Bval = 0; int RvalDemo = 0; int GvalDemo = 0; int BvalDemo = 0; int R = 5; // crveni pin int G = 6; // zelena pin int B = 9; // Plavi pin #define Rup1 1976685926 // povećava svjetlinu crvene boje #define Rup2 3772818013 // povećava svjetlinu crvene boje #define Rdown1 3843765582 // smanjuje svjetlinu crvene boje #define Rdown2 3772813933 // smanjuje svjetlinu crvene boje #define Gup1 3772797613 // povećava svjetlinu zelene boje #define Gup2 3774104872 // povećava svjetlinu zelene boje #define Gdown1 3772834333 // smanjuje svjetlinu zelene boje #define Gdown2 1784778242 // smanjuje svjetlinu zelene boje #define Bup1 3980777284 // čini plavu svjetlina ide gore #define Bup2 3772781293 // povećava svjetlinu plave boje #define Bdown1 3772801693 // smanjuje svjetlinu plave boje #define Bdown2 3361986248 // smanjuje svjetlinu plave boje // NAPOMENA: TREBA PROMIJENITI BROJEVE NA DALJINSKOM !!! ! // Imam 2 duplicirana ključa, na primjer Rup1 i Rup2. jer // moj daljinski upravljač odašilje 2 broja kada pritisnete jednu tipku. // u vašem slučaju možete staviti iste brojeve u Rup1 i Rup2, Gup1 i Gup2 i tako jedan. // Kad pritisnete tipku, broj bi se trebao pojaviti u Serijskom monitoru, // To je ono što trebate upisati u odjeljak "#define". IRrecv unrecv (IR_Recv); decode_results rezultate; void setup () {TCCR2A = _BV (COM2A1) | _BV (COM2B1) | _BV (WGM21) | _BV (WGM20); TCCR2B = _BV (CS22); unrecv.enableIRIn (); pinMode (R, OUTPUT); pinMode (G, OUTPUT); pinMode (B, OUTPUT); Serial.begin (9600); } void loop () {if (unrecv.decode (& results)) {long int decCode = results.value; switch (results.value) {///////////// CRVENI slučaj Rup1: Rval = Rval + 10; pauza; slučaj Rup2: Rval = Rval + 10; pauza; slučaj Rdown1: Rval = Rval - 10; pauza; slučaj Rdown2: Rval = Rval - 10; pauza; ////////////// ZELENO kućište Gup1: Gval = Gval + 10; pauza; slučaj Gup2: Gval = Gval + 10; pauza; slučaj Gdown1: Gval = Gval - 10; pauza; slučaj Gdown2: Gval = Gval - 10; pauza; /////////////// PLAVI slučaj Bup1: Bval = Bval + 10; pauza; slučaj Bup2: Bval = Bval + 10; pauza; slučaj Bdown1: Bval = Bval - 10; pauza; slučaj Bdown2: Bval = Bval - 10; pauza; ////////////////////////////////////////////} unrecv.resume (); } if (Rval> 255) (Rval = 255); if (Rval 255) (Gval = 255); ako (Gval 255) (Bval = 255); ako (Bval <0) (Bval = 0); analogWrite (R, Rval); analogWrite (G, Gval); analogWrite (B, Bval); Serial.println (results.value); delayMicroseconds (1); }

Korak 4: Dovršavanje

Završavanje
Završavanje
Završavanje
Završavanje
Završavanje
Završavanje

Nisam dobro obavio kućište. sve što sam učinio je samo ga zalijepiti, ali pokušao sam ga smanjiti što je moguće manje.

Ako imate bilo kakvih pitanja ili grešaka, svakako mi recite, potrudit ću se da vam pomognem ispraviti grešku. hvala na čitanju.

Preporučeni: