You are here

PWMによるLED表示

PICSYS18では、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パルスの継続的な出力処理は、PICSYS18が自動的に行います。

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



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

LED1はPIC-DML-2520に実装されたLEDで、具体的にはpic-dml-2520.hで、#defineによりRA(4)と定義されています。

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