Inhoudsopgave:

Arduino Nano-gebaseerde IR-gestuurde RGB-led - Ajarnpa
Arduino Nano-gebaseerde IR-gestuurde RGB-led - Ajarnpa

Video: Arduino Nano-gebaseerde IR-gestuurde RGB-led - Ajarnpa

Video: Arduino Nano-gebaseerde IR-gestuurde RGB-led - Ajarnpa
Video: Living Room ,,Intro'' Lightshow 2024, Juli-
Anonim
Arduino Nano-gebaseerde IR-gestuurde RGB LED
Arduino Nano-gebaseerde IR-gestuurde RGB LED

in dit kleine project wil ik je laten zien hoe ik op Arduino gebaseerde RGB-led heb gebouwd die wordt bestuurd door een IR-afstandsbediening en gevoed door een USB-kabel.

Benodigdheden

1. RGB-LED

2. IR-ontvanger

3. USB-kabel

4. Arduino nano

5. IR-afstandsbediening

6. sommige kabels

7. 50-100 ohm weerstanden (ik gebruik 47 ohm weerstanden maar er is niet veel verschil)

Stap 1: Kies uw afstandsbediening

Kies je afstandsbediening
Kies je afstandsbediening

Dus welke afstandsbediening u gebruikt, is uw beslissing, maar uw afstandsbediening moet 6 toetsen hebben die u wilt gebruiken. 2 daarvan zijn voor rood, 2 voor groen en 2 voor blauw.

Stap 2: Bouw het eerst op een broodplank (niet nodig maar aanbevolen)

Bouw het eerst op een broodplank (niet nodig maar aanbevolen)
Bouw het eerst op een broodplank (niet nodig maar aanbevolen)
Bouw het eerst op een broodplank (niet nodig maar aanbevolen)
Bouw het eerst op een broodplank (niet nodig maar aanbevolen)

Bouw nu het circuit op een breadboard

aansluitingen:

RGB LED GND > Arduino nano GND

RGB LED Rood > Arduino nano Digitale pin 5

RGB LED Groen > Arduino nano Digitale pin 6

RGB LED Blauw > Arduino nano Digitale pin 9

USB GND > Arduino nano GND

USB 5v > Arduino nano 5v

IR-ontvanger pin 1 > Arduino nano digitale pin 4

IR-ontvanger pin 2 > Arduino nano GND

IR-ontvanger pin 3 > Arduino nano 5v

(alle aansluitingen zijn hierboven weergegeven)

(elke kleurpen van RGB LED is in serie verbonden met weerstanden)

Stap 3: De code

code is de volgende:

Hier is de bibliotheek die ik heb gebruikt.

#erbij betrekken

int IR_Recv = 4; //IR-ontvanger pin

int Rval = 0; int Gval = 0; int Bval = 0; int RvalDemo = 0; int GvalDemo = 0; int BvalDemo = 0; intR = 5; // Rode pin int G = 6; // Groene pin int B = 9; //Blauwe pin #define Rup1 1976685926 //maakt de rode helderheid hoger #define Rup2 3772818013 //maakt de rode helderheid hoger #define Rdown1 3843765582 //maakt de rode helderheid lager #define Rdown2 3772813933 //maakt de rode helderheid lager #define Gup1 3772797613 //maakt groene helderheid omhoog #define Gup2 3774104872 //maakt groene helderheid omhoog #define Gdown1 3772834333 //maakt groene helderheid omlaag #define Gdown2 1784778242 //maakt groene helderheid omlaag #define Bup1 3980777284 //maakt blauw helderheid gaat omhoog #define Bup2 3772781293 //maakt blauwe helderheid omhoog #define Bdown1 3772801693 //maakt blauwe helderheid omlaag #define Bdown2 3361986248 //maakt blauwe helderheid omlaag //OPMERKING: U MOET NUMMERS WIJZIGEN OP UW AFSTANDSBEDIENING!!! ! // Ik heb 2 dubbele sleutels, bijvoorbeeld Rup1 en Rup2. omdat //mijn afstandsbediening 2 nummers uitvoert wanneer u op één toets drukt. // in jouw geval mag je dezelfde nummers plaatsen in Rup1 en Rup2, Gup1 en Gup2 enzovoort. // Wanneer u op een toets drukt, moet het nummer verschijnen in Serial monitor, // Dat is wat u moet typen in het gedeelte "#define". IRrecv irrecv(IR_Recv); decode_results resultaten; void setup(){ TCCR2A = _BV(COM2A1) | _BV(COM2B1) | _BV(WGM21) | _BV(WGM20); TCCR2B = _BV(CS22); onrecv.enableIRIn(); pinMode(R, UITGANG); pinMode (G, UITGANG); pinMode (B, UITGANG); Serieel.begin(9600); } void loop(){ if (irrecv.decode(&results)){ long int decCode = results.value; switch (results.value){ ///////////RED case Rup1: Rval = Rval + 10; pauze; geval Rup2: Rval = Rval + 10; pauze; geval Rdown1: Rval = Rval - 10; pauze; geval Rdown2: Rval = Rval - 10; pauze; ////////////GROEN geval Gup1: Gval = Gval + 10; pauze; geval Gup2: Gval = Gval + 10; pauze; geval Gdown1: Gval = Gval - 10; pauze; geval Gdown2: Gval = Gval - 10; pauze; /////////////BLAUWE kast Bup1: Bval = Bval + 10; pauze; geval Bup2: Bval = Bval + 10; pauze; geval Bdown1: Bval = Bval - 10; pauze; geval Bdown2: Bval = Bval - 10; pauze; //////////////////////////////////////// } irrecv.resume(); } if (Rval > 255) (Rval = 255); als (Rval 255) (Gval = 255); if (Gval 255) (Bval = 255); als (Bval < 0) (Bval = 0); analogWrite(R, Rval); analoogWrite(G, Gval); analoogWrite(B, Bval); Serial.println(resultaten.waarde); vertragingMicroseconden(1); }

Stap 4: Afwerking

Afwerking
Afwerking
Afwerking
Afwerking
Afwerking
Afwerking

Ik heb de behuizing niet goed gedaan. het enige wat ik deed was het gewoon opplakken, maar ik heb geprobeerd het zo klein mogelijk te maken.

Als je vragen of fouten hebt, vertel het me dan, ik zal mijn best doen om je te helpen de fout te herstellen. bedankt voor het lezen.

Aanbevolen: