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ポート番号に値を出力する
値は
1
0
のどちらかになる
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回繰り返す