C言語でLED調光

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です