C言語でボタン状態の取得

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

となった

コメントを残す

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