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
0
のどちらかになる
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回繰り返す