C言語でボタン状態の取得
WiringPi のC言語ライブラリにある
digitalRead() を使うことで
指定したGPIOポートの値を取得できる
vim button.c
でファイルを作成
ソースは
#include<stdio.h>
#include<wiringPi.h>
#define BTN_PORT 25
int main(void){
int data, i;
//初期化
if(wiringPiSetupGpio() == -1) return 1;
//GPIO mode in
pinMode(BTN_PORT,INPUT);
//読み込み
for(i=0; i<10;i++){
//GPIO の値読み込み
data = digitalRead(BTN_PORT);
printf("GPIO%d = %d\n",BTN_PORT,data);
//1秒まつ
sleep(1);
}
return 0;
}
最初に
#include
でライブラリなどを読み込む
#define は定数の定義
wiringPiSetupGpio() は
wiringPi の初期化
pinMode(GPIOポート番号 , 入力モード)
でポートのモードを設定
今回なら in モードなので INPUT
pinMode(BTN_PORT,INPUT);
digitalRead(GPIOポート番号)
でポートの値を取得
今回は
data = digitalRead(BTN_PORT);
として結果を変数data に格納している
これで
cc -o button button.c -lwiringPi
でコンパイル
構文は
cc -o 任意の名前 Cソースファイル名 -lwiringPi
これで実行するけど
権利者権限で実行しないとエラーになるので
sudo ./button
これでボタンをおすと1
ボタンを押していないと0
が10回まで表示される
結果は
GPIO25 = 0 GPIO25 = 0 GPIO25 = 0 GPIO25 = 1 GPIO25 = 1 GPIO25 = 0 GPIO25 = 1 GPIO25 = 0 GPIO25 = 1 GPIO25 = 0
となった