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 と打てば表示してくれます。