Nyní jsem se rozhodl tuto sestavu rozšířit o 1 termistor ale netuším jak správně sestavit rovnici aby to měřilo správně. Napětí baterie se neustále mění tak že klasické zapojení jako odporový dělič nefunguje. Musím nějak využít interní referenci - resp. myslím že musím využít ten údaj o napětí který měřím. Steinhart-Hartovy koeficienty mi vyplivnul online kalkulátor podle naměřených hodnot mého termistoru a když níže napsaný kod pro termistor použiju samostatně tak funguje.
Pro naše účely jsem z kodu vypustil veci okolo bmp280 a oled displeje.
Kód: Vybrat vše
int ThermistorPin = 2;
int Vo;
float R1 = 10000;
float logR2, R2, T;
float c1 = 1.026181482e-03, c2 = 2.466825234e-04, c3 = 0.7350768485e-07;
void setup() {
analogReference (INTERNAL);
void loop() {
int batteryValue = analogRead (A0) ;
float voltage = batteryValue * (5.15 / 1023.0);
Vo = analogRead(ThermistorPin);
R2 = R1 * (1023.0 / (float)Vo - 1.0);
logR2 = log(R2);
T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
T = T - 273.15;