Arduino (lar) ile birkaç yüz led'i nasıl kontrol edebilirim?


10

Yüzlerce LED içeren bir elektronik proje üzerinde çalışıyorum. (Altı ila yedi yüz LED'den bahsediyoruz ... çok, biliyorum.) Bu LED'leri bir veya birkaç Arduinos ile kontrol etmenin herhangi bir yolu var mı? Yapmak istediğim şey LED'leri dünyanın bir duvar haritasına çizmek olduğu için her bir LED'e ayrı ayrı erişmek / kontrol etmek istiyorum . Daha sonra Arduino'yu Google Analytics ile arayüzleştireceğim ve birisi siteme dünyanın belirli bir yerinden gittiğinde, bölgelerine en yakın LED neredeyse gerçek zamanlı olarak yanacaktır.

Herhangi bir yardım mutluluk duyacağız. Teşekkürler! Bazı araştırma ve çoklama ve charlie-pleksing hakkında okumaya çalıştım, ama bu 100 ya da öylesine max gibi görünüyor? Bu kadar çok LED'i kontrol edebilmek için harici donanıma / bileşenlere ihtiyacım olacağını varsayıyorum, ancak bunun gerçekleşmesi için tam olarak neye ihtiyacım olacak? Daha önce hiç kimse bu kadar büyük bir LED matrisi yarattı mı?

Yanıtlar:


9

Çok sayıda LED'i tek tek çoğalttığınızda, ortak yol bir N x M matrisi kullanmaktır. Zaman N adımına bölünür, her adımda N satır satırından birini ve etkinleştirmek istediğiniz LED'lere karşılık gelen sütun satırlarını etkinleştirirsiniz. Satır çizgilerinin her birinin M'nin LED akımını M taşıyabildiğini unutmayın, bu da biraz tamponlama ister. Her bir LED sadece 1 / N süredir, bu nedenle normal parlaklığı korumak için mevcut N-katını artırmanız gerekir. Çoğu LE bundan hoşlanmıyor. Bu durumda büyük akımlar nedeniyle charlieplexing pratik değildir.

Sorunuzdan, aynı anda yalnızca 1 LED'i etkinleştirmek istediğinizi anlıyor musunuz? Bu durumda Charlieplexing ile ilgili yanlış bir şey yoktur. 31 I / O pinli bir uC, 900 LED'i çalıştırabilir. İnşaa kabus gibi geliyor ...


5 yıl sonra güncelleme: Normal çoklama veya Charlieplexing, çok fazla zamanınız olduğunda güzel, ancak şimdi 100'lü LED'leri kontrol etmek zorunda kaldığımda şimdi uzun bir WS2801 LED şeridi satın alırdım.


Sanırım ekleyecek bir şeyim var. Yüksek akım problemi varsa, yüksek voltaj kullanın. 9v gibi ama çok kısa bir süre için 10mS ve doğru hesaplanmış görev döngüsü. LED lambaların ömrünü uzatmak için de kullanılır.
Standart Sandun

Bir LED tarafından düşürülen voltaj sabittir ve Arduino'nun çıkış voltajı da (bazı tip 3.3V için muhtemelen 5V). Daha küçük bir görev çevrimi ile daha yüksek bir akım kullanmak genellikle LED ömrünü azaltır .
Wouter van Ooijen

9

Arduino'dan sadece birkaç pim kullanarak yüzlerce LED'i kolayca kontrol etmek için ucuz ve kolayca bulunabilen bir 74HC595 (veya benzeri) kaydırma yazmacını kullanabilirsiniz.

Hatta Arduino sitesinde bu konuda bir öğretici var!

74HC595 ile Seri - Paralel Geçiş

Dışarı Kaydırma ve 595 yongası

Bazen, Arduino kartınızdaki pinleriniz bitebilir ve vardiya kayıtları ile genişletmeniz gerekebilir. Bu örnek 74HC595'e dayanmaktadır. Veri sayfası, 74HC595'e "8-bit seri giriş, seri veya paralel çıkış kaydırma yazmacı; 3 durumlu" olarak atıfta bulunur. Başka bir deyişle, mikrodenetleyicinizde yalnızca birkaç pimi kaparken aynı anda 8 çıkışı kontrol etmek için kullanabilirsiniz. Çıktınızı daha da genişletmek için birden fazla kaydı birbirine bağlayabilirsiniz.


Bu vardiya kayıtları bir sürü olurdu, ama işe yarayacak :) Yaklaşık 88 (çip başına 700 leds / 8 leds) vardiya kayıtları ve sadece 1 mcu gerekir.
Johan

