工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduinoを使用した48x8スクロールLEDマトリックス。

コンポーネントと消耗品

>
Arduino UNO
× 1
74HC5958ビットシリアルからパラレルへのシフトレジスタ
× 7
抵抗475オーム
× 56
>
オスヘッダー40位置1行(0.1 ")
× 2
>
メスヘッダー8位置1行(0.1 ")
× 21
汎用PCBボード6 "x4"
× 4
8X8LEDマトリックス
× 6
BC548トランジスタ
× 1

必要なツールとマシン

>
はんだごて(汎用)
ホットグルーガン(汎用)
Digitent Mastech MS8217 Autorange Digital Multimeter

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

みなさん、こんにちは!

このプロジェクトは、ArduinoUNOと74HC595シフトレジスタを使用して48x8のプログラム可能なスクロールLEDマトリックスを作成することを目的としています。

これは、Arduino開発ボードを使用した最初のプロジェクトでした。それを作ることを試みることは私の先生によって私に与えられた挑戦でした。そのため、このチャレンジを受け入れた当時、私はarduinoを使用してLEDを点滅させる方法すら知りませんでした。ですから、初心者でも少しの忍耐と理解でこれができると思います。私は回路図をオンラインで見つけました、そしてそれはこのプロジェクトを構築するための私の唯一の参照でした。 arduinoでのシフトレジスタと多重化についての少しの研究から始めました。

サーキット

<図>

コンポーネントの収集

さまざまなソースからすべてのコンポーネントを収集しました。この5mm8x8コモンカソードLEDマトリックスディスプレイをオンラインWebサイトから入手しました。

<図>

プロトタイプの作成

回路では、1つのシフトレジスタを使用して8行を制御し、列を制御するために、8列ごとに1つのシフトレジスタを使用することが示されています。

したがって、単純な8x8マトリックスを作成できる場合は、列制御用の回路の一部を複製し、マトリックスを任意の数の列に拡張するだけです。回路に追加する8列(1つの8x8モジュール)ごとに1つの74hc595を追加する必要があります。そのことを念頭に置いて、8x8のプロトタイプを作成しました。

<図>

はんだ付け段階

行と列のコントロールを作成するために別々のドットボードを使用し、それらを接続するためにワイヤとヘッダーを延長しました。

<図>

<図>

<図>

<図>

<図>

8x8マトリックスを正常に作成したら、列を駆動するために、共通のクロックを使用してさらに多くのシフトレジスタをデイジーチェーン接続する必要があります。すべての行を駆動するには、単一の74hc595が必要です。したがって、列の数に基づいて、より多くのシフトレジスタを追加でき、追加できる列の数に制限はありません。

後半の構築

<図> <図> <図> <図>

当時、私は3D印刷にアクセスできなかったので、地元の大工にケースを作ってもらいました。

<図>

彼が作ったケースは私が思っていたよりもはるかに大きかったので、Fusion 360または他のデザインソフトウェアを使用して小さなケースをデザインし、ケースを3Dプリントすることをお勧めします。電源ケーブルとUSBケーブルを接続するためにケースに穴が開けられました。

コード

コードは、このプロジェクトの添付ファイルにあります。

ここでは、行全体をスキャンし、適切なロジックレベルで列の行にフィードします。このコードは、スクロールするメッセージの速度と、表示するメッセージを決定します。スクロールの方向は、コードではデフォルトで右から左ですが、少し変更を加えるだけで、他の方向にも実装できます。

結果

ありがとうございます! :)

コード

  • 48x8LEDマトリックスのArduinoコード
48x8LEDマトリックスのArduinoコード C / C ++
48x8LEDマトリックスのAduinoコード。接続とコードは、コード自体のコメントとして説明されています。
 / * /////////////////////////////// ///////////////////////////////////////////////// * 6つ以上の8x8LEDマトリックスにスクロール文字を表示するArduinoコード。 * *行列の数は、コードを少し変更するだけで増やすことができます。 **コメントは編集のために各ステートメントに記載されています。 * * PrasanthKSによってコード化**連絡先:[email protected] * / * //////////////////////////////// ///////////////////////////////////////////////// char msg [] ="WELCOME WIZ"; //ここでテキストを変更します。intscrollspeed=5; //スクロール速度を設定します(low =fast)int x; int y; // Columnsint clockPin1 =2; // 74HC595のクロックピン11に接続されたArduinoピンintlatchPin1 =3; // 74HC595のラッチピン12に接続されたArduinoピンintdataPin1 =4; // 74HC595のデータピン14に接続されたArduinoピン// RowsintclockPin2 =5; // 74HC595のクロックピン11に接続されたArduinoピンintlatchPin2 =6; // 74HC595のラッチピン12に接続されたArduinoピンintdataPin2 =7; // 74HC595のデータピン14に接続されたArduinoピン// BITMAP //この配列のビットはマトリックスの1つのLEDを表します// 8は行数、6はLEDマトリックス数バイトビットマップ[8] [7]; int numZones =sizeof(bitmap)/ 8; // 1つのゾーンは1つの8x 8マトリックス(8列のグループ)を参照しますint maxZoneIndex =numZones-1; int numCols =numZones * 8; // FONT DEFENITIONbytealphabets [] [8] ={{0,0,0、 0,0}、// @ as SPACE // {8,28,54,99,65}、// <<{31、36、68、36、31}、// A {127、73、73、 73、54}、// B {62、65、65、65、34}、// C {127、65、65、34、28}、// D {127、73、73、65、65}、 // E {127、72、72、72、64}、// F {62、65、65、69、38}、// G {127、8、8、8、127}、// H {0 、65、127、65、0}、// I {2、1、1、1、126}、// J {127、8、20、34、65}、// K {127、1、1、 1、1}、// L {127、32、16、32、127}、// M {127、32、16、8、127}、// N {62、65、65、65、62}、 // O {127、72、72、72、48}、// P {62、65、69、66、61}、// Q {127、72、76、74、49}、// R {50 、73、73、73、38}、// S {64、64、127、64、64}、// T {126、1、1、1、126}、// U {124、2、1、 2、124}、// V {126、1、6、1、126}、// W {99、20、8、20、99}、// X {96、16、15、16、96}、 // Y {67、69、73、81、97}、// Z}; void setup(){pinMode(latchPin1、OUTPUT); pinMode(clockPin1、OUTPUT); pinMode(dataPin1、OUTPUT); pinMode(latchPin2、OUTPUT); pinMode(clockPin2、OUTPUT); pinMode(dataPin2、OUTPUT); //ビットマップをクリアfor(int row =0; row <8; row ++){for(int zone =0; zone <=maxZoneIndex; zone ++){bitmap [row] [zone] =0; }}} // FUNCTIONS //マトリックスにビットマップ配列を表示しますvoidRefreshDisplay(){for(int row =0; row <8; row ++){int rowbit =1 < =0; zone-){shiftOutの各マトリックスにシフトアウトします(dataPin1、clockPin1、MSBFIRST、bitmap [row] [zone]); } //両方のラッチを一度に反転してフリッカーを除去しますdigitalWrite(latchPin1、HIGH); //ラッチピン1をハイに戻してシグナルチップにデジタル書き込み(latchPin2、HIGH); //ラッチピン2をハイに戻してシグナルチップに//待機delayMicroseconds(300); }} //行と列をビットマップビットに変換し、オフにします/ onvoid Plot(int col、int row、bool isOn){int zone =col / 8; int colBitIndex =x%8;バイトcolBit =1 <> 1; //このゾーンの最上位ビットとして、次のゾーンから最下位ビットにシフトします。 if(zone  

回路図

参照のみを目的としています。ピン接続については、コード内のコメントを参照してください。

製造プロセス

  1. Arduinoを使用してモニターをAmbilightにする
  2. LEDを制御するBluetoothを搭載したArduino!
  3. LEDマトリックス+モーションセンサードアディスプレイ[ArduinoHoliday]
  4. Arduino Quadruped
  5. BoltとArduinoを使用したLEDの明るさの制御
  6. シングルLEDマトリックスArduinoフリップクロック
  7. ArduinoRGBカラーミキサー
  8. ArduinoUnoでLEDマトリックスを制御する
  9. ArduinoとRDA8057Mを使用したFMラジオ
  10. DMX RGBLED屋外
  11. LEDルーレットゲーム