PWM出力

LEDの明るさを01以外にする。DigitalOutではLEDは最大で点灯か消灯の2パターンしかない。ほんのり光るなどということをするためにPWM波形を出力する。

main.cpp

#include <mbed.h>

using namespace ThisThread;

PwmOut led(PA_1);

int main(void){
    led.period_us(83);
    double i;
    while(true){
        for(i = 0;i < 1;i+=0.01){
            led.write(i);
            printf("%.2f\n",i);
            sleep_for(25ms);
        }
        for(i = 1;i > 0;i-=0.01){
            led.write(i);
            printf("%.2f\n",i);
            sleep_for(25ms);
        }
    }
}

ledに周期83usのPWM波形を出力。Mbedでは0~1の間で少数でデューティー比を決める。
このプログラムではだんだん明るくなり、暗くなるを1セットとしそれを繰り返すプログラム。

参考