ラズパイでLED点灯①(応用編)

ラズパイでLED点灯②(応用編) RaspberryPi
スポンサーリンク

こんにちは!駆け出しエンジニアのまっきーです。

今回から、演習課題に取り組んでいきたいと思います!

まずはこの2つです。

  1. LEDを2つの点灯パターンで交互に表示させる
  2. 2進数でカウントアップ

復習

使用する関数

wiringPi.hwiringPi用のヘッダーファイル
wiringPiSetupGpio()wiringPiの初期化
pinMode(int pin,int mode)ピンのモードを決める(OUTPUT INPUT)
digitalWrite(int pin,int value)valueにHIGHかLOWを設定する

ラズパイピン配置図

回路図

LEDを2つの点灯パターンで交互に表示させる

図のように、2つのパターンでLEDを点灯させるプログラムです。(こちらから引用)

ソースコード

少し単調で長いのはお許しください。

for文を用いればもう少しシンプルに書けますね。

2進数でカウントアップ

図のように、LEDを用いて2進数のカウントアップをするプログラムです。

参考ソースは著者のGitHubからダウンロードできます。

ソースコード

この問題は、2進数表示の方法がわからなかったので、著者のコードを引用しました。

ビット操作をする関数void Led4bit(int ledData)がとても勉強になりました。

受け取った2進数の値をledData&1と論理演算を用いて、最下位bit(LSB)のみ点灯するかしないかを判断させるという方法は新たな学びです。

ここで注意しないといけないのは、digitalWrite()の中で論理演算をするということですね。

これを4回繰り返すことによって、全データ(2進数4桁)を表示することができるということがわかりました。

まとめと反省

・ビット操作でLEDの点灯を制御できる

・関数に分けたりすることで、できるだけシンプルなコードを書くことを意識する

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