Мазмұны:

Arduino Nano Baised IR басқарылатын RGB светодиоды: 5 қадам
Arduino Nano Baised IR басқарылатын RGB светодиоды: 5 қадам

Бейне: Arduino Nano Baised IR басқарылатын RGB светодиоды: 5 қадам

Бейне: Arduino Nano Baised IR басқарылатын RGB светодиоды: 5 қадам
Бейне: ESP32 Tutorial 12 - WS2812 RGB Srip 4 Project with SunFounder's ESP32 IoT Learnig kit 2024, Шілде
Anonim
Arduino Nano Baised IR басқарылатын RGB LED
Arduino Nano Baised IR басқарылатын RGB LED

Бұл шағын жобада мен Arduino негізіндегі RGB светодиодты қалай құрғанымды көрсеткім келеді, ол IR қашықтан басқару пультімен басқарылады және USB кабелімен жұмыс істейді.

Жабдықтар

1. RGB жарық диоды

2. IR қабылдағыш

3. USB кабелі

4. Arduino нано

5. IR қашықтан басқару пульті

6. кейбір кабельдер

7. 50-100 Ом резисторы (47 Ом резисторды қолданамын, бірақ айырмашылығы жоқ)

1 -қадам: Қашықтан басқару құралын таңдаңыз

Қашықтан басқару құралын таңдаңыз
Қашықтан басқару құралын таңдаңыз

Қандай қашықтан басқару пультін қолданыңыз - сіздің шешіміңіз, бірақ қашықтан басқару пультінде сіз қолданғыңыз келетін 6 кілт болуы керек. Оның 2 -і қызыл түске, 2 -уі жасылға және 2 -сі көкке арналған.

2 -қадам: Алдымен оны нан тақтасына салыңыз (қажет емес, бірақ ұсынылады)

Алдымен оны нан тақтасына салыңыз (қажет емес, бірақ ұсынылады)
Алдымен оны нан тақтасына салыңыз (қажет емес, бірақ ұсынылады)
Алдымен оны нан тақтасына салыңыз (қажет емес, бірақ ұсынылады)
Алдымен оны нан тақтасына салыңыз (қажет емес, бірақ ұсынылады)

Енді схеманы тақтаға салыңыз

байланыстар:

RGB LED GND> Arduino nano GND

RGB LED Қызыл> Arduino nano Digital pin 5

RGB LED жасыл> Arduino nano Digital pin 6

RGB жарықдиодты көк> Arduino nano Digital pin 9

USB GND> Arduino nano GND

USB 5v> Arduino nano 5v

IR қабылдағыш түйреуіші 1> Arduino nano Digital pin 4

IR қабылдағыш түйреуіші 2> Arduino nano GND

IR қабылдағыш түйреуіші 3> Arduino nano 5v

(барлық байланыстар жоғарыда көрсетілген)

(RGB светодиодының әр түсті түйрегіші резисторларға сериялы қосылады)

3 -қадам: Кодекс

код келесідей:

Міне мен пайдаланған кітапхана.

#қосу

int IR_Recv = 4; // IR қабылдағыш түйреуіші

int Rval = 0; int Gval = 0; int Bval = 0; int RvalDemo = 0; int GvalDemo = 0; int BvalDemo = 0; int R = 5; // Қызыл түйреуіш int G = 6; // Жасыл түйреуіш int B = 9; // Көк түйреуіш #анықтайтын руп1 1976685926 // қызыл жарықтықты жоғарылатады #анықтайтын руп2 3772818013 // қызыл жарықтықты жоғарылатады #анықта Rdown1 3843765582 // қызыл жарықтығын төмендетеді #анықтайтын Rdown2 3772813933 // қызыл жарықтығын төмендетеді #анықтайды Gup1 3772797613 // жасыл жарықтылықты жоғарылатады #анықтаңыз Gup2 3774104872 // жасыл жарықтығын жоғарылатады #анықтаңыз Gdown1 3772834333 // жасыл жарықтығын төмендетеді #анықтаңыз Gdown2 1784778242 // жасыл жарықтығын төмендетеді #анықтаңыз Bup1 3980777284 // жасайды жарықтық жоғарылайды #анықтаңыз Bup2 3772781293 // көк жарықтылықты жоғарылатады #төмен түсіруді анықтаңыз 3772801693 // көк жарықтылықты төмендетеді #төмен түсіруді анықтаңыз2 3361986248 // көк жарықтығын төмендетеді // ЕСКЕРТУ: САНДАРДЫ ҚАШЫҚТАН ҚАШЫҚТА ӨЗГЕРТУ КЕРЕК !!! ! // Менде қайталанатын 2 кілт бар, мысалы Rup1 және Rup2. себебі // менің қашықтан басқару пульті бір пернені басқанда 2 сан шығарады. // сіздің жағдайда сіз бірдей сандарды Rup1 мен Rup2, Gup1 және Gup2 және тағы басқаларына қоя аласыз. // Пернені басқанда, нөмір сериялық мониторда пайда болуы керек, // «#define» бөліміне дәл осылай теру керек. IRrecv irrecv (IR_Recv); decode_results нәтижелері; void setup () {TCCR2A = _BV (COM2A1) | _BV (COM2B1) | _BV (WGM21) | _BV (WGM20); TCCR2B = _BV (CS22); irrecv.enableIRIn (); pinMode (R, OUTPUT); pinMode (G, OUTPUT); pinMode (B, OUTPUT); Serial.begin (9600); } void loop () {if (irrecv.decode (& results)) {long int decCode = results.value; switch (results.value) {/////////// ҚЫЗЫЛ регистр Rup1: Rval = Rval + 10; үзіліс; жағдай Rup2: Rval = Rval + 10; үзіліс; жағдай Rdown1: Rval = Rval - 10; үзіліс; жағдай Rdown2: Rval = Rval - 10; үзіліс; /////////// GREEN case Gup1: Gval = Gval + 10; үзіліс; жағдай Gup2: Gval = Gval + 10; үзіліс; жағдай Gdown1: Gval = Gval - 10; үзіліс; жағдай Gdown2: Gval = Gval - 10; үзіліс; ///////////// КӨК жағдай Bup1: Bval = Bval + 10; үзіліс; жағдай Bup2: Bval = Bval + 10; үзіліс; жағдай Bdown1: Bval = Bval - 10; үзіліс; жағдай Bdown2: Bval = Bval - 10; үзіліс; //////////////////////////////////////////////////////// irrecv.resume (); } if (Rval> 255) (Rval = 255); егер (Rval 255) (Gval = 255); егер (Gval 255) (Bval = 255); егер (Bval <0) (Bval = 0); analogWrite (R, Rval); analogWrite (G, Gval); analogWrite (B, Bval); Serial.println (нәтижелер.мән); кешіктіруМикросекундтар (1); }

4 -қадам: Аяқтау

Аяқталуда
Аяқталуда
Аяқталуда
Аяқталуда
Аяқталуда
Аяқталуда

Мен корпуста жақсы жұмыс жасаған жоқпын. Мен мұны тек скотчпен ғана жасадым, бірақ мен оны мүмкіндігінше кішірейтуге тырыстым.

Егер сізде қандай да бір сұрақтар немесе қателер болса, міндетті түрде айтыңыз, мен сізге қатені түзетуге көмектесу үшін бар күшімді саламын. оқығаныңыз үшін рахмет.

Ұсынылған: