C言語でLED操作

C言語でLED操作

WiringPi のC言語用ライブラリを使えば
C言語でGPIOポートを制御するプログラムをかける

C言語の基礎は
ドットインストールを参考にするとわかりやすい

http://dotinstall.com/lessons/basic_c
で基礎の動画みれます

基本文法はこれでいいけど
Wiring Pi の関数も覚える必要があるので
https://projects.drogon.net/raspberry-pi/wiringpi/functions/
を参考に
(英語のサイトになります)

この中で使うのとしては

wiringPiSetupGpio()
これで WiringPi の初期化
gpio -g を使ったのと同じようにGPIOポートで指定するために宣言する

pinMode(GPIOポート番号, モード)
指定したGPIOポートのモードを設定
出力なら OUTPUT になる

pinMode(4,OUTPUT);

というように書く
ほとんどの場合はポート番号は定数にする

digitalWrite(GPIOポート番号, 値)
指定したGPIOポート番号に値を出力する
値は


のどちらかになる

digitalWrite(4,1);

これらを元にC言語ファイルを作成

vim led.c

内容は

#include<wiringPi.h>

#define LED_PORT 4

int main(void){
        int i;

        //初期化
        if(wiringPiSetupGpio() == -1) return 1;
        pinMode(LED_PORT,OUTPUT);

        for(i=0;i<10;i++){
                //LED ON
                digitalWrite(LED_PORT,1);
                delay(500);

                digitalWrite(LED_PORT,0);
                delay(500);
        }
        return 0;
}

がソースになる

なお定数の宣言で ; を最後につけるとエラーになる
#define LED_PORT 4
に注意

次にコンパイル

cc -o led led.c -lwiringPi

構文は

cc -o 好きな名前 ソースファイル名 -lwiringPi

となる

実行するには

sudo ./led 

とする

管理者権限が必要なので sudo をつける必要がある

これをつけないと

wiringPiSetup: Must be root. (Did you forget sudo?)

と言うエラーがでてくるので注意

実行するとLEDの点灯と消灯を10回繰り返す

コメントを残す

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