Kazalo:

Arduino Nano bazirano IR krmiljeno RGB LED: 5 korakov
Arduino Nano bazirano IR krmiljeno RGB LED: 5 korakov

Video: Arduino Nano bazirano IR krmiljeno RGB LED: 5 korakov

Video: Arduino Nano bazirano IR krmiljeno RGB LED: 5 korakov
Video: BTT GTR v1 0 TMC5160 Pro with Sensor less Homing 2024, Julij
Anonim
Arduino Nano podprta IR krmilna LED dioda RGB
Arduino Nano podprta IR krmilna LED dioda RGB

v tem majhnem projektu vam želim pokazati, kako sem zgradil RGB LED na osnovi Arduina, ki ga upravlja IR daljinski upravljalnik in napaja USB kabel.

Zaloge

1. LED RGB

2. IR sprejemnik

3. Kabel USB

4. Arduino nano

5. IR daljinec

6. nekaj kablov

7. Upori 50-100 ohmov (uporabljam upore 47 ohmov, vendar ni velike razlike)

1. korak: Izberite svoj daljinski upravljalnik

Izberite svoj daljinski upravljalnik
Izberite svoj daljinski upravljalnik

Kateri daljinski upravljalnik boste uporabili, je vaša odločitev, vendar mora imeti daljinski upravljalnik 6 ključev, ki jih želite uporabiti. 2 od njih sta za rdečo, 2 za zeleno in 2 za modro.

2. korak: Najprej ga zgradite na plošči za kruh (ni nujno, vendar priporočljivo)

Najprej ga zgradite na deski za kruh (ni nujno, vendar priporočljivo)
Najprej ga zgradite na deski za kruh (ni nujno, vendar priporočljivo)
Najprej ga zgradite na deski za kruh (ni nujno, vendar priporočljivo)
Najprej ga zgradite na deski za kruh (ni nujno, vendar priporočljivo)

Zdaj zgradite vezje na plošči

povezave:

RGB LED GND> Arduino nano GND

RGB LED rdeča> Arduino nano Digital pin 5

RGB LED zelena> Arduino nano Digital pin 6

RGB LED modra> Arduino nano Digital pin 9

USB GND> Arduino nano GND

USB 5v> Arduino nano 5v

IR -sprejemnik pin 1> Arduino nano Digital pin 4

Pin 2 sprejemnika IR> Arduino nano GND

IR -sprejemnik pin 3> Arduino nano 5v

(vse povezave so prikazane zgoraj)

(vsak barvni zatič LED RGB je serijsko povezan z upori)

3. korak: Koda

koda je naslednja:

Tukaj je knjižnica, ki sem jo uporabljal.

#vključi

int IR_Recv = 4; // pin sprejemnika IR

int Rval = 0; int Gval = 0; int Bval = 0; int RvalDemo = 0; int GvalDemo = 0; int BvalDemo = 0; int R = 5; // rdeča pin int G = 6; // zelena pin int B = 9; // modri zatič #define Rup1 1976685926 // poveča svetlost rdeče barve #define Rup2 3772818013 // poveča rdečino svetlosti #define Rdown1 3843765582 // zmanjša svetlost rdeče barve #define Rdown2 3772813933 // zmanjša rdečino #define Gup1 3772797613 // poveča svetlost zelene barve #define Gup2 3774104872 // poveča zeleno svetlost #define Gdown1 3772834333 // zmanjša svetlost zelene barve #define Gdown2 1784778242 // zmanjša svetlost zelene barve #define Bup1 3980777284 // naredi modro svetlost narašča #define Bup2 3772781293 // poveča modrino svetlosti #define Bdown1 3772801693 // zmanjša svetlost modre barve #define Bdown2 3361986248 // zmanjša svetlost modre barve // OPOMBA: MENJATE ŠTEVILKE NA DALJINSKO !!! ! // Imam 2 podvojena ključa, na primer Rup1 in Rup2. ker // moj daljinski upravljalnik pritisne dve številki, ko pritisnete eno tipko. // v vašem primeru lahko vnesete iste številke v Rup1 in Rup2, Gup1 in Gup2 in tako eno. // Ko pritisnete tipko, se mora številka prikazati v Serijskem monitorju, // To morate vnesti v razdelek "#define". IRrecv unrecv (IR_Recv); decode_results rezultati; 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; stikalo (results.value) {///////////// RDEČI primer Rup1: Rval = Rval + 10; zlom; primer Rup2: Rval = Rval + 10; zlom; primer Rdown1: Rval = Rval - 10; zlom; primer Rdown2: Rval = Rval - 10; zlom; ////////////// ZELEN primer Gup1: Gval = Gval + 10; zlom; primer Gup2: Gval = Gval + 10; zlom; primer Gdown1: Gval = Gval - 10; zlom; primer Gdown2: Gval = Gval - 10; zlom; /////////////// MODRI primer Bup1: Bval = Bval + 10; zlom; primer Bup2: Bval = Bval + 10; zlom; primer Bdown1: Bval = Bval - 10; zlom; primer Bdown2: Bval = Bval - 10; zlom; //////////////////////////////////////////} unrecv.resume (); } if (Rval> 255) (Rval = 255); če (Rval 255) (Gval = 255); če (Gval 255) (Bval = 255); če (Bval <0) (Bval = 0); analogWrite (R, Rval); analogWrite (G, Gval); analogWrite (B, Bval); Serial.println (results.value); delayMicroseconds (1); }

4. korak: Dokončanje

Dokončanje
Dokončanje
Dokončanje
Dokončanje
Dokončanje
Dokončanje

Nebesa nisem dobro opravil. vse, kar sem naredil, je le snemal, ampak sem ga poskušal čim manj zmanjšati.

Če imate kakršna koli vprašanja ali napake, mi to povejte, potrudil se bom, da vam pomagam odpraviti napako. hvala za branje.

Priporočena: