少ないPINでLED大量制御! シフトレジスタ(SN74HC595),ESP-WROOM-02,32,Arduino

最終更新日

Comments: 5

こんにちは!

今回は少ないピンでLEDを簡単に大量制御する方法をお伝えしたいと思います!

 

過去の記事で「LEDキューブの作り方!」という記事がありますが仕組みや使う部品は同じです!

これができるようになるとLEDを少ないピンで数百個や数千個といったLEDの制御を簡単にできるようになります!

 

それを可能にしてくれる部品が、シフトレジスタという部品です!

これも簡単に手に入り、特に難しい回路構成は必要でないので是非、チャレンジしてみましょう^^

 

それでは早速作ってみたいと思います!


①「使う部品」

・部品は壊れた場合を考え、少し多めに買うことをおすすめします!

 

部品一覧↓

・シフトレジスタ「SN74HC595N」

(1つで8ピン増やせますので8×8×8の場合は64ピン必要なので最低8個必要です。)

 

⇩⇩⇩(追記)2022年3月13日より、電子工作ステーションさんで販売開始‼

電子工作ステーション 50円+送料(500円以上で送料無料)

 

※SN74HC595Nは秋月電子では販売終了。後継となるものがU74HC595AG-D16-T

となります。ただし、試していないので全く同じように使えるかはわかりません(;^ω^)

 

・LED(発光ダイオード) 一個 10円~
※左が3mm、右がmm

電子工作ステーション

秋月電子

 

何色でもOKですが、数が多ければ多いほど消費電力が少なく高い電流にも

耐えられるものが良い(赤や黄色は壊れやすい)。

 

※理由としては、数が多いほど全部点灯させたときに薄く光ります。

逆に1個だけ点灯させた場合電流が高くなりLEDが壊れる危険性があります。

 

※サイズは5㎜で、透明色のLEDをお勧めします!(見栄えが良くなります。)

 

・ESP-WROOM-32 (ESP-WROOM-32D)
38pinモデル

電子工作ステーション

 

※楽天にて横幅を細くしたバージョンが登場‼

pin番を無くした代わりに細くなっているので、ブレットボードで使いやすくなりました‼

6極ブレットボードではなく定番のブレットボードで使えるようになるのでススメです⇩⇩⇩

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモード【在庫品】
価格:1150円(税込、送料無料) (2021/10/8時点)

楽天で購入

 

・通信用USBケーブルタイプB (家に無ければ)

電子工作ステーション

ESP-WROOM-32とパソコンを繋ぐためのケーブルです。

100円ショップなどでも販売していますが、スマホ用充電専用タイプだと使えないのでご注意ください。

※Type-C対応のESP32をご購入された場合はType-Cケーブルをご購入ください。

タイプB通信ケーブル

 

・抵抗 (100~150Ω) 100本 100円

※今回は150Ωを使用していますが100Ωでも問題ありません。

電子工作ステーショ 1本3円+送料(500円以上で無料)

秋月電子 100本100円+送料

 

・LEDキャップ (任意)

電子工作ステーショ 1個5円+送料(500円以上で無料)

秋月電子 50個200円+送料

※点灯させたとき眩しいのであった方が良いです。

 

・ コンデンサ 0.1μF

電子工作ステーショ

(無くても起動しますが電子工作上よく出てくる部品です。電流を一層安定させるために使います。)

 

・ブレッドボード 6穴版 EIC-3901ブレットボード

秋月電子 460円+送料

(ESP-WROOM32は幅が広い為6穴版でないと不便です)

 

・ジャンパーワイヤー(オス・オス) (約7本)

電子工作ステーション 1セット(10本)100円+送料(500円以上で無料)

秋月電子 18本180円+送料

 

・ブレッドボード用ジャンパーワイヤ

電子工作ステーション 1セット(5本)35円+送料(500円以上で無料)

秋月電子 1セット460円+送料

(ブレットボードで回路を組むとき、見栄え良く綺麗に繫げられますのであると便利)

②「作り方・配線」

・シフトレジスタにに繋ぐLEDとESP-WROOM-32の繋ぎ方を表と写真でご紹介します。

 

・シフトレジスタの見方⇩

くぼみがある方が左です。

 

・接続表

シフトレジスタ(SN74HC595N)(LED8個Ver)
ピン番号 ピン名称 接続先
1 Q1 2つ目のLEDのアノードピン
2 Q2 3つ目のLEDのアノードピン
3 Q3 4つ目のLEDのアノードピン
4 Q4 5つ目のLEDのアノードピン
5 Q5 6つ目のLEDのアノードピン
6 Q6 7つ目のLEDのアノードピン
7 Q7 8つ目のLEDのアノードピン
8 GND GND (ESP-WROOM-32-)
9 Q7′
10 MR 5V (ESP-WROOM-32-)
11 SH IO5 (ESP-WROOM-32-)
12 ST IO18 (ESP-WROOM-32-)
13 OE GND (ESP-WROOM-32-)
14 DS IO19 (ESP-WROOM-32-)
15 Q0 1つ目のLEDのアノードピン
16 VCC 5V (ESP-WROOM-32-)
0.1μFのコンデンサを経由してGND

 

完成写真⇩

(コンデンサ0.1μFは使用していません)

・抵抗はLEDのGND側に繋げています。(今回は150Ωを使用しています)

 

シフトレジスタ(SN74HC595N)(LED16個~Ver)
ピン番号 ピン名称 接続先
1 Q1 2つ目のLEDのアノードピン
2 Q2 3つ目のLEDのアノードピン
3 Q3 4つ目のLEDのアノードピン
4 Q4 5つ目のLEDのアノードピン
5 Q5 6つ目のLEDのアノードピン
6 Q6 7つ目のLEDのアノードピン
7 Q7 8つ目のLEDのアノードピン
8 GND GND(ESP-WROOM-32-)
9 Q7′ 次のシフトレジスターのDSピン(14)
10 MR 5V(ESP-WROOM-32-)
11 SH IO5(ESP-WROOM-32-)
次のシフトレジスターのSHピン(11)
12 ST IO18(ESP-WROOM-32-)
次のシフトレジスターのSTピン(12)
13 OE GND(ESP-WROOM-32-)
14 DS IO19(ESP-WROOM-32-)
15 Q0 1つ目のLEDのアノードピン
16 VCC 5V(ESP-WROOM-32-)
0.1μFのコンデンサを経由してGND

 

接続するとこんな感じになります⇩

 

これ以上繋げたい場合は、16Verと同じように繋げていけばOKです!

 

接続方法がわからない場合はこちらの参考サイトもご利用ください⇩

参考サイト → 少ない出力ピンで、大量のLEDを制御する(シフトレジスタ使用)



③「Arduino IEDにESP-WROOM-32を使えるように設定する」

 

・こちらをご参考に↓

Arduino IDEでESP-WROOM-02(ESP8266)とESP-WROOM-32を使えるようにする!(Windows10)

 

④「プログラミング」

・早速プログラムで動かしてみましょう!

 

成功すると8つのLEDが順番に光ります!

 

・では、次はLEDを16個に増やしてみたいと思います!

 

単純に、「  for( int i = 0; i < 8; i++ )」の8を16に変えるのと、「MyShiftOut( DATAPIN, CLOCKPIN, 8, 1L << i );」の8を16に変えるだけです!

例えば32個光らせたい場合はその16のヵ所を32に変えるだけです!

 

成功するとこんな感じに光ります⇩

 

この方法を使えばたったの3pinで電流が足りる限り何個でも光らせることが可能です!

 

しかし、これでは同じ場所を同時に光らせたりということは多分できません(;^ω^)

そこで、「shiftOut関数」というものを使えば簡単に同じところを同時に光らせたりということができるようになります!

プログラムを変えるだけなので是非、試してみてください⇩

shiftOut関数を使ってLEDを大量制御!ESP-WROOM-32-・シフトレジスタ(SN74HC595N)使用

以上、ご訪問ありがとうございます^^

次はこれを応用して、LEDキューブを制御してみます!

 

参考サイト → 少ない出力ピンで、大量のLEDを制御する(シフトレジスタ使用)

 



5件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする