Arduinoで数百のLEDを制御するにはどうすればよいですか?


10

私は数百のLEDを含むエレクトロニクスプロジェクトに取り組んでいます。(600から700のLEDの上向きに話します...たくさん知っています。)この1つまたは2つのArduinoで多くのLEDを制御する方法はありますか?世界の壁の地図にLEDをプロットしたいので、各LEDに個別にアクセス/制御できるようにしたいと考えています。次に、ArduinoとGoogleアナリティクスをインターフェイスさせ、誰かが世界の特定の場所から私のサイトに移動すると、その地域に最も近いLEDがほぼリアルタイムで点灯します。

任意の助けいただければ幸いです。ありがとう!私はいくつかを調査して多重化とチャーリープレックス化について読んでみましたが、それらは最大で100程度になりそうですか?これだけの数のLEDを制御するには、外部のハードウェア/コンポーネントが必要だと思いますが、これを実現するにはどうすればよいですか?これほど大きなLEDマトリックスを作成した人はいますか?

回答:


9

多数のLEDを個別に多重化する場合、一般的な方法はN x Mマトリックスを使用することです。時間はNステップに分割され、各ステップで、N行行の1つ、および有効にするLEDに対応する列行をアクティブにします。行ラインはそれぞれLED電流のM倍を運ぶことができることに注意してください。これは、ある程度のバッファリングを要求します。各LEDは1 / Nの時間だけオンになるため、通常の明るさを維持するには、電流をN倍にする必要があります。ほとんどのLEdはこれを好みません。チャーリープレックスは、大きな電流が含まれるため、この状況では実用的ではありません。

あなたの質問から、一度に1つのLEDのみを有効にしたいのですか?その場合、Charlieplexingには何の問題もありません。31個のI / Oピンを備えたuCは、900個のLEDを駆動できます。制約のような音は悪夢になります...


5年後の更新:手元にあまりにも多くの時間がある場合、通常の多重化またはCharlieplexingは素晴らしいですが、私が今数百のLEDを制御しなければならなかったとき、WS2801 LEDの長いストリップを購入します。


追加するものがあると思います。大電流が問題になる場合は、高電圧を使用してください。9vに似ていますが、非常に短時間で10mSで、正しく計算されたデューティサイクルです。また、LEDランプの寿命を延ばします。
スタンダードサンドゥン2012年

LEDによる電圧降下は固定されており、Arduinoの出力電圧もそうです(5Vのように、一部のタイプでは3.3V)。デューティサイクルを小さくして電流を大きくすると、LEDの寿命が短くなります。
Wouter van Ooijen 2012年

9

安価ですぐに見つけられる74HC595(または同様の)シフトレジスタを使用して、arduinoから数本のピンを使用するだけで数百のLEDを簡単に制御できます。

Arduinoサイトには、これに関するチュートリアルさえあります!

74HC595によるシリアルからパラレルへのシフトアウト

シフトアウトと595チップ

Arduinoボードのピンが不足して、シフトレジスタで拡張する必要がある場合があります。この例は74HC595に基づいています。データシートでは、74HC595を「出力ラッチ付きの8ビットシリアルイン、シリアル、またはパラレルアウトシフトレジスタ;トライステート」と呼んでいます。つまり、これを使用して一度に8つの出力を制御しながら、マイクロコントローラーで数ピンを使用することができます。複数のレジスタをリンクして、出力をさらに拡張できます。


それは多くのシフトレジスタになりますが、それは機能します:)約88(チップあたり700リード/ 8リード)シフトレジスタと1 mcuだけが必要です。
ヨハン

1
追加のロジックドライバーを忘れないでください。88個の入力を処理するのは非常に多くなります。
Ignacio Vazquez-Abrams 2014

2

私はこれをモジュール方式で構築します。Maximの6960は64のLEDを駆動しますが、少し高価です。これらはシリアルインターフェイスで駆動され、最大256を接続できます。

7218/7221も機能します。


2

この質問に対する少し遅い回答ですが、ここでは、単一のPICAXE 40X2から528個のLEDチャーリープレックスを使用しています。すべてのピンがジョブ専用であった場合、最大930個のLEDになります。

ビルド:http : //www.picaxeforum.co.uk/entry.php?25- The-PICaxe- orrery

動画:http : //www.youtube.com/watch?v=82LvqiaH-iA

PICAXEアーキテクチャは非常に遅いため、フリッカーが問題になる前に、同時に点灯できるLEDの最大数は約15に制限されています。より高速なプロセッサと賢いプログラミングにより、この数は大幅に増加します。


1

私の答えが良いかどうかはわかりません...しかし、なぜWS2811のアドレス可能なledストライプについて話さないのですか?

テキストを表示するためにLEDマトリックスを作成したいと考えています。ここにプロジェクトがあります(https://www.pjrc.com/teensy/td_libs_OctoWS2811.html)。これは、Arduinoとほぼ同じである、Teensyで作成されました。

PWM(パルス幅変調)の概念を使用しているため、複雑なデータを1本のワイヤでLEDストライプに送信できると思います。

繰り返しますが、私の答えが良いかどうかはわかりません...


問題は、必要なタイミングにより、連鎖できるLEDの数が制限され、それらを複数の連鎖に分散すると、全体の処理時間が長くなることです。
Ignacio Vazquez-Abrams 2014

0

ここでの最近の質問で、多くのLEDを駆動することについて少し話し合いました。私の答えは、あなたの問題に直接当てはまるようです。ここで答えを見てください:

LEDを長距離で駆動


4
該当する情報を持ち出して、この質問に合わせて調整できますか。回答が両方で完全に機能する場合は、完全に重複していることを示しています。
Kortuk 2012

0

Arduino Unoを備えた74H595シフトレジスタのhttp://bildr.org/?s=shift+registerにある情報に基づいて 、「これらの1000がチェーンされている場合」、LEDディスプレイでプロジェクトが開始されました。 320 LED。100個を超えると、LEDのちらつきがひどくなり、最終的にArduinoを揚げました。

それで、74H595のブレイクアウトボードを販売してくれたSparkfunのテクニカルサポートと話しました。彼は、一度に5つまたは6つのLEDしかオンにできないと言いました。そのため、BLDRの記事を読み返して、74H595 / Arduinoを使用して何千ものLEDを制御できることを認識しましたが、一度に数十個しか使用できないことに気づきました。(これは、Arduinoが5ボルトの出力で200mAを許容し、各LEDが20mAを消費するため、約10で安全に電力が供給されるため、理にかなっています)

1mAの電流でオンにできるトランジスタが確認されています。もしそれが、電圧/電流コレクターからエミッターへの流れがはるかに高いトランジスターを制御する回路を設計することができるなら、それは本当です。次に、Arduino / 74H595の組み合わせを使用して、より高い電流の回路内のトランジスタを制御できます。

ダラスのアレン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.