ESP8266のTOUTピンの電圧をちゃんと測定する方法
ESP8266のTOUTピンの電圧をちゃんと測定する方法
ArduinoのESP8266 IED環境でanalogRead(A0)またはanalogRead(17)はTOUTピン解放時に3V3の電圧測定になるようです。
これは C:\Users\mtada\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\1.6.4-673-g8cd3697\cores\esp8266\core_esp8266_wiring_analog.c で readvdd33()の戻り値を>>2した値が返ります。
そこでいろいろ検索していると
http://qiita.com/azusa9/items/26e74e4e0d5773ce9c41
にsystem_adc_read()を呼び出す方法が書かれていました。
実際のTOUTピンの電圧と戻り値を確認すると 1/1000 すると電圧値になりました。
テスト スケッチは以下のようになります。
extern "C" {
#include "user_interface.h"
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}
void loop() {
// A0 の定義は17を確認
Serial.println("A0: " + String(A0));
// 17以外はいつも1023が返る
int a = analogRead(0);
Serial.println("analogRead(0): " + String(a));
// TOUTピンをリード:4/1000倍すると3V3端子の電圧
// TOUTピン解放のとき
int b = analogRead(17);
Serial.println("analogRead(17): " + String(b));
float bv = (float)b * 4.0 / 1000.0;
Serial.println("3V3: " + String(bv) + "V");
int b2 = system_get_vdd33();
Serial.println("system_get_vdd33(): " + String(b2));
float bv2 = (float)b2 * 4.0 / 1000.0;
//TOUTpinの読み出し(Cでincludeが必要)
int c = system_adc_read();
Serial.println("system_read_adc: " + String(c));
float cv = (float)c / 1000.0;
Serial.println("TOUTpin: " + String(cv) + "V");
Serial.println("");
Serial.println("");
delay(1000);
}
TOUTピン解放での実行結果は以下の通り
A0: 17
analogRead(0): 1023
analogRead(17): 807
3V3: 3.23V
system_get_vdd33(): 65535
system_read_adc: 441
TOUTpin: 0.44V
VCC: 8.53V
TOUTピンが 0.258V のときの実行結果
A0: 17
analogRead(0): 1023
analogRead(17): 317
3V3: 1.27V
system_get_vdd33(): 65535
system_read_adc: 260
TOUTpin: 0.26V
解ったこと
- TOUTピン解放でanalogRead(17)は250で割ると3V3端子の電圧になる
- system_read_adc()を1000で割るとTOUTピンの電圧になる
- TOUTピンが解放でない場合は正しい3V3端子の電圧ではない
- user_interface.hに並んで定義してあるsystem_get_vdd33()は使えない
« ESP8266WebServerが遅いわけ | トップページ | ESP8266のTOUTピンの入力電圧とADC値 »
「Arduino」カテゴリの記事
- Arduino の ESP8266をwebサーバーにしてみよう(2015.07.24)
- SPIFFS 用のFTPサーバーをSD対応に変更(2016.11.09)
- ESPr Developer(ESP-WROOM-02開発ボード) 購入(2016.10.25)
- ESP8266のTOUTピンの電圧をちゃんと測定する方法(2015.07.19)
- ESP8266の電源電圧(3V3端子の電圧)の読み取り(2015.08.05)
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/569662/61903646
この記事へのトラックバック一覧です: ESP8266のTOUTピンの電圧をちゃんと測定する方法:
« ESP8266WebServerが遅いわけ | トップページ | ESP8266のTOUTピンの入力電圧とADC値 »
コメント