例えば、下の左の図の回路を組みたいときは、右の図のように接続する。
| BCM | wPi | Name | Physical | Physical | Name | wPi | BCM | |
| 3.3V | 1 | ・ ・ | 2 | 5V | ||||
| 2 | 8 | SDA.1 | 3 | ・ ・ | 4 | 5V | ||
| 3 | 9 | SCL.1 | 5 | ・ ・ | 6 | GND | ||
| 4 | 7 | GPIO.7 | 7 | ・ ・ | 8 | TxD | 15 | 14 |
| GND | 9 | ・ ・ | 10 | RxD | 16 | 15 | ||
| 17 | 0 | GPIO.0 | 11 | ・ ・ | 12 | GPIO.1 | 1 | 18 |
| 27 | 2 | GPIO.2 | 13 | ・ ・ | 14 | GND | ||
| 22 | 3 | GPIO.3 | 15 | ・ ・ | 16 | GPIO.4 | 4 | 23 |
| 3.3V | 17 | ・ ・ | 18 | GPIO.5 | 5 | 24 | ||
| 10 | 12 | MOSI | 19 | ・ ・ | 20 | GND | ||
| 9 | 13 | MISO | 21 | ・ ・ | 22 | GPIO.6 | 6 | 25 |
| 11 | 14 | SCLK | 23 | ・ ・ | 24 | CE0 | 10 | 8 |
| GND | 25 | ・ ・ | 26 | CE1 | 11 | 7 | ||
| 0 | 30 | SDA.0 | 27 | ・ ・ | 28 | SCL.0 | 31 | 1 |
| 5 | 21 | GPIO.21 | 29 | ・ ・ | 30 | GND | ||
| 6 | 22 | GPIO.22 | 31 | ・ ・ | 32 | GPIO.26 | 26 | 12 |
| 13 | 23 | GPIO.23 | 33 | ・ ・ | 34 | GND | ||
| 19 | 24 | GPIO.24 | 35 | ・ ・ | 36 | GPIO.27 | 27 | 16 |
| 26 | 25 | GPIO.25 | 37 | ・ ・ | 38 | GPIO.28 | 28 | 20 |
| GND | 39 | ・ ・ | 40 | GPIO.29 | 29 | 21 |
#include <wiringPi.h> // WringPiを使用するために必要
int main(void) {
wiringPiSetup(); // WringPiを初期化する
pinMode(29, OUTPUT); // 29ピンを出力として使用する
while(1) {
digitalWrite(29, HIGH); // 29ピンにHIGH信号を送る
}
return 0;
}
wiringPiSetup()pinMode()INPUT、LEDやモータなどに情報を出力するときは、OUTPUTとする。
digitalWrite()
コンパイルはTerminalで以下のように行う。
gcc LED.c -lwiringPi -o led
あらかじめソースファイルがあるディレクトリまで移動させておくこと。
WringPiを使用する場合は、-lwiringPiと書くことに注意する。
また、-oオプションを使用して出力されるファイル名を指定することができる。
何も指定しないと、a.outというファイルができる。
実行は、ファイル名がledだった場合、
./ledとする。
無限ループのため、プログラムはCtrl+Cを押して手動で終了する必要がある。
#include <wiringPi.h>
#define PIN 29 // ピン番号を変えやすくするため、マクロを使用
int main(void) {
wiringPiSetup();
pinMode(PIN, OUTPUT);
while(1) {
digitalWrite(PIN, HIGH);
delay(500); // 500ms処理を停止
digitalWrite(PIN, LOW);
delay(500);
}
return 0;
}
delay()という関数を用いて500ms処理を遅らせている。こうすることで、500msごとにLEDが点灯/消灯の動作を繰り返すことになる。