RGB LED'leri kablolama


13

Adafruit şeridine benzeyen 8 ayrı RGB led'in bağlanmasının mümkün olup olmadığını merak ediyordum . Pumpkin Pi projesini gördüm ve bir tane inşa etmek istiyorum. Sarı veya kırmızı LED'lerim yok, ancak RGB'lerden küçük bir stokum var.

Ben RGB katotlara 270ohm dirençleri kullanmak ve bir ölçekte her parlaklığı kontrol ediyorum Arduino bildiğim 0için 255.

Bunu Raspberry Pi'de yapmanın bir yolu var mı?


Güncelleme


Bu yüzden biraz daha araştırıyorum. TLC5940LED Sürücüsünü kullanma fikrini aldım .

Şimdi tekrar yardım istiyorum. Sonunda bunu çözen 1 uzun soru düşündüm ve stackexchange boyunca dağılmış bir demet daha iyi. Şimdi kablolama kısmı geliyor. Bir kullanıyorum arduino kablolama öğretici kafamda şekilde olduğumdan beri bir başlangıç olarak. Ayrıca veri sayfasına da başvuruyorum . Diyagram pinine göre 27 or VPRGbeni karıştırıyor. Arduino diyagramı topraklanmış, bu yüzden topraklıyorum. . . Bunu pi'ye doğru bir şekilde nasıl bağlarım? Ayrıca dirençlere de ihtiyacım olduğunu tahmin ediyorum ...

Bu gerçekten aptalca geliyorsa özür dilerim, ama ben bu işe yeni başlayan biriyim. Yürümeden önce taramayı öğrenmelisin.

Bu kablo şemasını ( fritzing ) düzeltmek için ne yapmam gerekir ?

Kablolama fzz dosyasını google'dan buradan indirebilirsiniz . TLC5940

resim açıklamasını buraya girin


Güncelleme 2 - yorumdan sonra


Bazı cevapları ve yorumları dikkate alarak bu bağlantı şeması olurdu? 330ohm anot. Pim için 2k ohm 20. Girişler pi'den çipe nasıl geçer? resim açıklamasını buraya girin


Kabak pi Ooohhh =: 0
Piotr Kula

Birkaç şeyi açıklar mısın? 8 RGB LED'in tüm kırmızı, yeşil ve mavi LED'lerini (24 çıkış alacak, böylece TLC5940 tarafından sağlanan 16'dan 8 daha fazla) sürmek istiyor musunuz? Hangi RGB LED'leri kullanıyorsunuz? Ortak anot veya ortak katot olup olmadıklarını bilmeliyiz (kablolarınız, sadece akımı batırabilen bir TLC5940 ile çalışmayan ortak katot gibi görünüyor. Ortak katot farklı bir çipe ihtiyaç duyacaktır). Ayrıca mavi 3.3V kullanarak açılmayabilir, bu nedenle 5V gerekir. Yüzey montajı değil, delik elektroniği (örn. DIP) yoluyla olmalıdır. Bir yerine 3 çip kullanıp kullanmadığınızı önemsiyor musunuz?
gbulmer

@gbulmer Üzgünüm. LED'lerin geldiği pakete sahip değilim, ancak ortak katotta arduino'da onları yakmak için doğru olduğunu düşünüyorum YÜKSEK yazdım. Bu gece radyoskoptan bazı Ortak Anot alacağım. 5 TLC5940 çipim var ve hepsini kullanmam umurumda değil. DIP ile gitmemizin nedeni bir breadboard kullanmaktır (bebek adımları). Çalıştırdıktan sonra yüzey montajına geçeceğim.
atrueresistance

Yanıtlar:


4

Bu soruda ele alınması gereken iki şey görüyorum:

  1. TLC5940 ile bağlantı ve iletişim kurma

  2. TLC5940'a kadar LED'ler nasıl bağlanır .

İlk bölüm için, Raspberry Pi'nin P1 başlığının i2c pinlerine (3 (veri) ve 5 (saat) pinleri) bağlamanız gerekecektir. Daha sonra TLC5940'ın VCC'si için pim 1'i (3,3 V) kullanabilirsiniz . Veri sayfasına göre giriş için 3 V ila 5,5 V önerilir. Ayrıca P1'den (örn. Pin 5) bir topraklama pimini TLC5940'ın GND'sine bağlamak isteyeceksiniz . Ve bağlanmak için ek bir GPIO (örn pim 7) gerekecektir TLC5940 kaydırma yazmacının değeri mandal 'ın XLAT sinyali.

Sonra Pi i2c iletişim için kurulum gerekecektir: varsayarak raspbian silme, i2c-bcm2708gelen /etc/modprobe.d/raspi-blacklist.confve yüklemek i2c-devve almalısınız /dev/i2c-0ve /dev/i2c-1( i2c-1Model B Rev. 2 Pis için kullanmak gerekecektir budur).

Son olarak, dahili kaydırma yazmacının değerini ayarlamak için bir i2c işlemi kullanmanız ve ardından XLAT'ı işaret etmeniz gerekir (pin 7 kullanılıyorsa, GPIO 4'tür).

