RaspberryPi[13] WiringPi
WiringPiはラズパイのIOを制御するためのライブラリです。まず、これを入れない人はいないんじゃないかと思う。
いくつかラズパイを購入していると入れ方を忘れるので、メモ書きとして書いておきます。なぜか、本家のインストールのやり方をやるとうまくいかない。
git は既に入っていると思うので、これだけ。
$ git clone https://github.com/WiringPi/WiringPi.git
$cd WiringPi
$./build
$./build clean
サンプルプログラムです。
#include <wiringPi.h>
#include <stdio.h>
#define pin 7
#define PININ 0
int main (void)
{
wiringPiSetup () ;
pinMode (pin, OUTPUT) ;
pullUpDnControl (PININ, PUD_UP) ;
pinMode (PININ, INPUT) ;
for (;;)
{
digitalWrite (pin, HIGH) ; delay (500) ;
digitalWrite (pin, LOW) ; delay (500) ;
printf("in:%d\n",digitalRead(PININ));
if(digitalRead(PININ)){
printf("HIGH\n");
}else{
printf("LOW\n");
}
}
return 0 ;
}
コンパイルは、下記のように-lwiringPiを付けなければいけません。ちなみに、この順番でやらないとライブラリが読み込めないようです。
cc -o program program.c -lwiringPi
ここで悩むのがIO番号です。WiringPiは独特の番号を振っています。ラズパイのPINヘッダー番号でもないし、GPIO番号でもありません。下記にWiringPiが使用する番号を載せておきます。Physical番号から見つけるとよいでしょう。これは意外に悩む人とはいると思う。gpio readall と打てば表示してくれます。