ESP8266のPWMを試してみる [Arduino]
今回はモーターコントロールをするためのESP8266のPWM機能を試してみます。
ESP8266でPWMを使うには、他のArduinoボードと同じように analogWrite を用います。その他に、ESP8266独自のAPIとして、PWMの周波数を設定する analogWriteFreq()、 制御のレンジを決める analogWriteRange() Iが用意されています。
下記のようなスケッチをOTAで書き込んでみました。OTA_setup()、OTA_loop() なんぞやという方は、こちらの記事を参照してください。
実際に動かしてみました。
しかし、下の記事によると、ESP8266のPWMは実はソフトPWMなので多少の誤差がある上に、Duty比も90%までという制約があるようです。
ESP8266 PWM revisited (and reimplemented
https://lurchi.wordpress.com/2016/06/29/esp8266-pwm-revisited-and-reimplemented/
その対策もこちらの記事にあったので試してみたのですが、どうもうまく動かないんだよなぁ。
σ( ̄ε  ̄;)
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
- メディア: エレクトロニクス
ESP-WROOM-02 32Mビット品 WiFiモジュール 10個
- 出版社/メーカー:
- メディア:
ArduinoとESP8266ではじめる IoTプログラミング
- 出版社/メーカー:
- 発売日: 2016/04/22
- メディア: Kindle版
コメント 0