1
Ek mantık sürücülerini unutmayın, çünkü 88 giriş işlenecek çok şey var.
Ignacio Vazquez-Abrams

2

Bunu modüler bir şekilde inşa ederdim. Maxim'in 6960'ı biraz pahalı olsa da sizin için 64 LED sürecek. Seri bir arayüzle çalıştırılır ve 256 taneye kadar bağlayabilirsiniz.

7218/7221 de işe yarayacaktı.


2

Bu soruya biraz geç cevap, ancak burada 528 LED Charlieplexed tek bir PICAXE 40X2. Tüm pinler işe adanmışsa 930 LED'e kadar çıkacaktır.

Yapı: http://www.picaxeforum.co.uk/entry.php?25-The-PICaxe-orrery

Bir video: http://www.youtube.com/watch?v=82LvqiaH-iA

PICAXE mimarisi oldukça yavaştır, bu nedenle aynı anda yakılabilen maksimum LED sayısı, titreme bir sorun haline gelmeden önce yaklaşık 15 ile sınırlıdır. Daha hızlı bir işlemci ve akıllı programlama bu sayıyı önemli ölçüde artıracaktır.


1

Cevabımın iyi olup olmadığından emin değilim ... ama neden WS2811 adreslenebilir led şeritleri hakkında konuşmuyorsunuz ??

Metni göstermek için bir LED matrisi yapmak istiyoruz. Burada, bir Arduino ile aynı şey olan bir Teensy'de yapılan bir proje var ( https://www.pjrc.com/teensy/td_libs_OctoWS2811.html ).

Bence PWM (Darbe Genişliği Modülasyonu) kavramını kullanıyor ve böylece tek bir tel ile led şeritlerine karmaşık veri göndermeye izin veriyor.

Ama yine de, cevabımın iyi olup olmadığından emin değilim ...


Sorun, gereken zamanlamanın birlikte zincirleyebileceğiniz LED sayısını sınırlaması ve bunları birden fazla zincire yaymak genel işlem süresini artırır.
Ignacio Vazquez-Abrams

0

Buradaki son soruya birçok LED sürmekle ilgili güzel bir tartışma yaptık. Oradaki cevabım burada sorununuza doğrudan uygulanabilir gibi görünüyor. Cevabı burada görebilirsiniz:

Uzun mesafelerde sürüş LED'leri


4
Uygulanabilir bilgileri getirebilir ve bu soruya uyarlayabilir misiniz, cevabınız her ikisi için de mükemmel çalışıyorsa, bu tam bir kopya işaretidir.
Kortuk

0

Bir Arduino Uno ile 74H595 vardiya kaydındaki http://bildr.org/?s=shift+register adresindeki bilgilere dayanarak, 'bunlarla birlikte 1000 tane zinciriniz varsa' diyen bir LED ekranda bir proje başlatıldı 320 LED. 100'den fazla LED aldığımda kötü titreme var ve sonunda Arduino kızartıldı.

Bu yüzden bana 74H595 için dağıtım panolarını satan Sparkfun'daki teknik destekle konuştum. Bir seferde yalnızca beş veya altı LED'inizin yanabileceğini söyledi. Bu yüzden geri döndüm ve BLDR'deki makaleyi tekrar okudum ve 74H595 / Arduino kullanarak binlerce LED'i kontrol edebileceğinizi fark ettim, ancak herhangi bir zamanda yalnızca bir düzine kadar var. (Bu mantıklıdır çünkü Arduino 5 volt çıkışına 200mA'ya izin verecektir ve her LED 20mA çeker, böylece yaklaşık on tanesi güvenli bir şekilde güç verecektir)

1mA akım ile açılabilen transistörler görülmüştür. Bu doğruysa, yayıcı akışına çok daha yüksek voltaj / akım toplayıcısına sahip transistörleri kontrol eden bir devre tasarlayabiliyorsa. Daha sonra Arduino / 74H595 kombinasyonunu daha yüksek akımlı bir devrede olan transistörleri kontrol etmek için kullanabilirsiniz.

Allen in Dallas

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.