C言語でLED調光
WiringPi のC言語ライブラリにある
pwmWrite()
を使うことで PWMのデューティー比を指定できる
今回、使用するメソッドとしては
wiringPiSetupGpio()
wiringPi の初期化
pinMode(GPIOポート番号,モード)
指定したGPIOポートのモードを設定
PWMにするのなら
PWM_OUTPUT
でPWM出力になる
pwmWrite(GPIOポート番号, 値)
指定したGPIOポートのPWM値を設定
1~1023 で設定
delayMicroSeconds()
マイクロ秒単位の dekay()
vim pwm_led.c
でファイル作成
ソースは
#include<wiringPi.h>
#define LED_PORT 18
int main(void){
int pw, i;
//初期化
if(wiringPiSetupGpio() == -1) return 1;
//GPIO 18 を PWM
pinMode(LED_PORT, PWM_OUTPUT);
for(i=1;i<10;i++){
//fade in
for(pw=0;pw<1024;pw++){
//PWM の値変更
pwmWrite(LED_PORT,pw);
//03ms 待つ
delayMicroseconds(300);
}
//fade out
for(pw=1023;pw>=0;pw--){
//PWMの値を変更
pwmWrite(LED_PORT,pw);
delayMicroseconds(300);
}
}
return 0;
}
これで
cc -o pwmled pwm_led.c -lwiringPi
でコンパイル
そして
sudo ./pwmled
とするとLEDが点滅を10回繰り替えして消灯する