You are here

PWMによるLED表示

LEDの明るさをPWMで制御する実験をします。

PICSYS24では、4個までのPWM出力を任意のI/Oピンに接続し、制御することができます。
PWM出力の制御は、基本的に2つの操作で行います。例えばRB0ポートにLEDなどを接続した場合、以下の2つの操作を行います。

  • pinMode(RB(0), OUT_PWM1):RB0にPWM出力機能の1番目を割り当てる
  • digitalWrite(RB(0), 50):RB0のPWMデューティ比を50%に設定する

PWMパルスの継続的な出力処理は、PICSYS24が自動的に行います。

expwmled1.c: 1個のLEDのPWM制御



#include "picsys24.h" void setup() { pinMode(LED1, OUT_PWM1) ; // PWM出力の割り付け } int duty = 0 ; void loop() { delayMilliseconds(50) ; if (digitalRead(VSW(0)) == LOW) duty += 2 ; if (digitalRead(VSW(1)) == LOW) duty -= 2 ; /* 値は0(%)から100(%) */ if (duty > 100) duty = 100 ; if (duty < 0) duty = 0 ; digitalWrite(LED1, duty) ; // PWMのデューティー比の設定 }

LED1はDUO-GL128-PIC24Fに実装されたLEDで、具体的にはduo-gl128.pic24f.hで、#defineによりRA(0)と定義されています。

開発ソフト: 
チップファミリー: 
MCUチップ: 
技術: