C言語によるラズベリーパイ入出力GPIO制御
STEP1 テキストエディターでプログラムを記述
/home/pi/Testに保存(test1.c)
STEP2 gccコンパイラでプログラムを実行形式に変換
STEP3 プログラムを実行
(1)Wiring Piのインストール&設定
Wiring Piとは、ラズパイでGPIOを制御するのに必要なC言語用のライブラリィ。C言語でGPIOを使うのにこのライブラリが必要なので最初にインストールする。WiringPiをインストールするとgpioというコマンドもインストールされる。このコマンドを使うと、シェル上でGPIOを制御することができる。
Wiring Pi のソースコードを Git で入手するための準備
$ sudo apt-get install libi2c-dev
$ sudo apt-get install git-core
ユーザーのホームディレクトリに移動し、ソースコードを入手
$ cd ~
$ git clone https://github.com/WiringPi/WiringPi.git
Wiring Pi のソースコードが wiringPiディレクトリとしてクローンされるので、ディレクトリ内に移動してビルドする。
$ cd WiringPi
$ ./build
gpio -vとコマンド入力するとversion: 2.70が表示され、正常インストールが確認できました。
gpio readall
(2)C言語でWiringPiを操作
●インクルード宣言とライブラリ追加
プログラムの先頭でヘッダーファイルをインクルード
#include <wiringPi.h>
コンパイルするとWiringPiのライブラりが付加される
sudo gcc filename.c -o objname -lwiringPi
実行コマンド
sudo ./objname
●入出力端子の機能設定
WiringPi設定用関数
①pinMode
指定したピンの動作モード設定
書式
void pinMode(int pin, int mode);
mode: 次のいずれか
INPUT
OUTPUT
PWM_OUTPUT(pin1(GPIO18)だけ)
GPIO_CLOCK(pin7GPIO4)だけ)
記述例
pinMode(2,OUTPUT):
②pullupDnControl
指定したピンのプルアップとプルダウンの設定
書式
void pillUpDncontrol (int pin, int pud):
pud:次のいずれか
PUD_OFF
PUD_DOWN, PUD_UP
記述例
pullUpDnControl(3, PUD_UP)
③digitalWrite
GPIOピンに出力
書式
void digitalWrite(int pin, int value);
value :次のいずれか
HIGH, LOW, 1,0
記述例
digitalWrite(2, HIGH);
④pwmWrite
pin1(GPIO18)のPWM出力のデューティ設定
書式
void pwmWrite(int pin, int value);
value: 0~1024の範囲
⑤digitalRead
GPIOピンから入力する
書式
int digitalRead(int pin);
戻り値:HIGH, LOW ,1, 0のいずれか
記述例
if(digitalRead(3))
(3)C言語xWiringPiでI/O!3色LEDの点滅
GPIO2,GPIO3,GPIO4の接続したLEDを順番に点滅させるプログラム
GPIO17端子の入力レベル(HまたはL)によって一定間隔を0.5秒と1秒に切り替えて点滅
最初にwiringPiのヘッダーファイルをインクルード
BCMのピン番号ですべてを制御
コマンドでコンパイル
sudo gcc test2.c -o test2 -lwiringPi
実行
sudo ./test2
ご不明の点はご遠慮なくお尋ね下さい。存じ上げていることは丁寧にご案内させていただきます。
TEL 090-3194-4902
TEL 090-3194-4902