水瓶座列車

どこまで行けるか、とりあえず発車します。

RaspberryPi 3B+でLEDの点灯・消灯・点滅のやり方

f:id:aquarius999:20201001171814j:plain

 

 

RaspberryPi 3B+で、LEDの点灯、消灯、点滅のやり方を書いていきたいと思います。

LEDといってもここでは、簡単な単色LEDについて説明します。

単色LEDの他にもフルカラーLEDがありますが、これについては後日にします。

 

 

 

 

 

  1.使用するLEDと極性の見分け方

 

使用するLEDは、OSOYOOのセンサーセットのLEDを使用しています。

そして、LEDには極性があり見分け方は、

  足の長い方をアノードと呼び+側へ

  足の短い方をカソードと呼び-極へ

接続します。

 

実物は、こんな感じです。

f:id:aquarius999:20201001172011j:plain

  

  2.RaspberryPi 3B+ ボードとLEDの接続

 

RaspberryPi 3B+ ボードとLEDの接続は、こんな感じです。 

f:id:aquarius999:20201001172058j:plain

 

黄色線には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

 

を実行すると下記のように表が出力されます。

f:id:aquarius999:20190602184033p:plain

 

そして黄枠にあるとおり、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のカーネルソースビルド手順解説 - 水瓶座列車