RaspberryPi 3B+で、LEDの点灯、消灯、点滅のやり方を書いていきたいと思います。
LEDといってもここでは、簡単な単色LEDについて説明します。
単色LEDの他にもフルカラーLEDがありますが、これについては後日にします。
1.使用するLEDと極性の見分け方
使用するLEDは、OSOYOOのセンサーセットのLEDを使用しています。
そして、LEDには極性があり見分け方は、
足の長い方をアノードと呼び+側へ
足の短い方をカソードと呼び-極へ
接続します。
実物は、こんな感じです。
2.RaspberryPi 3B+ ボードとLEDの接続
RaspberryPi 3B+ ボードとLEDの接続は、こんな感じです。
黄色線にはGPIO18、黒線にはGNDを接続しており、
LEDのアノード側と黄色線の間に抵抗200Ωを入れます。
そしてLEDのカソード側と黒線を接続します。
特にGPIO18でなくても、他のGPIOでも大丈夫です。
そして、抵抗を入れている理由は、電流が流れすぎてLEDが壊れないようにするためです。
3.LEDの点灯と消灯
LEDの点灯・消灯は、GPIO18をHighにすると点灯、Lowにすると消灯になります。
ユーザー空間からGPIOを使用するには、ここではWiringPiライブラリを使用します。
サンプルコード(C言語)としては、こんな感じです。
#include <wiringpi.h> #include <stdio.h> #include <stdlib.h> #define LEDPIN 1 int main(){ if(wiringPiSetup()==-1){ printf("setup wiringPi failed!\n"); exit(1); } pinMode(LEDPIN, OUTPUT); digitalWrite(LEDPIN, HIGH); delay(500); digitalWrite(LEDPIN, LOW); delay(500); digitalWrite(LEDPIN, HIGH); return 0; }
定義値LEDPINが何故、18ではなく1なのかというと、
それは、WiringPiライブラリ内ではGPIO18を1と定義しているからです。
そして、どこを見ればそれがわかるかというと、
RaspberryPi上で、
# gpio readall
を実行すると下記のように表が出力されます。
そして黄枠にあるとおり、RaspberryPiのピン番号が書かれているPhysicalの12を見て、
その右横列とwPi列とが交差するところが1になっていることがわかります。
4.LEDの点滅
LEDの点滅は、もうおわかりのとおり点灯と消灯を繰り返すだけです。
サンプルコード(C言語)としては、こんな感じです。
#include <wiringpi.h> #include <stdio.h> #include <stdlib.h> #define LEDPIN 1 #define FOREVER 1 int main(){ if(wiringPiSetup()==-1){ printf("setup wiringPi failed!\n"); exit(1); } pinMode(LEDPIN, OUTPUT); while( FOREVER ){ digitalWrite(LEDPIN, HIGH); delay(500); digitalWrite(LEDPIN, LOW); delay(500); } return 0; }
5.最後に
単色のLED操作は、GPIOをON/OFFするだけなので簡単です。
LEDには、まだ吐息のようにボワーっと光らせたり、単色以外にフルカラーLEDもあるので、
この辺りも書いていきたいと思います。
関連・おすすめ記事
Raspberry Pi 3B+ でI2CキャラクタLCD(1602) の動作確認 - 水瓶座列車
RaspberryPi 3B+でLEDを徐々に点灯、消灯させる方法 - 水瓶座列車
Bluetoothでマルチペアリング(複数台接続)できるマウスのおすすめランキングベスト5 - 水瓶座列車
Raspberry Pi (ラズパイ)で役に立つ書籍のおすすめランキングベスト5 - 水瓶座列車
Raspberry Pi OSのカーネルソースビルド手順解説 - 水瓶座列車