ESP-WROOM-32で8×8マトリクスLEDを使ってみる!
こんにちわ!
今回は電子工作で定番の、マトリクスLEDで遊んでみたいと思います!
※Arduinoでも同じ配線、プログラムで使えます。
普段日常生活では聞かない言葉で、知らない方もいるかと思います!
なので一応ご紹介、マトリクスLEDとはこういう物です↓
今回は写真と同じ8×8のマトリクスLEDを使います!
これを使えば簡単なドット文字表示などが行えます^^
部品も特に特殊な物は必要なく安価で作れますので是非、お時間があれば作ってみましょう!
①「使う部品」
・赤色ドットマトリクスLED 8x8ドット
秋月電子 200円+送料
・抵抗 (100~150Ω)
※今回は150Ωを使用していますが眩しさを軽減できますが、100Ωでも問題ありません。
電子工作ステーショ 1本3円+送料(500円以上で無料)
秋月電子 100本100円+送料
・ESP-WROOM-32 (ESP-WROOM-32D)
電子工作ステーション 1100円(送料無料)(30pinモデル)
電子工作ステーション 1200円(送料無料)(ESP32D)(38pinモデル)
秋月電子 1230円+送料(38Pinモデル)
※楽天にて横幅を細くしたバージョンが登場‼
pin番を無くした代わりに細くなっているので、ブレットボードで使いやすくなりました‼
6極ブレットボードではなく定番のブレットボードで使えるようになるのでススメです⇩⇩⇩
・通信用マイクロUSBケーブルタイプB (家に無ければ)
秋月電子 120円+送料
ESP-WROOM-32とパソコンを繋ぐためのケーブルです。
100円ショップなどでも販売していますが、スマホ用充電専用タイプだと使えないのでご注意ください。
・ブレッドボード 6穴版 EIC-3901ブレットボード 2枚
(ESP-WROOM32は幅が広い為6穴版でないと差せません)
秋月電子 280円+送料
・ジャンパーワイヤー(オス・オス)(最低16本)
電子工作ステーション 1セット(10本)100円+送料(500円以上で無料)
秋月電子 18本180円+送料
・ブレッドボード・ジャンパーワイヤ 1ケース
(ブレットボードで回路を組むとき、見栄え良く綺麗に繫げられますのであると便利)
秋月電子 300円+送料
②「回路」
・上記の写真を参考に上の足からESP-本体のIOピンに配列すると仮定した図です。
左足(赤丸側) | 右足 |
IO17(抵抗) | IO23 |
IO18(抵抗) | IO22 |
IO14 | IO2(抵抗) |
IO27 | IO12 |
IO19(抵抗) | IO4(抵抗) |
IO33 | IO32 |
IO5(抵抗) | IO26 |
IO0(抵抗) | IO15(抵抗) |
※(抵抗)と書いてあるところはマトリクス側のpinとESP側のpinの間に抵抗(100Ω~150Ω)をかましてください。
※配線を間違えるとマトリクスLEDが壊れる場合があるのでご注意ください。
・ブレットボードで作っていくと下記の写真のようになっていきます!
※均等な長さのジャンパーワイヤーが足りないため見栄えが悪くなってしまいました(;^ω^)
③「Arduino IEDにESP-WROOM-32を使えるように設定する」
・まだお済でないかたはこちらをご参考に↓
Arduino IDEでESP-WROOM-02(ESP8266)とESP-WROOM-32を使えるようにする!(Windows10)
④「プログラミング」
・まずは下記のコードをArduino IEDにコピーペーストし、正常に点灯するか試してみてください^^
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
// 8x8マトリックスLED //ESP-WROOM-32で試される方はこちらを使用してください。 int ANODEPIN[8] = { 12, 14, 27, 26, 33, 32, 22, 23 }; int CATHODEPIN[8] = { 15, 2, 0, 4, 17, 5, 18, 19 }; //Arduinoで試される方はこちらを使用してください。 //int ANODEPIN[8] = { 10, 11, 12, 14, 15, 16, 17, 18 }; //int CATHODEPIN[8] = { 2, 3, 4, 5, 6, 7, 8, 9 }; void setup() { //アノードを、LOWで初期化 for( int ano = 0; ano < 8; ano++ ) { pinMode( ANODEPIN[ano], OUTPUT ); digitalWrite( ANODEPIN[ano], LOW ); } //カソードを、HIGHで初期化 for( int cat = 0; cat < 8; cat++ ) { pinMode( CATHODEPIN[cat], OUTPUT ); digitalWrite( CATHODEPIN[cat], HIGH ); } } //順番に点灯していくプログラム void loop() { //カソードのループ for( int cat = 0; cat < 8; cat++ ) { digitalWrite( CATHODEPIN[cat], LOW ); // LOWに変更 //アノードのループ for( int ano = 0; ano < 8; ano++ ) { digitalWrite( ANODEPIN[ano], HIGH ); // HIGHに変更 delay(50); //点灯時間 digitalWrite( ANODEPIN[ano], LOW ); // LOWに戻す } digitalWrite( CATHODEPIN[cat], HIGH ); // HIGHに戻す } } |
実行結果⇩
・実行結果と同じ動きをすれば完成です!
⑤「お遊び」
・文字を表示してみたいと思います!
下記のコードは非常に簡単なコードでただ単に文字を表示させるコードです!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
// 8x8マトリックスLED //ESP-WROOM-32で試される方はこちらを使用してください。 int ANODEPIN[8] = { 12, 14, 27, 26, 33, 32, 22, 23 }; int CATHODEPIN[8] = { 15, 2, 0, 4, 17, 5, 18, 19 }; //Arduinoで試される方はこちらを使用してください。 //int ANODEPIN[8] = { 10, 11, 12, 14, 15, 16, 17, 18 }; //int CATHODEPIN[8] = { 2, 3, 4, 5, 6, 7, 8, 9 }; //1が点灯、0が消灯になります。 boolean hiragana_a[8][8] = { { 0, 0, 1, 0, 0, 0, 0, 0 }, { 1, 1, 1, 1, 1, 1, 0, 0 }, { 0, 0, 1, 0, 0, 0, 0, 0 }, { 0, 0, 1, 1, 1, 1, 0, 0 }, { 0, 1, 1, 0, 0, 1, 1, 0 }, { 1, 0, 1, 0, 1, 0, 1, 0 }, { 1, 0, 0, 1, 0, 0, 1, 0 }, { 0, 1, 1, 0, 0, 1, 0, 0 } }; void setup(){ for(int i=0; i<8;i++){ pinMode(ANODEPIN[i],OUTPUT); digitalWrite(ANODEPIN[i],LOW); } for(int i=0; i<8;i++){ pinMode(CATHODEPIN[i],OUTPUT); digitalWrite(CATHODEPIN[i],HIGH); } } void loop(){ for( int i=0; i<8;i++){ for( int j=0; j<8; j++){ if( hiragana_a[i][j]){ digitalWrite(ANODEPIN[j],HIGH); digitalWrite(CATHODEPIN[i],LOW); digitalWrite(ANODEPIN[j],LOW); digitalWrite(CATHODEPIN[i],HIGH); } } } } |
・「あ」と表示されれば成功です!
「応用編」
・流れる文字にしたい方はこちらのサイトをご参考に↓
Arduinoを使って8X8マトリクスLEDに日本語テキスト文字を表示する
※ただし、ESPシリーズでできるのかは試していないのでご了承ください(;^ω^)
以上、ご訪問ありがとうございます^^