水瓶座列車

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

Raspberry Pi で単色LEDの点灯・消灯・点滅のやり方

f:id:aquarius999:20201001171814j:plain

 

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

Raspberry Pi 4Bでも同様のやり方でできます。)

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

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

 

 

 

 

 

1.使用する単色LEDと電極の見分け方

 

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

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

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

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

接続します。

 

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

f:id:aquarius999:20201001172011j:plain

 

  

2.Raspberry Pi 3B+ ボードと単色LEDの接続

 

Raspberry Pi 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と定義しているからです。

そして、どこを見ればそれがわかるかというと、

 

Raspberry Pi 上で、

# gpio readall

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

f:id:aquarius999:20190602184033p:plain

 

そして黄枠にあるとおり、Raspberry Piのピン番号が書かれているPhysicalの12を見て、

その右横列とwPi列とが交差するところが1になっていることがわかります。

 

 

 

4.単色LEDの点滅

 

LEDの点滅は、「LED点灯後、数百msぐらいのdelayを入れて消灯し、点灯まで同様のdelayを入れる」を繰り返すだけです。

 

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のカーネルソースビルド手順解説 - 水瓶座列車