Ayrıca GSCLK pinini de gözden kaçırdım. Dahili sayacın gerçekte artması için bir saat girişi sağlamanız gerekir; bu, doğru yapılandırılmışsa başka bir GPIO hattından yapılabilir. Ayrıca 3.3 V rayın bu uygulama için yeterli akım sağlayacağını sanmıyorum ( maks . 50 mA ). 5 V rayına geçerseniz, ~ 300 mA'ya kadar çekebilirsiniz , ancak i2c için (ve GSCLK) daha fazla bileşen gerektiren 5 V mantık kullanmalısınız.

İkinci kısım için, yanlış anladığım sürece, geçmiş Arduino projelerinden birini ele aldığınız anlaşılıyor mu?


6

Evet. Her parlaklık ölçeğini kontrol etmek için PWM modunda GPIO pinlerini kullanırsınız. Wiring.org.co adresinden kablolama örneği . Gordons Project'in GPIO yardımcı programı ve kılavuzları başlamak için başka bir yer

resim açıklamasını buraya girin

Düzenle

Alex Chamberlain'in belirttiği gibi , sadece bir GPIO pimi PWM'yi destekler. Diğer GPIO pinlerinde PWM elde etmek için yazılımı kullanabilirsiniz. C & Python için bilgi ve örnekler .

Pumpkin Pi projesi sadece turuncu ışık gerektirdiğinden, bu aşırıya kaçabilir. RGB stokunuz varsa ve deneme süreniz varsa, RGB'de tek bir LED rengini aydınlatabilir ve üçüncül renkler oluşturmak için bunları başkalarıyla karıştırabilirsiniz. 2 kısım kırmızı ile 1 kısım yeşil arasındaki oran turuncu olarak görünür. Kırmızı LED'lerin yarısını açıp turuncu renkte sarıya titreme yanılsaması yaratabilirsiniz. Ama bu bir renk teorisi ; ki, ben denemedim.


1
Sadece bir PWM çıkışı yok mu?
Alex Chamberlain

İyi soru. eLinux , tüm GPIO pinlerinin PWM için yeniden yapılandırılabileceğini iddia ediyor; ancak, Genel Kablolama İşlevleri yalnızca GPIO-1'in (pin 18) PWM'yi desteklediğini belirtir. Bölüm 6.2 Alternatif Fonksiyon Atamaları ait BCM2835 listesindeki tüm PWM pimleri; ki pi'nin GPIO'sunda sadece bir tane var.
emcconville

ELinux makalesi kötü yazılmış; aşağıda biraz daha iyi.
Alex Chamberlain

1
GPIO pinleri, LED'leri doğrudan sürmek için gerçekten yeterli kaynağı kaynaklayamaz veya
batıramaz

1

TLC5940 gibi bir şey , birden fazla PWM'd LED'i sürmenin iyi bir yoludur

Ayrıca kontrol TCA6507 içinde "eğlence ışıkları Programlama" o DIP mevcut olmasa da, appnote

Düzenleme: TLC5940 üzerindeki VPRG pinini toprağa bağlı tutmak iyidir. Bu, LED'lerinizdeki değişiklikleri telafi etmek için "nokta düzeltmeyi" kullanamayacağınız anlamına gelir. Bir grup LED'iniz varsa ve bir sonraki karmaşıklık düzeyine gitmek istiyorsanız, eşit şekilde yanmasını sağlamak için nokta düzeltmeyi kullanabilirsiniz.

Çıkış akımını ayarlamak için pim 20 üzerindeki 2k direnç gereklidir.

I ÇIKIŞ = 3.96 * R IREF
Düzenli LED'ler genellikle 20mA'dır, böylece formül direnç için 2k verir


0

Bu, birisinin TLC5940'ı bir AVR ile nasıl kullanacağı konusunda gerçekten yararlı bir yazıdır: https://sites.google.com/site/artcfox/demystifying-the-tlc5940

TLC5940 ile çalışan kodların nasıl yazıldığını öğrenme sürecini öğrenmek için oldukça yararlıdır.

Örnek kodun ilk sürümü oldukça geneldir. Tüm #define ifadeleri ve düşük seviye fonksiyonları Raspberry Pi üzerinde çalışacak bir şey dönüştürmek üzerinde çalışıyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.