WioLTE

Wio LTE PWM出力

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出力できるようです。実際に動かしてはいません。