So-net無料ブログ作成

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