• Telefon kontrolü için Arduino aracılığıyla bir RGB şeridi bağlama. Arduino ile LED şerit kontrolü

    Arduino, herhangi bir cihazı kontrol etmek için idealdir. ATmega mikroişlemcisi, bir çizim programı kullanarak, büyük miktar ayrık çıkışlar, analog-dijital girişler/çıkışlar ve PWM kontrolörleri.

    Kodun esnekliği nedeniyle, ATmega mikrodenetleyici, çeşitli otomasyon modüllerinde yaygın olarak kullanılmaktadır, buna dayanarak bir LED aydınlatma kontrol kontrolörü oluşturmak mümkündür.

    Arduino ile yük kontrolü prensibi

    Arduino kartında iki tip çıkış portu vardır: dijital ve analog (PWM denetleyici). Dijital bağlantı noktasının iki olası durumu vardır - mantıksal sıfır ve mantıksal bir. Bir LED bağlarsanız, ya yanar ya da yanmaz.

    Analog çıkış, ayarlanabilir bir görev döngüsü ile yaklaşık 500 Hz frekansa sahip bir sinyalin uygulandığı bir PWM denetleyicisidir. PWM denetleyicisi nedir ve nasıl çalıştığı İnternette bulunabilir. Analog port üzerinden sadece yükü açıp kapatmak değil, üzerindeki voltajı (akımı) değiştirmek de mümkündür.

    Komut sözdizimi

    Dijital çıkış:

    pinMode(12, ÇIKIŞ);- 12 numaralı bağlantı noktasını veri çıkış bağlantı noktası olarak ayarlayın;
    digitalWrite(12, YÜKSEK);- LED'i aydınlatan ayrık çıkış 12'ye mantıksal bir birim uyguluyoruz.

    Analog çıkış:

    analogOutPin = 3;- bağlantı noktası 3'ü bir analog değer çıkışı verecek şekilde ayarlayın;
    analogWrite(3, değer);- çıkışta 0 ila 5V voltajlı bir sinyal oluşturuyoruz. Değer – 0 ila 255 arası sinyal görev döngüsü. 255 değeriyle, maksimum voltaj.

    Arduino ile LED'leri kontrol etmenin yolları

    Doğrudan bağlantı noktası üzerinden yalnızca zayıf bir LED bağlanabilir ve o zaman bile sınırlayıcı bir dirençle daha iyidir. Daha güçlü bir yük bağlamaya çalışmak onu devre dışı bırakır.

    LED şeritler dahil daha güçlü yükler için bir elektronik anahtar - bir transistör kullanılır.

    Transistör anahtar türleri

    • iki kutuplu;
    • Alan;
    • Kompozit (Darlington montajı).
    Yük bağlantı yöntemleri
    Başından sonuna kadar iki kutuplu transistör Bir alan etkili transistör aracılığıyla Voltaj anahtarı ile

    Yüksek bir mantık seviyesi uygulandığında (digitalWrite(12, YÜKSEK);)çıkış portundan transistörün tabanına toplayıcı-emitör zinciri yoluyla, referans voltajı yüke akacaktır. Bu şekilde LED'i açıp kapatabilirsiniz.

    Alan etkili bir transistör benzer şekilde çalışır, ancak akımla değil voltajla kontrol edilen bir "taban" yerine bir tahliyeye sahip olduğundan, bu devrede bir sınırlayıcı direnç isteğe bağlıdır.

    Bipolar görünüm, güçlü yükleri düzenlemenize izin vermez. İçinden geçen akım 0.1-0.3A seviyesinde sınırlıdır.

    Alan etkili transistörler, 2A'e kadar akımla daha güçlü yüklerle çalışır. daha fazlası için güçlü yük kullanmak FET'ler 9A'ya kadar akım ve 60V'a kadar voltaj ile Mosfet.

    Alan yerine, ULN2003, ULN2803 mikro devrelerinde Darlington çift kutuplu transistör grubunu kullanabilirsiniz.

    Elektronik voltaj anahtarının ULN2003 çipi ve devre şeması:

    LED şeridin düzgün kontrolü için transistörün çalışma prensibi

    Transistör, sadece elektronlar için bir musluk gibi çalışır. Bipolar transistörün tabanına sağlanan voltaj veya alanın boşalması etkisi ne kadar yüksekse, emitör-toplayıcı zincirindeki direnç o kadar düşük, yükten geçen akım o kadar yüksek olur.

    Transistörü Arduino analog portuna bağlayarak, ona 0 ile 255 arasında bir değer atayın, toplayıcıya veya tahliyeye uygulanan voltajı 0'dan 5V'a değiştirin. Kollektör-emetör devresi sayesinde yük referans geriliminin %0'ından %100'üne geçecektir.

    LED'i kontrol etmek için teyp arduino uygun güçte bir transistör seçmek gereklidir. LED metreye güç sağlamak için çalışma akımı 300-500mA'dır, bu amaç için bir güç bipolar transistörü uygundur. Daha uzun uzunluklar için bir alan etkili transistör gereklidir.

    şema LED bağlantıları arduino için bantlar:

    Andurino ile RGB Bant Kontrolü

    Arduino, tek çipli LED'lerin yanı sıra renkli LED'lerle de çalışabilir. Her bir rengin çıkışlarını Arduino analog çıkışlarına bağlayarak, her bir kristalin parlaklığını keyfi olarak değiştirerek istediğiniz parlaklık rengini elde edebilirsiniz.

    Arduino RGB LED için bağlantı şeması:

    Arduino RGB teyp kontrolü benzer şekilde oluşturulmuştur:

    Arduino RGB denetleyicisi en iyi alan etkili transistörlerde toplanır.

    İçin pürüzsüz kontrol parlaklık iki düğme kullanılabilir. Biri ışımanın parlaklığını artıracak, diğeri azalacaktır.

    Arduino LED Şerit Parlaklık Kontrol Çizimi

    int led = 120; düzenlemek ortalama seviye parlaklık

    geçersiz kurulum()(
    pinMode(4, ÇIKIŞ); 4. analog bağlantı noktasını çıkış olarak ayarlayın
    pinMode(2, GİRİŞ);

    pinMode(4, GİRİŞ); 2. ve 4. yükleyin dijital bağlantı noktası yoklama düğmelerine girişte
    }
    geçersiz döngü()(

    button1 = digitalRead(2);

    button2 = digitalRead(4);
    eğer (düğme1 == YÜKSEK) ilk düğmeye basmak parlaklığı artıracaktır
    {
    led=led+5;

    analogWrite(4, led);
    }
    eğer (düğme2 == YÜKSEK) ikinci düğmeye basmak parlaklığı azaltır
    {
    led \u003d led - 5;

    analogWrite(4, led);
    }

    Birinci veya ikinci düğmeyi basılı tutarken, kontrol kontağına uygulanan voltaj yumuşak bir şekilde değişir. elektronik anahtar. Ardından, parlaklıkta yumuşak bir değişiklik olacaktır.

    Arduino kontrol modülleri

    Tam teşekküllü bir LED şerit sürücüsü oluşturmak için sensör modüllerini kullanabilirsiniz.

    IR kontrolü

    Modül, 20 komuta kadar programlamaya izin verir.

    Sinyal yarıçapı yaklaşık 8 m'dir.

    Takım fiyatı 6 c.u.

    radyo kanalına göre

    100 m'ye kadar menzile sahip dört kanallı ünite

    Takım fiyatı 8 c.u.

    Daireye yaklaşırken bile aydınlatmayı açmanıza izin verir.

    Temassız

    Mesafe sensörü, eli hareket ettirerek ışığın parlaklığını artırabilir ve azaltabilir.

    5 m'ye kadar menzil.

    Modül fiyatı 0,3 c.u.

    Geçen sefer, bir LED şeridi L298 sürücüsü aracılığıyla bir arduinoya bağlamak için bir yöntem düşünülmüştü. Renk yönetimi programlı olarak gerçekleştirildi - Rastgele işlevi. Şimdi, DHT 11 sıcaklık ve nem sensörünün okumalarına göre LED şeridin renginin nasıl kontrol edileceğini bulmanın zamanı geldi.

    L298 sürücüsü üzerinden bir LED şerit bağlama örneği esas alınmıştır. Ayrıca, örneğe DHT 11 sensörünün okumalarını gösterecek olan LCD 1602 ekranı eklenmiştir.

    Proje için aşağıdaki Arduino öğelerine ihtiyacınız olacak:

    1. Arduino UNO kartı.
    2. LCD 1602 + I2C'yi görüntüleyin.
    3. DHT sıcaklık ve nem sensörü
    4. LED Şerit Işığı.
    5. Sürücü L298.
    6. Güç kaynağı 9-12V.
    7. Arduino ve ekran için kılıf (isteğe bağlı).

    Öncelikle devre şemasına bakalım (Şekil 1). Üzerinde, yukarıdaki tüm unsurları nasıl bağlamanız gerektiğini görebilirsiniz. Devreyi monte etmede ve bağlamada karmaşık bir şey yoktur, ancak çoğu insanın unuttuğu ve yanlış sonuçlara vardığı bir nüanstan bahsetmeye değer. çalışma LED'i- Arduino ile kurdeleler.

    Resim 1. devre şeması Arduino ve LED şeridi DHT 11 sensörüyle bağlama

    önlemek için değil doğru operasyon LED şeridi (titreşim, renk uyuşmazlığı, eksik parlama vb.), tüm devrenin güç kaynağı ortak yapılmalıdır, yani. Arduino denetleyicisinin GND (toprak) pinlerini ve L298 sürücüsünü (LED şerit) bağlayın. Bunun nasıl yapıldığını şemada görebilirsiniz.

    Nem sensörünün bağlanması hakkında birkaç söz. Kayışsız çıplak bir DHT 11 satın alırsanız, sırasıyla birinci ve ikinci kontaklar, 5V ve Data arasında, nominal değeri 5-10 kOhm olan bir direnci lehimlemeniz gerekir. Sıcaklık ve nem ölçüm aralığı üzerinde yazılıdır. ters taraf sensör gövdesi DHT 11. Sıcaklık: 0-50 santigrat derece. Nem: %0-80.


    Şekil 2. doğru bağlantı nem sensörü DHT 11

    Projenin tüm unsurlarını şemaya göre monte ettikten sonra yazmanız gerekir. programlama kodu, bu da her şeyin istediğimiz gibi çalışmasını sağlayacak. Ve ihtiyacımız var LED Şerit Işık DHT 11 sensörünün (nem) okumalarına bağlı olarak rengi değişti.

    DHT 11 sensörünü programlamak için ek bir kitaplığa ihtiyacınız olacaktır.

    kod arduino programları ve RGB - bant. Neme bağlı olarak şerit rengi değişir.

    #include #include //çalışmak için kitaplık LCD ekran 1602 #include //nem ve sıcaklık sensörü DHT 11 int chk ile çalışmak için kitaplık; //değişken, DHT11 sensöründeki tüm verileri saklayacak int hum; //değişken, DHT11 sensörü dht11 DHT'den alınan nem değerlerini saklayacaktır; //DHT tipinin nesnesi #define DHT11_PIN 4 //DHT11 sensörünün veri kontağı giriş 4'e bağlanır #define LED_R 9 //kanal R için pin #define LED_G 10 //kanal G için pin #define LED_B 11 //pin için kanal B / /değişkenler renk değerlerini saklayacak //üç rengin tümü karıştırıldığında gerekli renk elde edilecek int led_r=0, led_g=0, led_b=0; //0x27 adresi ile bir görüntüleme nesnesi tanımlanıyor //I2C kartı aracılığıyla projede bir görüntü kullanmayı unutmayın LiquidCrystal_I2C lcd(0x27,16,2); void setup() ( //ekran oluştur lcd.init(); lcd.backlight(); // pinleri çıkış olarak bildir pinMode(LED_R, OUTPUT); pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); ) geçersiz döngü () ( chk = DHT.read(DHT11_PIN);//DHT11 sensöründen verileri oku //verileri ekrana ver lcd.print("Temp: "); lcd.print(DHT.temperature, 1); lcd .print( " C"); lcd.setCursor(0,1); lcd.print("Hum: "); lcd.print(DHT.nem, 1); lcd.print(" %"); delay(1500 ); / /sensörün doğru çalışması için, lcd.clear(); hum = DHT.nem; //nem okumalarını almak için bir gecikme gerekir //nem oranı %19 ile %30 arasında dışarı vermek için yeşil renk if ((hum >= 19) && (hum<= 30)) { led_r = 1; led_g = 255; led_b = 1; } //в диапозоне от 31 до 40% влажности выдать красный цвет if ((hum >= 31) && (uğultu<= 40)) { led_r = 255; led_g = 1; led_b = 1; } //в диапозоне от 41 до 49% влажности выдать синий цвет if ((hum >= 41) && (uğultu<= 49)) { led_r = 1; led_g = 1; led_b = 255; } // подача сигналов цвета на выхода analogWrite(LED_R, led_r); analogWrite(LED_G, led_g); analogWrite(LED_B, led_b); }

    Etiketler: Etiketler


    Yeni Yıl arifesinde, çeşitli desenler oluşturma yeteneğine sahip bir Noel ağacı programlanabilir RGB çelenk oluşturmanızı öneririm.

    Bir çelenk için neye ihtiyacın var?

    WS2811 RGB Tam Renkli 12mm LED Dize DC 5V, Aliexpress'den 20$'a satın alınabilir. Böyle bir çelenkin normal ucu, uzunluğu artırmak için diğerine bağlanabilir. Bu makale ışık desenleri oluşturmak için tasarlanmıştır, bu nedenle elinizde farklı bir protokole sahip programlanabilir bir LED çelenk varsa, programı yeniden yazmanız ve çelengi veri sayfasına göre bağlamanız gerekir.
    Dizinizin çektiği akım için derecelendirilmiş 5 voltluk güç kaynağı. Genellikle satıcı, çelenk tarafından tüketilen akımı gösterir.
    Herhangi bir sürümün Arduino'su. Yazar standart bir Arduino Uno kullandı.
    yeşil akrilik boya
    Yalıtım bandı
    Tel.
    Garland'ı kontrolöre bağlamayı kolaylaştırmak için JST konektörlerinin olması arzu edilir.

    Bir Noel ağacı çelengi kurmaya başlamadan önce, tüm LED'lerin çalıştığından emin olun. İnternette WS2811'i Arduino'ya nasıl bağlayacağınızı bulabilirsiniz.

    WS2811'inizdeki veri sayfasından +5V ve GND pinlerini belirleyin
    Kırmızı = +5V
    Mavi=GND
    Beyaz = Veri

    Bağlantı resimde gösterildiği gibidir.

    Adafruit'in popüler WS2811 Arduino kitaplığını kurun. Kurulum talimatlarını buradan indirebilir ve okuyabilirsiniz:
    Ekteki kodu çelenkinizin uzunluğuna göre değiştirin. #LED_COUNT tanımla. Arduino programını indirip çalıştırın. Piksellerin 5 saniye boyunca kırmızıdan yeşile, maviden beyaza renk değiştirdiğini unutmayın. Bu, piksel içindeki 3 LED'in de iyi durumda olmasını sağlar.

    (indirme sayısı: 1085)

    Voltaj düşüşü değerlendirmesi.

    Her LED pikseli ve ardından bağlanan LED çelenk, bir tür voltaj düşüşüne neden olur. Bu nedenle, LED çelenkinizdeki 50 LED'den sonra, güç kaynağının voltajı gözle görülür miktarda düşecektir. Örneğin, 5v'den 4.7v'ye. Bu, ilkine bağladığınız bir sonraki çelenk 5v'den değil 4,7v'den güç alacağı ve ondan sonraki voltajın daha da düşeceği anlamına gelir. Sonuç olarak, her LED bir öncekinden daha koyu olacaktır. Sonuçta, voltaj 3,3 V'a düştüğünde, WS2811 protokol hizmet çipi çalışmayı durduracaktır.

    Her pikselde 3 LED olduğundan ve çelenk ışığının beyaz rengi, 3 LED'in de aynı şekilde yandığı anlamına geldiğinden, voltaj, örneğin yalnızca kırmızı LED'lerin açık olmasına göre daha fazla düşecektir. Test programını başlattığınızda çelenk uçlarında güçlü bir karartma fark ettiniz mi? Buraya ek bir 5V güç kaynağı bağlayabilirsiniz. Yazar bunu her 100 pikselde bir yaptı

    çelenk boyama.

    Normal Noel ışıkları, ağaçla karışması için yeşile boyanır. LED çelenkinizin farklı renklerde telleri vardır. Çelengi asın ve telleri akrilik boya ile yeşile boyayın, bu biraz zaman alacaktır. WS2811 kasalarını siyah elektrik bandıyla sarın, boyamaktan daha hızlı olacaktır.


    Her pikselin X ve Y konumunu belirleme

    Toplanan çelengi Noel ağacına asın. Bundan sonra, X ve Y'deki her pikselin konumunu hesaplayabilir ve bu verileri program koduna ekleyebilirsiniz. Bunu yapmak için bu dosyayı kodla birlikte kullanın. İlk işlevin açıklamasını kaldır döngü() 10 LED'in bölümlerini aydınlatan. 50'den fazla LED'iniz varsa, istediğiniz sayıyı belirtmeyi hatırlayarak bu bölümü basitçe kopyalayarak genişletebilirsiniz. #LED_COUNT tanımla

    Izgarayı, sol alt LED hücre 1.1'de olacak şekilde kaplamaya çalışın. Bu, programın ağacın ortasını hem X hem de Y yönlerinde belirleyebilmesi için yapılır. X ve Y koordinatlarını girmek manuel bir işlemdir, her bir koordinatı videoyu izleyerek alacaksınız. 200 koordinat kulağa korkutucu geliyor ama 20 dakika kadar sürecek.

    Izgarayı yazdırabilir ve bilgisayar monitörünüze veya telefon ekranınıza yapıştırabilirsiniz, böylece video düzenleyicilerle uğraşmak zorunda kalmazsınız.

    Ekteki dosya, tıpkı önceki dosya gibi, videodaki gibi çeşitli desenler arasında döngü oluşturan bir kod örneğidir.

    (indirme sayısı: 1240)

    Videodan programın mantığını anlayabilir ve kendi şablonlarınızı yazabilir veya kodu kendiniz değiştirebilirsiniz. Ekli diğer dosya, Arduino'nun başka bir cihazdan seri arayüz üzerinden kontrol edilmesini sağlayan bir kurulum dosyasıdır. Yazar, Arduino'yu kontrol etmek için Raspberry Pi'yi kullandı.

    İşte Arduino ve WS2811 kitini kullanan böyle bir Noel çelengi.

    (indirme sayısı: 1132)

    Bu yazımızda basit bir RGB LED ile adreslenebilir bir LED arasındaki fark olan renkli LED'lerden bahsedeceğiz, onu uygulamalar, nasıl çalıştıkları, LED bağlantılarının şematik resimleriyle nasıl kontrol edildikleri hakkında bilgilerle destekleyeceğiz.

    LED'ler, ışık yayabilen elektronik bir bileşendir. Günümüzde çeşitli elektronik cihazlarda yaygın olarak kullanılmaktadırlar: el fenerleri, bilgisayarlar, ev aletleri, arabalar, telefonlar vb. Birçok mikrodenetleyici projesi, LED'leri bir şekilde kullanır.

    İki ana amaçları vardır.:

    Ekipman çalışmasının gösterilmesi veya herhangi bir olayın bildirilmesi;
    dekoratif amaçlı kullanım (aydınlatma ve görselleştirme).

    İçeride LED, tek bir pakette toplanmış kırmızı (kırmızı), yeşil (yeşil) ve mavi (mavi) kristallerden oluşur. Dolayısıyla adı - RGB (Şek. 1).

    2. Mikrodenetleyici kullanmak

    Bununla birlikte, birçok farklı ışık tonu elde edebilirsiniz. RGB LED, bir mikrodenetleyici (MK), örneğin Arduino (Şekil 2) tarafından kontrol edilir.

    Elbette basit bir 5 voltluk güç kaynağı, akımı sınırlamak için 100-200 ohm'luk dirençler ve üç anahtarla idare edebilirsiniz, ancak o zaman parlamayı ve rengi manuel olarak kontrol etmeniz gerekecek. Bu durumda istenilen ışık tonuna ulaşmak mümkün olmayacaktır (Res. 3-4).

    Mikrodenetleyiciye yüzlerce renkli LED bağlamanız gerektiğinde sorun ortaya çıkıyor. Denetleyicinin sınırlı sayıda pimi vardır ve her LED'in üçü renkten sorumlu olan dört pime ihtiyacı vardır ve dördüncü pim ortaktır: LED türüne bağlı olarak anot veya katot olabilir.

    3. RGB kontrolü için kontrolör

    MK çıkışlarını boşaltmak için özel kontrolörler WS2801 (5 volt) veya WS2812B (12 volt) kullanılır (Şekil 5).

    Ayrı bir kontrolör kullanımı ile birkaç MK çıkışını işgal etmeye gerek yoktur, sadece bir sinyal çıkışı ile sınırlandırılabilir. MK, WS2801 LED kontrol denetleyicisinin "Veri" girişine bir sinyal gönderir.

    Bu sinyal, 24 bit renk parlaklık bilgisi (her renk için 8 bitlik 3 kanal) ve ayrıca dahili kaydırma yazmacı için bilgi içerir. Hangi LED bilgisinin adreslendiğini belirlemenizi sağlayan kaydırma yazmacıdır. Böylece, mikrodenetleyicinin bir çıkışını kullanmaya devam ederken birkaç LED'i seri olarak bağlamak mümkündür (Şekil 6).

    4. Adreslenebilir LED

    Bu, yalnızca doğrudan çip üzerinde entegre bir WS2801 denetleyicisi bulunan bir RGB LED'dir. LED'in muhafazası, yüzeye montaj için bir SMD bileşeni olarak yapılır. Bu yaklaşım, LED'leri birbirine mümkün olduğunca yakın yerleştirmenize olanak tanıyarak parlamayı daha ayrıntılı hale getirir (Şek. 7).

    Çevrimiçi mağazalarda, bir metreye 144 adede kadar parça sığdığında adreslenebilir LED şeritler bulabilirsiniz (Şek. 8).

    Bir LED'in tam parlaklıkta yalnızca 60-70 mA tükettiğini düşünmeye değer, örneğin 90 LED'e bir bant bağlarken, en az 5 amperlik bir akıma sahip güçlü bir güç kaynağına ihtiyacınız olacak. Hiçbir durumda LED şeridi kontrolör üzerinden çalıştırmayın, aksi takdirde aşırı ısınır ve yükten yanar. Harici güç kaynakları kullanın (şek.9).

    5. Adreslenebilir LED eksikliği

    Adreslenebilir LED şerit çok düşük sıcaklıklarda çalışamaz: -15'te kontrolör arızalanmaya başlar, daha şiddetli donlarda arızalanma riski yüksektir.

    İkinci dezavantaj, bir LED arızalanırsa, geri kalan her şeyin zincir boyunca çalışmayı reddetmesidir: dahili kaydırma yazmacı daha fazla bilgi iletemez.

    6. Adreslenebilir LED şeritlerin uygulanması

    Adresli LED şeritler, arabaların, akvaryumların, fotoğraf çerçevelerinin ve tabloların dekoratif aydınlatmasında, iç mimaride, yılbaşı süsü olarak vb. kullanılabilir.

    LED şeridin bir bilgisayar monitörü için Ambilight arka ışığı olarak kullanılması ilginç bir çözümdür (Şek. 10-11).

    Arduino tabanlı mikrodenetleyiciler kullanacaksanız, LED şerit () ile çalışmayı basitleştirmek için FastLed kitaplığına ihtiyacınız olacaktır.

    Bu eğitimde, farklı tonlarda bir RGB LED'i açmak için Arduino kartındaki "darbe genişliği modülasyonlu" dijital ve analog çıkışları kullanacağız. RGB LED şerit kullanmak, herhangi bir renk tonuyla iç aydınlatma oluşturmanıza olanak tanır. Tam renkli (RGB) bir LED'in aygıtı ve pin yapısı hakkında konuşalım ve yönergeyi ele alalım #tanımlamak C++ dilinde.

    RGB LED'in cihazı ve amacı

    Tüm gölge paletini görüntülemek için, RGB sentezini kullanan üç renk yeterlidir (Kırmızı - kırmızı, Yeşil - yeşil, Mavi - mavi). RGB paleti sadece grafik düzenleyicilerde değil, web sitesi yapımında da kullanılır. Renkleri farklı oranlarda karıştırarak hemen hemen her rengi elde edebilirsiniz. RGB LED'lerin avantajları basit tasarım, küçük boyutlar ve yüksek ışık çıkışı verimliliğidir.

    RGB LED'ler, farklı renkteki üç kristali tek bir pakette birleştirir. RGB LED'in 4 pimi vardır - bir ortak (anot veya katod en uzun pime sahiptir) ve üç renkli pim. Her renkli çıktıya bir direnç bağlanmalıdır. Ek olarak, Arduino RGB LED modülü doğrudan kart üzerine monte edilebilir ve yerleşik dirençlere sahiptir - bu seçenek daire sınıfları için daha uygundur.

    Fotoğraf. Arduino için RGB LED pin çıkışı ve RGB LED modülü

    RGB LED'in pin yapısı yukarıdaki fotoğrafta gösterilmiştir. Ayrıca birçok tam renkli LED'in difüzör gerektirdiğini unutmayın, aksi takdirde bileşen renkleri görünür olacaktır. Ardından, RGB LED'i Arduino'ya bağlayın ve "darbe genişlik modülasyonu" kullanarak gökkuşağının tüm renkleriyle parlamasını sağlayın.

    Arduino ile RGB LED Kontrolü

    Arduino'daki analog çıkışlar, değişen miktarlarda akım üretmek için "darbe genişliği modülasyonu" kullanır. LED üzerindeki üç renk girişini de 0 ila 255 aralığında farklı bir PWM sinyal değeri ile besleyebiliriz, bu da RGB LED Arduino üzerinde neredeyse her türlü ışık gölgesini elde etmemizi sağlar.

    Ders için aşağıdaki ayrıntılara ihtiyacımız var:

    • kart Arduino Uno / Arduino Nano / Arduino Mega;
    • ekmek tahtası;
    • RGB LED'i;
    • 3 direnç 220 Ohm;
    • teller "baba-anne".

    Fotoğraf. Breadboard üzerinde RGB LED'in Arduino'ya bağlantı şeması

    RGB LED modülü, kablolar ve devre tahtası olmadan doğrudan karta bağlanabilir. Tam renkli RGB LED modülünü aşağıdaki pimlere bağlayın: Eksi— GND, B— Pim13, G— Pim12, R- Pin11 (ilk fotoğrafa bakın). RGB LED (Işık Yayan Diyot) kullanıyorsanız, fotoğraftaki şemaya göre bağlayın. Modülü bağladıktan ve devreyi Arduino'ya monte ettikten sonra taslağı yükleyin.

    Yanıp sönen RGB LED'i için çizim

    #tanımla KIRMIZI 11 // Pin 11'e KIRMIZI adını atayın#define YEŞİL 12 // Pin 12'ye YEŞİL adını atayın#mavi tanımla 13 // Pin 13'e MAVİ adını atayın geçersiz kurulum () ( pinMode(RED, OUTPUT ); pinMode(GREEN, OUTPUT ); // Çıkış için Pin12'yi kullanın pinMode(MAVİ, ÇIKIŞ); // Çıkış için Pin13'ü kullanın) geçersiz döngü() (digitalWrite(KIRMIZI, YÜKSEK); // Kırmızı ışığı aç digitalWrite(YEŞİL, DÜŞÜK); digitalWrite(MAVİ, DÜŞÜK); gecikme(1000); digitalWrite(KIRMIZI, DÜŞÜK); digitalWrite(YEŞİL, YÜKSEK); // Yeşil ışığı aç digitalWrite(MAVİ, DÜŞÜK); gecikme(1000); // Efekti duraklat digitalWrite(KIRMIZI, DÜŞÜK); digitalWrite(YEŞİL, DÜŞÜK); digitalWrite(MAVİ, YÜKSEK); // mavi ışığı aç gecikme(1000); // Efekti duraklat }

    Kod için açıklamalar:

    1. #define yönergesini kullanarak, 11, 12 ve 13 numaralı pinlerin sayısını karşılık gelen RED , GREEN ve BLUE adlarıyla değiştirdik. Bu, eskizde kafa karıştırmamak ve hangi rengi dahil ettiğimizi anlamamak için kolaylık sağlamak için yapılır;
    2. void setup() prosedüründe, pin 11, 12 ve 13'ü çıkış olarak atadık;
    3. void loop() prosedüründe, RGB LED'deki üç rengi de sırayla açıyoruz.
    4. RGB LED'in sorunsuz kontrolü

      Bir Arduino'da bir rgb LED'i kontrol etmek, "darbe genişliği modülasyonlu" analog çıkışlar kullanılarak sorunsuz hale getirilebilir. Bunun için LED üzerindeki renk girişlerinin analog çıkışlara, örneğin pin 11, 10 ve 9'a bağlanması gerekir. Ve bunlara farklı gölgeler için farklı PWM değerleri uygulayın. Modülü erkek-dişi kablolarla bağladıktan sonra çizimi yükleyin.

      Pürüzsüz yanıp sönen RGB LED için çizim

      #KIRMIZI 9'u tanımla // Pim 9'a KIRMIZI adını atayın#define YEŞİL 10 // Pin 10 için YEŞİL isim#mavi tanımla 11 // Pin 11'e MAVİ adını atayın geçersiz kurulum()(pinMode(KIRMIZI, ÇIKIŞ); // Çıktı için Pin9'u kullanın pinMode(YEŞİL, ÇIKIŞ); // Çıkış için Pin10'u kullanın pinMode(MAVİ, ÇIKIŞ); // Çıkış için Pin11'i kullanın) geçersiz döngü() (analogWrite(RED, 50); // Kırmızı ışığı aç analogWrite(YEŞİL, 250); // Yeşil ışığı aç analogWrite(MAVİ, 150); // mavi ışığı aç }

      Kod için açıklamalar:

      1. #define direktifini kullanarak 9, 10 ve 11 numaralı pinlerin sayısını karşılık gelen RED , GREEN ve BLUE adlarıyla değiştirdik. Bu, eskizde kafa karıştırmamak ve hangi rengi dahil ettiğimizi anlamamak için kolaylık sağlamak için yapılır;
      2. analogWrite çıkışları olarak 11, 12 ve 13 numaralı pinleri kullandık.