İçindekiler:

Arduino Nano Tabanlı IR Kontrollü RGB LED: 5 Adım
Arduino Nano Tabanlı IR Kontrollü RGB LED: 5 Adım

Video: Arduino Nano Tabanlı IR Kontrollü RGB LED: 5 Adım

Video: Arduino Nano Tabanlı IR Kontrollü RGB LED: 5 Adım
Video: Buton ile LED yakmak | Arduino dersleri #5 2024, Temmuz
Anonim
Arduino Nano Tabanlı IR Kontrollü RGB LED
Arduino Nano Tabanlı IR Kontrollü RGB LED

Bu küçük projede size IR uzaktan kumanda ile kontrol edilen ve USB kablosu ile çalışan Arduino tabanlı RGB LED'i nasıl yaptığımı göstermek istiyorum.

Gereçler

1. RGB LED'i

2. IR alıcısı

3. USB kablosu

4. Arduino nano

5. IR uzaktan kumanda

6. bazı kablolar

7. 50-100 ohm dirençler (47 ohm dirençler kullanıyorum ama pek bir fark yok)

1. Adım: Uzaktan Kumandanızı Seçin

Uzaktan Kumandanızı Seçin
Uzaktan Kumandanızı Seçin

Yani hangi kumandayı kullanacağınız sizin kararınız, ancak kumandanızda kullanmak istediğiniz 6 tuş olmalı. 2 adet Kırmızı, 2 adet Yeşil ve 2 adet Mavi içindir.

Adım 2: Önce Bir Ekmek Tahtası Üzerine Yapın (Gerekli Değil Ama Tavsiye Edilir)

Önce Bir Ekmek Tahtası Üzerine Yapın (Gerekli Değil Ama Tavsiye Edilir)
Önce Bir Ekmek Tahtası Üzerine Yapın (Gerekli Değil Ama Tavsiye Edilir)
Önce Bir Ekmek Tahtası Üzerine Yapın (Gerekli Değil Ama Tavsiye Edilir)
Önce Bir Ekmek Tahtası Üzerine Yapın (Gerekli Değil Ama Tavsiye Edilir)

Şimdi devreyi bir breadboard üzerinde kurun

bağlantılar:

RGB LED GND > Arduino nano GND

RGB LED Kırmızı > Arduino nano Dijital pin 5

RGB LED Yeşil > Arduino nano Dijital pin 6

RGB LED Mavi > Arduino nano Dijital pin 9

USB GND > Arduino nano GND

USB 5v > Arduino nano 5v

IR alıcı pin 1 > Arduino nano Dijital pin 4

IR alıcı pimi 2 > Arduino nano GND

IR alıcı pin 3 > Arduino nano 5v

(tüm bağlantılar yukarıda gösterilmiştir)

(RGB LED'in her bir renk pini dirençlere seri olarak bağlanır)

Adım 3: Kod

kod şudur:

İşte kullandığım kütüphane.

#Dahil etmek

int IR_Recv = 4; //IR alıcı pimi

int Rval = 0; int Gval = 0; int Bval = 0; int RvalDemo = 0; int GvalDemo = 0; int BvalDemo = 0; int R = 5; //Kırmızı pin int G = 6; //Yeşil pin int B = 9; //Blue pin #define Rup1 1976685926 //kırmızı parlaklığı artırır #define Rup2 3772818013 //kırmızı parlaklığı artırır #define Rdown1 3843765582 //kırmızı parlaklığı azaltır #define Rdown2 3772813933 //kırmızı parlaklığı azaltır #define Gup1 3772797613 //yeşil parlaklığı artırır #define Gup2 3774104872 //yeşil parlaklığı artırır #define Gdown1 3772834333 //yeşil parlaklığı azaltır #define Gdown2 1784778242 //yeşil parlaklığı azaltır #define Bup1 3980777284 //mavi yapar parlaklık artar #define Bup2 3772781293 //mavi parlaklığı artırır #define Bdown1 3772801693 //mavi parlaklığı azaltır #define Bdown2 3361986248 //mavi parlaklığı azaltır //NOT: UZAKTAN KUMANDA SAYILARINI DEĞİŞTİRMENİZ GEREKİR!!! ! // 2 çift anahtarım var, örneğin Rup1 ve Rup2. çünkü // bir tuşa bastığınızda uzaktan kumandam 2 sayı verir. // sizin durumunuzda, aynı sayıları Rup1 ve Rup2, Gup1 ve Gup2 ve benzeri yerlere koyabilirsiniz. //Bir tuşa bastığınızda Seri monitörde numara görünmelidir, //"#define" bölümüne yazmalısınız. IRrecv geçersiz(IR_Recv); decode_results sonuçları; geçersiz kurulum(){ TCCR2A = _BV(COM2A1) | _BV(COM2B1) | _BV(WGM21) | _BV(WGM20); TCCR2B = _BV(CS22); irrecv.enableIRIn(); pinMode(R, ÇIKIŞ); pinMode(G, ÇIKIŞ); pinMode(B, ÇIKIŞ); Seri.başla(9600); } void loop(){ if (irrecv.decode(&results)){ long int decCode = sonuçlar.değer; switch (results.value){ ///////////RED case Rup1: Rval = Rval + 10; kırmak; durum Rup2: Rval = Rval + 10; kırmak; durum Rdown1: Rval = Rval - 10; kırmak; durum Rdown2: Rval = Rval - 10; kırmak; ///////////YEŞİL durum Gup1: Gval = Gval + 10; kırmak; durum Gup2: Gval = Gval + 10; kırmak; durum Gdown1: Gval = Gval - 10; kırmak; durum Gdown2: Gval = Gval - 10; kırmak; ////////////MAVİ durum Bup1: Bval = Bval + 10; kırmak; durum Bup2: Bval = Bval + 10; kırmak; durum Bdown1: Bval = Bval - 10; kırmak; durum Bdown2: Bval = Bval - 10; kırmak; /////////////////////////////////// } irrecv.resume(); } if (Rval > 255) (Rval = 255); if (Rval 255) (Gval = 255); if (Gval 255) (Bval = 255); if (Bval < 0) (Bval = 0); analogWrite(R, Rval); analogWrite(G, Gval); analogWrite(B, Bval); Serial.println(sonuçlar.değer); gecikmeMikrosaniye(1); }

Adım 4: Bitirme

Bitiricilik
Bitiricilik
Bitiricilik
Bitiricilik
Bitiricilik
Bitiricilik

İyi bir kasa işi yapmadım. Tek yaptığım sadece bantlamak, ama mümkün olduğunca küçültmeye çalıştım.

Herhangi bir sorunuz veya herhangi bir hatanız varsa, bana söyleyin, hatayı düzeltmenize yardımcı olmak için elimden geleni yapacağım. okuduğunuz için teşekkürler.

Önerilen: