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 になる

1
pinMode(4,OUTPUT);

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

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


のどちらかになる

1
digitalWrite(4,1);

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

1
vim led.c

内容は

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#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
に注意

次にコンパイル

1
cc -o led led.c -lwiringPi

構文は

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

となる

実行するには

1
sudo ./led

とする

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

これをつけないと

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

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

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

コメントを残す

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