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

ドライバーとライブラリなしで8x8LEDマトリックスを制御する

コンポーネントと消耗品

>
Arduino Nano R3
× 1
LEDドットマトリックスディスプレイ、赤
× 1
スルーホール抵抗、330オーム
× 1

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

このビデオは、MAX7219や対応するライブラリなどのドライバチップを使用せずに、1088AS Common Cathode 8x8LEDマトリックスを制御する方法に関するチュートリアルです。

同じマトリックスを制御する2番目のチュートリアルをすぐに作成しますが、今回はMAX7219を使用して、結果を比較します。

完全なチュートリアルはここにあります:

このコンテンツが気に入って、同様のビデオの作成をサポートしたい場合は、私のPatreonWebページにアクセスしてください

https://www.patreon.com/MariosIdeas

または

https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7PD67JWZ9S3EJ&source=url

コード

  • 8x8LEDマトリックスの64個のLEDすべてをテストする
  • 猫の画像を8x8LEDマトリックスに表示(多重化)
  • 8x8 LEDマトリックスのテキストのスクロール(多重化)
8x8LEDマトリックスの64個のLEDすべてをテストする Arduino
 //マリオのアイデア// 8x8LEDマトリックスの64個のリードすべてを1つずつ点灯してテストする// Raws #define R1 2#define R2 3#define R3 4#define R4 5#define R5 6#define R6 7#define R7 8#define R8 9 // Columns#define C1 10#define C2 11#define C3 12#define C4 13#define C5 A0#define C6 A1#define C7 A2#define C8 A3void setup(){pinMode( R1、出力); pinMode(R2、OUTPUT); pinMode(R3、OUTPUT); pinMode(R4、OUTPUT); pinMode(R5、OUTPUT); pinMode(R6、OUTPUT); pinMode(R7、OUTPUT); pinMode(R8、OUTPUT); pinMode(C1、OUTPUT); pinMode(C2、OUTPUT); pinMode(C3、OUTPUT); pinMode(C4、OUTPUT); pinMode(C5、OUTPUT); pinMode(C6、OUTPUT); pinMode(C7、OUTPUT); pinMode(C8、OUTPUT); //スケッチの開始時にすべてのLEDをオフにするdigitalWrite(R1、HIGH); digitalWrite(R2、HIGH); digitalWrite(R3、HIGH); digitalWrite(R4、HIGH); digitalWrite(R5、HIGH); digitalWrite(R6、HIGH); digitalWrite(R7、HIGH); digitalWrite(R8、HIGH); digitalWrite(C1、LOW); digitalWrite(C2、LOW); digitalWrite(C3、LOW); digitalWrite(C4、LOW); digitalWrite(C5、LOW); digitalWrite(C6、LOW); digitalWrite(C7、LOW); digitalWrite(C8、LOW);} void SelectRow(int row){if(row ==1)digitalWrite(R1、LOW);それ以外の場合、digitalWrite(R1、HIGH); if(row ==2)digitalWrite(R2、LOW);それ以外の場合、digitalWrite(R2、HIGH); if(row ==3)digitalWrite(R3、LOW);それ以外の場合、digitalWrite(R3、HIGH); if(row ==4)digitalWrite(R4、LOW);それ以外の場合、digitalWrite(R4、HIGH); if(row ==5)digitalWrite(R5、LOW);それ以外の場合、digitalWrite(R5、HIGH); if(row ==6)digitalWrite(R6、LOW);それ以外の場合、digitalWrite(R6、HIGH); if(row ==7)digitalWrite(R7、LOW);それ以外の場合、digitalWrite(R7、HIGH); if(row ==8)digitalWrite(R8、LOW); else digitalWrite(R8、HIGH);} void SelectColumn(int column){if(column ==1)digitalWrite(C1、HIGH);それ以外の場合、digitalWrite(C1、LOW); if(column ==2)digitalWrite(C2、HIGH); else digitalWrite(C2、LOW); if(column ==3)digitalWrite(C3、HIGH);それ以外の場合、digitalWrite(C3、LOW); if(column ==4)digitalWrite(C4、HIGH); else digitalWrite(C4、LOW); if(column ==5)digitalWrite(C5、HIGH); else digitalWrite(C5、LOW); if(column ==6)digitalWrite(C6、HIGH); else digitalWrite(C6、LOW); if(column ==7)digitalWrite(C7、HIGH); else digitalWrite(C7、LOW); if(column ==8)digitalWrite(C8、HIGH); else digitalWrite(C8、LOW);} void loop(){for(int i =1; i <9; i ++){for(int j =1; j <9; j ++){SelectRow(i); SelectColumn(j); delay(100); }}} 
猫の画像を8x8LEDマトリックスに表示(多重化) Arduino
 //マリオのアイデア// 8x8 LEDマトリックスに猫の画像を表示(マルチプレックス)// Raws #define R1 2#define R2 3#define R3 4#define R4 5#define R5 6#define R6 7#define R7 8 #define R8 9 // Columns#define C1 10#define C2 11#define C3 12#define C4 13#define C5 A0#define C6 A1#define C7 A2#define C8 A3int pause =300; int Cat [8] [8] ={{1,0,0,0,1,0,0,0}、{1,1,1,1,1,0,0,0}、{1,0 、1,0,1,0,0,0}、{0,1,1,1,0,0,0,1}、{0,0,1,0,0,0,0,1}、 {0,1,1,1,1,0,0,1}、{0,1,1,1,1,1,0,1}、{1,0,1,1,1,1,1 、0}、}; void setup(){pinMode(R1、OUTPUT); pinMode(R2、OUTPUT); pinMode(R3、OUTPUT); pinMode(R4、OUTPUT); pinMode(R5、OUTPUT); pinMode(R6、OUTPUT); pinMode(R7、OUTPUT); pinMode(R8、OUTPUT); pinMode(C1、OUTPUT); pinMode(C2、OUTPUT); pinMode(C3、OUTPUT); pinMode(C4、OUTPUT); pinMode(C5、OUTPUT); pinMode(C6、OUTPUT); pinMode(C7、OUTPUT); pinMode(C8、OUTPUT); digitalWrite(R1、HIGH); digitalWrite(R2、HIGH); digitalWrite(R3、HIGH); digitalWrite(R4、HIGH); digitalWrite(R5、HIGH); digitalWrite(R6、HIGH); digitalWrite(R7、HIGH); digitalWrite(R8、HIGH); digitalWrite(C1、LOW); digitalWrite(C2、LOW); digitalWrite(C3、LOW); digitalWrite(C4、LOW); digitalWrite(C5、LOW); digitalWrite(C6、LOW); digitalWrite(C7、LOW); digitalWrite(C8、LOW);} void SelectRow(int row){if(row ==1)digitalWrite(R1、LOW);それ以外の場合、digitalWrite(R1、HIGH); if(row ==2)digitalWrite(R2、LOW);それ以外の場合、digitalWrite(R2、HIGH); if(row ==3)digitalWrite(R3、LOW);それ以外の場合、digitalWrite(R3、HIGH); if(row ==4)digitalWrite(R4、LOW);それ以外の場合、digitalWrite(R4、HIGH); if(row ==5)digitalWrite(R5、LOW);それ以外の場合、digitalWrite(R5、HIGH); if(row ==6)digitalWrite(R6、LOW);それ以外の場合、digitalWrite(R6、HIGH); if(row ==7)digitalWrite(R7、LOW);それ以外の場合、digitalWrite(R7、HIGH); if(row ==8)digitalWrite(R8、LOW); else digitalWrite(R8、HIGH);} void Set_LED_in_Active_Row(int column、int state){if(column ==1)digitalWrite(C1、state); if(column ==2)digitalWrite(C2、state); if(column ==3)digitalWrite(C3、state); if(column ==4)digitalWrite(C4、state); if(column ==5)digitalWrite(C5、state); if(column ==6)digitalWrite(C6、state); if(column ==7)digitalWrite(C7、state); if(column ==8)digitalWrite(C8、state); } void loop(){for(int j =0; j <8; j ++){SelectRow(j + 1); for(int i =0; i <8; i ++){Set_LED_in_Active_Row(i + 1、Cat [j] [i]); } delay(2 + pause); } if(pause!=0 and pause> 100)pause =pause-100; if(pause!=0 and pause <=100)pause =pause-10;} 
8x8 LEDマトリックスのテキストのスクロール(多重化) Arduino
 // Mario's Ideas // 8x8 LEDマトリックス上のテキストのスクロール(マルチプレックス)// Raws #define R1 2#define R2 3#define R3 4#define R4 5#define R5 6#define R6 7#define R7 8# R8 9 // Columns#define C1 10#define C2 11#define C3 12#define C4 13#define C5 A0#define C6 A1#define C7 A2#define C8 A3int position =0; int Marios_ideas [8] [54] ={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 、0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 、0,0,0,0,0,0,0,0,0}、{0,1,0,0,0,1,0,0,1,1,0,0,1,1,1 、0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1 、1,0,0,1,1,0,0,0,1,1,0,0,0,0}、{0,1,1,0,1,1,0,1,0,0 、1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,1,0 、0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0}、{0,1,0,1,0 、1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,0,0,0 、0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0}、 {0,1,0,0,0,1,0,1,1,1,1,0,1,1,1,0,0,1,0,1,0,0,1,0,0 、1,1,0,0,0,0,1,0,1,0,0,1,0,1,1,1,0,1,1,1,1,0,0,1,1 、0,0,0,0}、{0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1 、0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0 、1,0,0,0,0,1,0,0,0}、{0,1,0,0,0,1,0,1,0,0,1,0,1,0,0 、1,0,1,0,0,1,1,0,0,1,0,0、1,0,0,0,1,0,1,1,1,0,0,1,0 、0,0,1,0,0,1,0,1,0,0,1,0,0,0}、{0,0,0,0,0,0,0,0,0,0 、0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 、0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0}}; void setup(){pinMode(R1、出力); pinMode(R2、OUTPUT); pinMode(R3、OUTPUT); pinMode(R4、OUTPUT); pinMode(R5、OUTPUT); pinMode(R6、OUTPUT); pinMode(R7、OUTPUT); pinMode(R8、OUTPUT); pinMode(C1、OUTPUT); pinMode(C2、OUTPUT); pinMode(C3、OUTPUT); pinMode(C4、OUTPUT); pinMode(C5、OUTPUT); pinMode(C6、OUTPUT); pinMode(C7、OUTPUT); pinMode(C8、OUTPUT); digitalWrite(R1、HIGH); digitalWrite(R2、HIGH); digitalWrite(R3、HIGH); digitalWrite(R4、HIGH); digitalWrite(R5、HIGH); digitalWrite(R6、HIGH); digitalWrite(R7、HIGH); digitalWrite(R8、HIGH); digitalWrite(C1、LOW); digitalWrite(C2、LOW); digitalWrite(C3、LOW); digitalWrite(C4、LOW); digitalWrite(C5、LOW); digitalWrite(C6、LOW); digitalWrite(C7、LOW); digitalWrite(C8、LOW);} void SelectRow(int row){if(row ==1)digitalWrite(R1、LOW);それ以外の場合、digitalWrite(R1、HIGH); if(row ==2)digitalWrite(R2、LOW);それ以外の場合、digitalWrite(R2、HIGH); if(row ==3)digitalWrite(R3、LOW);それ以外の場合、digitalWrite(R3、HIGH); if(row ==4)digitalWrite(R4、LOW);それ以外の場合、digitalWrite(R4、HIGH); if(row ==5)digitalWrite(R5、LOW);それ以外の場合、digitalWrite(R5、HIGH); if(row ==6)digitalWrite(R6、LOW);それ以外の場合、digitalWrite(R6、HIGH); if(row ==7)digitalWrite(R7、LOW);それ以外の場合、digitalWrite(R7、HIGH); if(row ==8)digitalWrite(R8、LOW); else digitalWrite(R8、HIGH);} void Set_LED_in_Active_Row(int column、int state){if(column ==1)digitalWrite(C1、state); if(column ==2)digitalWrite(C2、state); if(column ==3)digitalWrite(C3、state); if(column ==4)digitalWrite(C4、state); if(column ==5)digitalWrite(C5、state); if(column ==6)digitalWrite(C6、state); if(column ==7)digitalWrite(C7、state); if(column ==8)digitalWrite(C8、state); } void loop(){for(int x =0; x <5; x ++){for(int j =0; j <8; j ++){SelectRow(j + 1); for(int i =0; i <8; i ++){Set_LED_in_Active_Row(i + 1、Marios_ideas [j] [(i + position)-abs((i + position)/ 54)* 54]); } delay(2); }} position =position + 1;} 

カスタムパーツとエンクロージャー

回路図


製造プロセス

  1. 発光ダイオード(LED)
  2. マキシムのコンパクトなLEDドライバーは、高効率と低EMIを提供します
  3. 棺ダンスメロディー
  4. MAX7219を搭載した24x16マトリックスのArduinoPongゲーム
  5. LEDマトリックス+モーションセンサードアディスプレイ[ArduinoHoliday]
  6. 音による8倍のLED照明
  7. Arduino Quadruped
  8. ホットグルーLEDマトリックスランプ
  9. BoltとArduinoを使用したLEDの明るさの制御
  10. ドライバーとライブラリなしで8x8LEDマトリックスを制御する
  11. シングルLEDマトリックスArduinoフリップクロック