Posted at

Wio LTE PWM出力

More than 1 year has passed since last update.

Wio LTEのPWM出力を試しました。


使い方

PWM出力するピンをpinMode()で初期化して、

pinMode(WIOLTE_D38, PWM);

analogWrite()でPWM出力のデューティ比を指定します。

analogWrite(WIOLTE_D38, 200);

ArduinoリファレンスのanalogWrite()に0~255の範囲でデューティ比が0~100%とありますが、Wio LTEの場合は0~65535が0~100%になります。


スケッチ例

#include <WioLTEforArduino.h>


WioLTE Wio;

void setup() {
delay(200);

SerialUSB.println("");
SerialUSB.println("--- START ---------------------------------------------------");

SerialUSB.println("### I/O Initialize.");
Wio.Init();
pinMode(WIOLTE_D38, PWM);

SerialUSB.println("### Setup completed.");
}

void loop() {

for (int i = 0; i < 65536; i += 1024) {
analogWrite(WIOLTE_D38, i);
delay(1);
}
}


実行結果

image.png

PWMの周期は0.793ミリ秒でした。周波数だと1260Hz。周期を変更する関数を探しましたが見つかりませんでした。周期を変更したいときは、STM32F4のレジスタを操作するしかなさそうです。


PWM出力できるピン

今回、D38で確認しましたが、、、プログラムを確認した感じではD38,D39,D20,D19でPWM出力できるようです。実際に動かしてはいません。