目的
12bit A/Dは複数内蔵するので、活用したい。
スケッチはArduino Unoと同じような記述でできる。ただし読み取り値は0〜1023ではなく0〜4096で、入力電圧の範囲は0〜3.3Vのようだ。
結線
スケッチ
const int voutPin = 2; const int VOLT = 3.3; // 3.3Vを電源とした場合 const int ANALOG_MAX = 4096; // ESP32の場合 void setup() { Serial.begin(115200); } void loop() { // R1の電圧を取得 int reading = analogRead(voutPin); // AD値をmVに変換 float voltage = ((long)reading * VOLT * 1000) / ANALOG_MAX; Serial.print(voltage); Serial.println(" mV, "); delay(1000); }
シリアルモニタを立ち上げると1秒ごとに読み取った値が表示。
結果
電池の電圧を測ると、概ねに正常範囲の値出るが、値は常に変化するので、どうして?
参考
- http://rikoubou.hatenablog.com/entry/2017/06/29/135819 — 【ESP32】analogReadする方法