Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

WiringPiでRasPiのインターフェイスをC言語経由で扱う

WiringPiというライブラリを使うと、RasPiのインターフェイスC言語経由で扱うことができます。
Pythonとかで扱うケースは結構みますけど、
ある程度突っ込んだことをするケースとかでは何やかんやでC言語はアテになります。

実際のところ

導入

$ cd #YOURDIR
$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi

で、ビルド

$ ./build

つかいかた

27番ピン(DI)から値を読んで出力するサンプルはIonoPiを参考に実装するとこんな感じ

#include <wiringPi.h>
#include <stdio.h>

#define BUFSIZ 12

void printDigitalValue(int di, int val) {
	char buf[BUFSIZ]; //バッファを設定

	setbuf(stdout, buf); //標準出力のバッファを溜め込む。無効にしたいなら二番目をNULL

	if (val == HIGH) {
		printf("high\n");
	} else {
		printf("low\n");
	}

	fflush(stdout); //この時点で吐き出す
}


int main() {
        //初期化
	if (wiringPiSetup() != 0) {
		return -1;
	}

        // DI1の初期化。PUD_OFFは"no pull up/down"の意味。
	pinMode(DI1, INPUT);
	pullUpDnControl(DI1, 0);

         //値を読む
         printDigitalValue(DI1, digitalRead(DI1));

	return 0;
}

参考もと

wiringpi.com
wiringpi.com