見よう見まねのラズベリーパイ (8)~LEDを点灯~

最初にありふれたLEDの点滅で正常にGPIOの制御を確認してみます。
1.LED1つの点灯回路ハードウェアの回路はGPIOのPORT4を使うこととし、左図の様に接続します。
キットに入っている一番小さい抵抗、330Ωを使います。
LEDの順方向電圧を2.0Vと仮定して、GPIO端子がHigh の時の定格電圧は3.3Vですから、
順方向電流 = (3.3-2.0)/330 = 4mA
うるさくない程度の良さそうな明るさに光る見込みです。

以下のプログラムでテストしました。
この手のプログラムはインターネットや書籍にたくさん紹介されています。タイトル通り、見よう見まねで作ってみました。
また、Wiring Pi のウェッブサイトにも Examplese/How-To の中に Blink という名前でc言語のソースコードが紹介されています。wiringPi の命令についての解説もReference に情報があります。
Reference の Setup 項目を見ると、wiringPi を使用する時の初期化コマンドには4種類有り、プログラムの最初に呼び出しておく必要があります。
・int wiringPiSetup(void)
・int wiringPiSetupGpio(void)
・int wiringPiSetupPhys(void)
・int wiringPiSetupSys(void)
“wiringPiSetup(void)”  は wiringPi のピン番号体系を使用する場合に使い、”wiringPiSetupGpio(void)” は Broadcom の GPIOピン番号を使う場合の初期化コマンドとの説明があります。
Wiring Pi のPins で紹介されているピンの名称はコネクタの物理的ピン番号の他に”NAME”、”BCM GPIO”、”wiringPi Pin”の3種類があります。この内、GPIOのピンの呼び方は”BCM GPIO”、”wiringPi Pin”の2種類あります。
Broadcom とは Raspberry Pi の中核をなすCPU、メモリ、画像処理などの機能を持った半導体のメーカーで、BCM = Broadcom の略だと思われます。
その半導体のGPIO端子の番号が”Broadcom の GPIOピン番号” で、Wiring Pi のPins では”BCM GPIO” と表示されています。
半導体のGPIO端子がRaspberry Pi のGPIOコネクタとつながっていますが、GPIOコネクタについて、Raspberry Piでの名称は接続元にある半導体のGPIO端子のGPIO端子名(番号)とは異なっています。
理由は不明ですが、このような事でRaspberry Pi のGPIO端子の名称は2通り存在します。
参考にした書籍ではBroadcom社(のIC)の端子名である”BCM GPIO” を使っていましたので、踏襲しています。

#include <wiringPi.h>
#define LED_PORT 4  /* LED_PORT を GPIO4 と定義  */
int main (void) {
int i;
int j = 100;//初期化
if(wiringPiSetupGpio() == -1) return 1; /* wiringPi system の初期化 */
pinMode(LED_PORT, OUTPUT);       /* LED_PORT ピンモードを出力に設定 */for (i=0; i<10; i++) {
//LED ON
digitalWrite(LED_PORT, 1);   /* LED_PORT に1を出力してHigh にする*/
delay(j);//LED OFF
digitalWrite(LED_PORT, 0);     /* LED_PORT に0を出力してLow にする */
delay(j);
j = j * 2;
}
return 0;
}

ソースコードファイル(1-led.c)をコンパイルします。

pi@raspberrypi:~/clang $ cc -o 1-led 1-led.c -lwiringPi

1-led という実行ファイルができるので実行してみます。
ユーザーアカウントでは実行できませんでした。
sudo で再度実行するとLEDの点滅が始まります。

pi@raspberrypi:~/clang $ ./1-led
wiringPiSetup: Must be root. (Did you forget sudo?)
pi@raspberrypi:~/clang $ sudo ./1-led
pi@raspberrypi:~/clang $

 

カテゴリー: Raspberry Pi タグ: , , , , , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です