INHOUDSOPGAWE:

Arduino Nano Baised IR -beheerde RGB LED: 5 stappe
Arduino Nano Baised IR -beheerde RGB LED: 5 stappe

Video: Arduino Nano Baised IR -beheerde RGB LED: 5 stappe

Video: Arduino Nano Baised IR -beheerde RGB LED: 5 stappe
Video: Arduino IR Remote Control LED | Arduino IR Receiver 2024, November
Anonim
Arduino Nano Baised IR -beheerde RGB LED
Arduino Nano Baised IR -beheerde RGB LED

In hierdie klein projek wil ek u wys hoe ek 'n Arduino -gebaseerde RGB LED gebou het wat deur 'n IR -afstandsbediening beheer word en deur 'n USB -kabel aangedryf word.

Voorrade

1. RGB LED

2. IR -ontvanger

3. USB -kabel

4. Arduino nano

5. IR afstandsbediening

6. 'n paar kabels

7. 50-100 ohm weerstande (gebruik 47 ohm weerstande, maar daar is nie veel verskil nie)

Stap 1: Kies u afstandsbediening

Kies u afstandsbediening
Kies u afstandsbediening

Die afstandsbediening wat u gebruik, is u besluit, maar u afstandsbediening moet ses sleutels hê wat u wil gebruik. 2 van hulle is vir Rooi, 2 vir Groen en 2 vir Blou.

Stap 2: Bou dit eers op 'n broodbord (nie nodig nie, maar word aanbeveel)

Bou dit eers op 'n broodbord (nie nodig nie, maar word aanbeveel)
Bou dit eers op 'n broodbord (nie nodig nie, maar word aanbeveel)
Bou dit eers op 'n broodbord (nie nodig nie, maar word aanbeveel)
Bou dit eers op 'n broodbord (nie nodig nie, maar word aanbeveel)

Bou nou die kring op 'n broodbord

verbindings:

RGB LED GND> Arduino nano GND

RGB LED rooi> Arduino nano Digitale pen 5

RGB LED groen> Arduino nano Digitale pen 6

RGB LED blou> Arduino nano Digitale pen 9

USB GND> Arduino nano GND

USB 5v> Arduino nano 5v

IR ontvanger pen 1> Arduino nano Digitale pen 4

IR ontvanger pen 2> Arduino nano GND

IR ontvanger pen 3> Arduino nano 5v

(alle verbindings word hierbo getoon)

(elke kleurpen van RGB LED is reeks verbind met weerstande)

Stap 3: Die kode

kode is die volgende:

Hier is die biblioteek wat ek gebruik het.

#insluit

int IR_Recv = 4; // IR ontvanger pen

int Rval = 0; int Gval = 0; int Bval = 0; int RvalDemo = 0; int GvalDemo = 0; int BvalDemo = 0; int R = 5; // Rooi pen int G = 6; // Groen pen int B = 9; // Blou pen #definieer Rup1 1976685926 // laat rooi helderheid styg #definieer Rup2 3772818013 // laat rooi helderheid styg #definieer Rdown1 3843765582 // laat rooi helderheid daal #definieer Rdown2 3772813933 // laat rooi helderheid daal #definieer Gup1 3772797613 // laat groen helderheid styg #definieer Gup2 3774104872 // laat groen helderheid styg #definieer Gdown1 3772834333 // laat groen helderheid daal #definieer Gdown2 1784778242 // laat groen helderheid daal #definieer Bup1 3980777284 // maak blou helderheid styg #definieer Bup2 3772781293 // laat blou helderheid styg #definieer Bdown1 3772801693 // laat blou helderheid daal #definieer Bdown2 3361986248 // laat blou helderheid daal // OPMERKING: JY MOET NOMMERS NA JOU AFSTAND VERANDER !!! ! // Ek het 2 dubbele sleutels, byvoorbeeld Rup1 en Rup2. want // my afstandsbediening gee 2 nommers af as u op een sleutel druk. // in u geval mag u dieselfde getalle in Rup1 en Rup2, Gup1 en Gup2 en so een plaas. // As u op 'n sleutel druk, moet die nommer in die seriële monitor verskyn, // Dit is wat u in die afdeling "#define" moet tik. IRrecv irrecv (IR_Recv); resultate van dekode_resultate; ongeldige opstelling () {TCCR2A = _BV (COM2A1) | _BV (COM2B1) | _BV (WGM21) | _BV (WGM20); TCCR2B = _BV (CS22); irrecv.enableIRIn (); pinMode (R, UITGANG); pinMode (G, UITGANG); pinMode (B, UITGANG); Serial.begin (9600); } leemte lus () {if (irrecv.decode (& resultate)) {long int decCode = results.value; skakelaar (result.value) {/////////// ROOI geval Rup1: Rval = Rval + 10; breek; geval Rup2: Rval = Rval + 10; breek; geval Rdown1: Rval = Rval - 10; breek; geval Rdown2: Rval = Rval - 10; breek; //////////// GREEN case Gup1: Gval = Gval + 10; breek; geval Gup2: Gval = Gval + 10; breek; geval Gdown1: Gval = Gval - 10; breek; geval Gdown2: Gval = Gval - 10; breek; ////////////// BLOU geval Bup1: Bval = Bval + 10; breek; geval Bup2: Bval = Bval + 10; breek; geval Bdown1: Bval = Bval - 10; breek; geval Bdown2: Bval = Bval - 10; breek; /////////////////////////////////////////////// } as (Rval> 255) (Rval = 255); as (Rval 255) (Gval = 255); as (Gval 255) (Bval = 255); as (Bval <0) (Bval = 0); analogWrite (R, Rval); analogWrite (G, Gval); analogWrite (B, Bval); Serial.println (resultate.waarde); delayMicroseconds (1); }

Stap 4: afwerking

Afwerking
Afwerking
Afwerking
Afwerking
Afwerking
Afwerking

Ek het nie 'n goeie taak met die omhulsel gedoen nie. al wat ek gedoen het, is om dit net te plak, maar ek het probeer om dit so klein as moontlik te maak.

As u enige vrae of foute het, moet u dit vir my sê, ek sal my bes doen om die fout reg te stel. dankie vir die lees.

Aanbeveel: