pigpioデーモンを介してc言語でGPIOを制御する
事前にpigpiodの起動をしておくこと
使い方
pigpiod_if2.hをインクルードしておく
#include <pigpiod_if2.h>
ソースコードがprog.cとする場合、次のコマンドでビルドして実行
$ gcc -Wall -pthread -o prog prog.c -lpigpiod_if2 -lrt $ ./prog
メモ
intを返す関数はエラーの場合 < 0 を返す
基本的な関数
int pigpio_start(char *addrStr, char *portStr)
addStr:
pigpioデーモンを実行しているRaspberryPiのホストまたはIPアドレスの指定
localhostの場合はNULL
portStr:
pigpioデーモンを実行しているRaspberryPiが使用するポートアドレスを指定
localhostの場合はNULLではなく「8888」を使用
pigpioデーモンへ接続する
OKの場合、0以上の整数値を返す。
この値は操作するRaspberrPiを指定するためにGPIOルーチンに渡される
void pigpio_stop(int pi)
pi: >=0 (pigpio_startによって返される)
pigpioデーモンへの接続を終了し、ライブラリが使用していたリソースを解放する
int set_mode(int pi, unsigned gpio, unsigned mode)
pi: >=0 (pigpio_startによって返される)
gpio: 0-53
mode:
PI_INPUT, PI_OUTPUT, PI_ALT0, PI_ALT1,PI_ALT2, PI_ALT3, PI_ALT4, PI_ALT5
GPIOモードの設定
OKの場合は0を返し、それ以外の場合はPI_BAD_GPIO、PI_BAD_MODE、
またはPI_NOT_PERMITTEDを返す
int get_mode(int pi, unsigned gpio)
pi: >=0 (pigpio_startによって返される)
gpio: 0-53
GPIOモードを取得する
OKの場合はGPIOモードを返し、そうでない場合はPI_BAD_GPIOを返す
int set_pull_up_down(int pi, unsigned gpio, unsigned pud)
pi: >=0 (pigpio_startによって返される)
gpio: 0-53
pud: PI_PUD_UP, PI_PUD_DOWN, PI_PUD_OFF
GPIOのプルアップ/ダウン抵抗を設定またはクリアする
OKの場合は0を返し、それ以外の場合はPI_BAD_GPIO、PI_BAD_PUD、
またはPI_NOT_PERMITTEDを返す
int gpio_read(int pi, unsigned gpio)
pi: >=0 (pigpio_startによって返される)
gpio: 0-53
GPIOレベルを読み取る
OKの場合はGPIOレベルを返し、それ以外の場合はPI_BAD_GPIOを返す
int gpio_write(int pi, unsigned gpio, unsigned level)
pi: >=0 (pigpio_startによって返される)
gpio: 0-53
level: 0, 1
GPIOレベルを書き込む
OKの場合は0を返し、それ以外の場合はPI_BAD_GPIO、PI_BAD_LEVEL、
またはPI_NOT_PERMITTEDを返す
GPIOでPWMパルスまたはサーボパルスがアクティブな場合はOFF