###前提・実現したいこと
ESP32のADC変換を理解している途中でつまずいています。
3.9V出力をアッテネーターで減衰させて、3.3V出力とし、
3.3/3.9の電圧を12BIT解像度にて分圧するのまでは理解できたのですが、
テスターでの実測値とシリアルの表示値(analogRead)の違いに苦しんでいます。
###発生している問題・エラーメッセージ
###該当のソースコード
void setup(){
Serial.begin(115200);
}
void loop(){
float B=3435,T=298.15,R0=10.0,R1=4.71,rr1,t;
int n;
n=analogRead(32);
rr1=R1*(n)/(3.3/3.9*4096-(n));
t=1/(log(rr1/R0)/B+(1/T));
Serial.print("n=");
Serial.print(n);
Serial.print(" rr1=");
Serial.print(rr1);
Serial.print(" temp=");
Serial.println(t-273.15);
delay(5000);
}
ここにご自身が実行したソースコードを書いてください
###試したこと ボードの3V3より出力して1個目の金属皮膜抵抗(4.71k)に入りそこ(※)から分圧取得のためにPIN-32へ結線、 また(※)から2個目の金属皮膜抵抗(4.71k)を通過しボードのGNDに結線しています。 つまり、出力電圧を1/2とします。 この時の返り値n=1755、抵抗値rr1=4.08 実測抵抗値rr1=4.71 です。 また、返り値は短絡時はn=4095を表示します。 期待値はn=1733なのですが返り値との差22が説明できません。 また、抵抗値の実測値と表示値の差も説明できません。 ADC変換における誤差も検討しましたが、しっくり来ません。 どなたかご教授願えませんでしょうか? ![イメージ説明](ef6bbd93dc48b148e44671d0ae07d394.png) ###補足情報(言語/FW/ツール等のバージョンなど)
回答3件
あなたの回答
tips
プレビュー