少ないGPIOピンで多くのLEDを制御する


12

このガイドを使用して、ハードウェア「hello world」を正常に完了しました。

http://www.raspberrypi-spy.co.uk/2012/06/control-led-using-gpio-output-pin/

今、私はより大きくて明るいもの、より個別に制御されたLEDに移りたいと思います!明らかに、次のステップは電圧源をRaspberry Piから移動し、LEDを追加することですが、最終的にはGPIOピンがなくなるため、今必要なのは何らかの形でわかる回路を制御することです、GPIO「コード化信号」に基づいて、どのLEDをオンおよびオフにするか。どのような回路の例を探しますか?さらに重要なことは、Raspberry Piに対して、それまたはrpi.gpioは、おそらく信号のタイミングに関する問題を引き起こす可能性がありますか?


マルチプレックスは、PWMを使用してGPIOをさらに削減するか、最小限のGPIOで大規模なアレイを作成することにより、視覚の永続性とともに、使用する必要があるGPIOの数を根本的に削減します。これはすでにここで回答されています。
ピョートルクラ

回答:


13

その場合にあなたが探しているのはLEDマトリックスです。このマトリックスはGPIOピンから制御できますが、それでも接続できるLEDの量(マトリックスのサイズ)を制限し、注意しないと電流を流し始める可能性があります。

より良いオプションは、1つまたは複数のI2C I / Oエクステンダーを使用して、LEDマトリックスをI2Cバスに接続することです。これにより、巨大なサイズのマトリックスを作成できます(たとえば、16個の16ビットI / Oエクステンダーで64個のLEDを作成できます)。これらのI / Oエクステンダーを使用するもう1つの理由は、これらのI / Oエクステンダーがもう少し堅牢であり、電流を少し増やすことができ、メインCPUを害から守ることです。

このサイトでは、これらのI / Oエクステンダーについて複数回説明しているため、これらについての情報は非常に簡単に見つけることができます。このリンクは、これらのエクステンダーとマトリックスに関する情報を提供します(ただし、入力に使用されますが、基本的には同じ考えですが、マトリックスを使用してスキャンするのではなく、LEDを操作します)

スムーズな作業マトリックスを作成するための追加要件は、RPiが各LEDを毎秒少なくとも20回更新できるようにマトリックスを大きくする必要があることです。そうしないと、ちらつきが見られますが、これも説明されています最初のリンク(段落「視覚の多重化と持続性」)。


これは非常に興味深いです。読んでくれてありがとう!エクステンダーに移行する準備ができる前に、GPIOピンを使用して小規模でこれを試すことができます。GPIOピンを使用していくつかのテストを実行しましたが、これまでのところ、満足のいく多重化を得ることができました。Piを使用して外部電流を切り替えるだけなので、電流について心配する必要はありません。これはうまく拡張できますか?おそらくそうではありませんが、私はとにかくレッスンのためにここにいます!
SkyNT

3

MCP23017I²Cポートエクスパンダーを使用して、このタイプのことを行いました。このリンクに従って、ラズベリーパイのサンプルコードを見つけてください。多重化を行う必要なく、チップあたり16個のLEDと8個のチップを駆動できます。

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