74HC164とArduinoを使って2本のピンで8個以上のLEDを制御する【シフトレジスタ】

プログラミング
スポンサーリンク
スポンサーリンク

シフトレジスタとは

シフトレジスタとは、シリアルデータ(直列のデータ)をパラレルデータ(並列のデータ)に変換してくれるICです。

画像で順を追って説明すると以下通りです。

Arduino等からデータを受け取る

まずはシフトレジスタにArduinoからパラレル出力したいシリアルデータをArduino等から受け取ります。

受け取ったデータを並列に並び替える

Arduino等から受け取ったデータをシフトレジスタ内部でシリアルデータからパラレルデータに並び替えます。

パラレルデータが揃ったら同時に出力

パラレルデータが全て揃ったら最後はすべて同時に出力して終わりです。

結構あっさりとした説明ですがシフトレジスタはこんなものです。

 

配線図

※注意点ですが電源に必ずコンデンサを噛ませてください。コンデンサがない場合動作が不安定になる可能性が高いです。

コード

流れるように光る

 

指定したLEDを光らせる

※setup関数に書いてあるのでLEDがうまく光らない場合は、Arduino上にあるリセットボタンを使ってリセットしてみてください。(loop関数にshiftOutを書くと全LEDがついてしまうので注意です。)

 

動作

流れるように光る

 

 

右から左に流れるようにLEDが光ります。

 

指定したLEDを光らせる

 

変数dataに代入されているビットの1になっている部分が光ります。

 

最後に

シフトレジスタはこんな感じで動作させることができます。

シフトレジスタを使うことで2本のピンで大量の電子機器を制御することができるので、電子工作をする上では必ず覚えておきたいICの一つですね。

でも正直な話、74hc164を使うくらいなら74hc595を使った方がネット上にも情報がたくさんあっていいと思います…

 

それではみなさん、良きネットサーフィンライフを!

コメント

タイトルとURLをコピーしました