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回繰り替えして消灯する