SSブログ

ESP8266のPWMを試してみる [Arduino]

今回はモーターコントロールをするためのESP8266のPWM機能を試してみます。


DSC04434.JPG


ESP8266でPWMを使うには、他のArduinoボードと同じように analogWrite を用います。その他に、ESP8266独自のAPIとして、PWMの周波数を設定する analogWriteFreq()、 制御のレンジを決める analogWriteRange() Iが用意されています。


下記のようなスケッチをOTAで書き込んでみました。OTA_setup()、OTA_loop() なんぞやという方は、こちらの記事を参照してください。


static unsigned int led = 13;

void OTA_setup()
{
  Serial.begin(115200);
  analogWriteFreq(2000);
  analogWriteRange(1000);
}

unsigned int duty=0;
bool inc = true;
void OTA_loop()
{
  analogWrite(led, duty);
  if (inc) {
    if (duty++ == 1000) inc = false; 
  } else {
    if (duty-- == 0) inc = true;
  }
  delay(1);
}



実際に動かしてみました。




しかし、下の記事によると、ESP8266のPWMは実はソフトPWMなので多少の誤差がある上に、Duty比も90%までという制約があるようです。


ESP8266 PWM revisited (and reimplemented
https://lurchi.wordpress.com/2016/06/29/esp8266-pwm-revisited-and-reimplemented/


その対策もこちらの記事にあったので試してみたのですが、どうもうまく動かないんだよなぁ。
σ( ̄ε  ̄;)





HiLetgo OTA WeMos D1 CH340 WiFi 開発ボード ESP8266 ESP-12F For Arduino IDE UNO R3

HiLetgo OTA WeMos D1 CH340 WiFi 開発ボード ESP8266 ESP-12F For Arduino IDE UNO R3

  • 出版社/メーカー: HiLetgo
  • メディア: エレクトロニクス






ArduinoとESP8266ではじめる IoTプログラミング

ArduinoとESP8266ではじめる IoTプログラミング

  • 出版社/メーカー:
  • 発売日: 2016/04/22
  • メディア: Kindle版




nice!(29)  コメント(0)  トラックバック(0) 
共通テーマ:趣味・カルチャー

nice! 29

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。