74HC595とNE555を用いたLEDライトチェイサー
LEDライトチェイサー
Youtubeとかでよく見かけるLED点滅工作例です。
なぜ、このような光り方をするのか説明できますか
回路図
この回路でキモになるのが、シフトレジスタHC595とタイマーIC NE555です。
NE555の役割
NE555は色々な用途に使えますが、今回の用途では「LOWとHIGHを一定時間ごとに交互に出す」、いわゆるパルス波を出す役割を担っています。
74HC595の役割
本来シフトレジスタ74HC595は、シリアル信号をパラレル信号に変換する役割を持っています。
今回はSER端子は電源と直接繋いでいますので、シリアル信号としてはずっとHIGH、つまり1を連続で流し込んでいる状態です。
ところが、ずっと1だと信号の区切りがわかりませんね。
そこで、NE555からのパルス波で信号の区切りをつけてやって、[1,1,1,1,1,1,1,1]のシリアル信号として74HC595に認識させるわけです。
概要がわかったところで、74HC595の仕組みをもう少し見ていきましょう。
1〜8、15番 Q
QAからQHはパラレル出力用のピンです。
13番 OE(Output Enable)
LOWにすると出力が有効になります。
High にすると、全パラレル出力が切断状態になります(これをハイインピーダンスというらしいです)
普段はGND に接続してLowにしておくと良いでしょう。
14番 SER(シリアル)
シリアルデータ入力のためのピンです。
といってもこのピン単独でシリアル入力ができるわけではなく、信号の区切りを見分けるためにSRCLK信号と協働してHIGHかLOWを入力する必要があります。
11番 SRCLK (シフト・レジスター・クロック)
このクロックを使って、SERの信号を区切ってやります。
今回の例では、シリアル信号は全部1なので、何秒おきに区切ろうが関係ありません。
後述するラッチクロックと同じタイミングで区切ると良いでしょう。
12番 RCLC(ラッチクロック)
出力のためのクロックを入力します。
ざっくりいうと、シリアル信号をパラレル出力するにあたって、パラレル信号を100u秒ごとに出力していいのか、300u秒ごとに出力していいのかわからないわけです。
そこでラッチクロックを使って、何u秒おきにパラレル出力するかを決めます。
今回の例では、NE555からのパルス波の周波数によってクロックの長さを変えることができます。
(周波数が小さい = 区切る時間が長い = LEDの点滅周期が長い)
10番 SRCLR(シリアルクリア)
ビット情報をクリアします。(LOWに落とすことででクリアにします)
基本はHIGHにしておくと良いでしょう
Discussion