Bir arduino kaç tane ışık kontrol edebilir


19

LED'leri kontrol etmek için normal bir Arduino kartı kullanmak istiyorum - tahtadan ayrı ayrı kontrol edebileceğim en fazla ışık nedir?

Nasıl bağlanılacağına dair bir eğitim var mı?


3
Bir veya daha fazla led'i kontrol etmek isteyip istemediğinizi belirtmeniz gerekir. Ayrıca, "seri kontrol ve ek IC'ler kaçınarak" ekleyecek. Yenileme hızı veya donanım parçaları kısıtlama değilse cevap sonsuz olma eğilimindedir.
ppvi

Yanıtlar:


26

Charlie-plexing N hatlarının N * (N-1) LED'lerini kontrol ettiğine inanıyorum. Wikipedia hakkında iyi bir makale var.

Bir arkadaşım Jimmie P. Rodgers, Arduino Shield'e 126 LED yerleştirdi. LED'leri kontrol etmek için charlie-plexing kullanıyor. Tahtasındaki bazı bilgiler - jimmieprodgers.com/2009/12/my-development-process/ (archive.org kopyası)


Son Boston Arduino Kullanıcı Grubu toplantısında Jimmie P. Rodgers etiketli ağları olan bir matris olarak Charlie-pleksleme diyagramı çizdi. Bu şekilde çizilen şemalar, kavramı iletmek için iyi bir iş yapmış gibi görünüyordu. Birkaç benzer şema oluşturdum - Bkz. Http://wiblocks.luciani.org/FAQ/faq-charlie-plex.html


bugün yeni bir şey öğrendim; benim upvote var :-)
JonathanD

4
Bu yöntemle aynı anda yalnızca N-1 LED'lerin yanabileceğini unutmayın.
AngryEE

2
Bu jimmieprodgers.comyanıttaki bağlantı virüslerle dolu.
Vivek Maharajh

1
@vivekmaharajh: Bağlantıyı orijinal sayfanın archive.org kopyasına bir bağlantıyla değiştirdim.
Dave Tweed

13

Tek bir seri akıştan istediğiniz sayıda paralel çıktı almak için Shift Registers ( http://en.wikipedia.org/wiki/Shift_register ) kullanabilirsiniz.

Güç kısıtlarınızla ilgilenmeniz gerekecek. Aslında hiçbir zaman bir Arduino kullanmadım ama bunun PIC'lerin yaptığı gibi mevcut bir sınırı olduğunu varsayıyorum. Ayrıca, vardiya kayıtları kendileri için bir akım sınırına sahip olacaktır. Bunun içine girerseniz, doğrudan mikro denetleyicinizden çok fazla güç çekmeden LED'leri kontrol etmenizi sağlamak için MOSFET gibi bir şey kullanmaya bakmanız gerekir.


7

Herhangi bir AVR mikrodenetleyici piminin 40 mA'ya kadar kaynak yapmasına izin verilir ve çip tarafından kaynaklanan veya batırılan toplam güç kaynağının (yani, yer ve Vcc pimlerinde) 200 mA'nın altında olması gerekir.

Charlieplexing, çok sayıda LED'e ihtiyaç duyduğunuz, ancak aynı anda yalnızca bir LED yanarak geçebileceğiniz durumlar için mükemmel bir çözümdür . Standart bir Arduino kartı (Duemilanove gibi), TX, RX, Reset veya pim 13'ü saymayan 17 "ücretsiz" G / Ç pini sağlar. Böylece 17 * 16 = 272 LED'i bağlayabilirsiniz. Bu, özellikle bir LED'i yanıyor veya birkaç tanesini hızlı bir şekilde tarıyorsanız iyi çalışabilir. Ancak tüm matrisi bir desenle aydınlatmaya çalışıyorsanız, her birinin 1/272 oranında açık (biraz daha az) olduğunu görürsünüz, bu nedenle sürücü akımınız herhangi bir anda 30 mA ise, her LED ortalama akım yaklaşık 0.1 mA - oldukça loş olacaktır.

Bu kadar LED'e ihtiyacınız yoksa daha fazla parlaklığa ihtiyacınız varsa, geleneksel çoklama daha iyi bir seçenek olabilir. Bu durumda, bazı satırlarınızı satır olarak, bazıları da matristeki sütun olarak kullanırsınız. 10 mA LED akımı kullanırsanız, bir satırdaki 4 LED'in hepsinin aynı anda açık olabileceği ve satırları tarayabileceğiniz 4 sütun ve 13 satırlık bir matris tanımlayabilirsiniz. Daha sonra her sıra 10 mA akımda zamanın 1 / 13'ünde, bu nedenle ortalama LED akımı 0,76 mA kadar yüksek olabilir, ancak sadece 4 * 13 = 104 LED alırsınız. (LED başına kesinlikle charlieplexing'e göre daha parlaktır.)

Son örnekteki sınır AVR üzerindeki pim başına 40 mA'dır - çünkü her sıra tahrik pimi 4x10 = 40 mA kaynaktır. Harici transistörlerin (ucuz ve küçük olabilen) sıra çıkışlarına eklenmesine izin verirseniz, bu sınırdan kaçınabilir ve daha parlak olabilirsiniz. Örneğin, 8 satır ve 9 sütun, 72 LED ile 8x9 bir dizi oluşturabilirsiniz. 8 sıradan biri, transistör aracılığıyla seçilen bir seferde açıktır. Belirli bir sıradaki 9 LED'in tümü aynı anda açık olabilir, 20 mA ile çalıştırılabilir, böylece transistörden 180 mA gelir ve AVR'nin akım sınırlarının altında kalırsınız. LED başına ortalama akım şimdi 20 mA / 8 = 2.5 mA - genellikle makul derecede parlak.


6

Burada, 8x8x8 LED küp çalıştırmak için Arduino kullanma hakkında bir bölüm içeren çok güzel, ayrıntılı bir öğretici var . (Sahip oldukları YouTube filmini kaçırmayın)

resim açıklamasını buraya girin


Minneapolis'teki UFO sergisinde 1979 ya da civarında gördüğüm bir şey gibi görünüyor, ancak 4096 minyatür ampulün bir yerinde olduğunu hatırlıyorum. Başka biri böyle bir şey gördüğünü hatırlıyor mu?
supercat

4

SPI veya I2C veriyolları kullanan birçok I / O Genişletici var. Tek bir MSSP modülü ile LED'ler gibi neredeyse sonsuz miktarda dijital çıkışı kontrol edebilirsiniz.

Aşağıdaki parçalar için Mikroçip veri sayfalarına veya uygulama notlarına bakın:
SPI - MCP23S08
I2C - MCP23008


1

17 I / O pimi, on yedi NPN transistör (akımı artırmak için emitör takipçileri), 1/17 görev döngüsünde keyfi kombinasyonlarda 272 LED'i gösteren, ortalama akım veya 0,7 mA (200mA / 272) ile sınırlandırılmış özel bir sorun olmamalıdır. çipin bir seferde 200mA'yı çekme yeteneği. 0.7 voltluk bir düşüş elde etmek için bir diyot eklemek, diğer 17 LED'in eklenmesine izin verecektir (görev döngüsünü 1/18'e düşürür), ancak parlaklık diğerleriyle tam olarak eşleşmeyecektir.


Burada ne tür bir devre önerdiğinizi açıklığa kavuşturabilir misiniz? Yayıcı takipçisi bir BJT topolojisidir.
Kevin Vermeer

@reemrevnivek: Yukarıdaki düzenlemeye bakın. Zihinsel olarak birkaç varyasyon etrafında fırlatıyordum ve birlikte karıştılar. Biri yüksek taraf sürücüyü artırmak için transistörler ekliyor, ancak düşük taraf sürücüyü değil ise, BJT'ler olmalıdır. Eğer ikisi de transistör kullanıyorsa, mosfetler daha iyi olabilir.
Supercat

0

Windell Oskay, daha fazla transistör eklemeden 104 LED'in maksimum olduğu konusunda iyi bir argüman yaparken, Tom Igoe doğrudan tek bir Arduino Mega tarafından kontrol edilen 128 LED'lik bir matrisin fotoğraflarını yayınladı - ayrı veya entegre ekstra transistör yok.

Tom Igoe, veri sayfasında listelenen "pim başına mutlak maksimum akımı" kısaca aşarak "aldatıyor" mu?


2
Hayır, bir arduino mega kullanarak hile yapıyor. :) Mega normal bir arduinodan çok daha fazla IO pinine sahiptir.
Christopher Biggs

@unixbigot - Üzgün, LED sürüş veya diyot düşme kullanımı için sıfırlama piminin yeniden kullanılmasını içeren serin bir kesmek görmeyi umuyordum ..
Kevin Vermeer

1
Bağlantınız öldü ve muhtemelen Windell Oskay'ın cevabına bağlanmalısınız . Gönderdiğinizde önemli görünmeyebilir, ancak daha fazla yanıt göründükçe, gönderiniz diğerinden uzak hale gelir.
Kevin Vermeer

@KevinVermeer: ​​Orijinal sayfanın archive.org kopyasına işaret ederek bağlantı düzeltildi.
Dave Tweed
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.