Zahada s termistorem a referenci
Pavel Hudecek
edizon na seznam.cz
Neděle Březen 4 14:36:17 CET 2018
Mezitím jsem to dost překopal, ale neva:
int je 16b
#define FIRST_ADC_INPUT 0
#define LAST_ADC_INPUT 7
#define ADC_inputs LAST_ADC_INPUT-FIRST_ADC_INPUT+1
#define ADC_kroku 300L // pocet kroku mericiho cyklu - muze byt
300/400/1000
#define CAL_min 900 // min povolena hodnota eRefKor
#define AD_lsb (1.07421875) // 1,1V / 1024 = 0,00107421875 |
1AD = 1,07421875 mV
#define TEMP_const 2.5 // Rt/(Rn + Rt) : Rt 10k, Rn 15k
#define AD_Tind (0+FIRST_ADC_INPUT)
#define AD_T adPrum[AD_Tind]
#define AD_intDiv 10 // korekce aby long int nepretekal
globální:
eeprom long eCalConst[] = { // sem za chodu programu zatim nic nezapisuje
TEMP_const * 1000.0 / (float)AD_intDiv,
...
};
eeprom long eRefKor=CAL_min-1;// kalib. ref: =1000 pri ref 1,100 V /
>1000 pro <1,1 V / CAL_min-1 nekalibr.
long kalibraceRef=0;
lokální:
static long ADt[ADC_inputs];
V ADt může být až 1023 * ADC_kroku
V našem případě cca 2,5x míň - pak by vyšel výsledek 1000 při 25 °C
výpočet:
for(n=0; n<ADC_inputs; n++) { // vypocet
prumeru ----------------------------------
adPrum[n] = (((ADt[n] * eCalConst[n]) / ADC_kroku) * AD_intDiv) /
eRefKor;
ADt[n]=0;
}
... další kód, který ale nezapisuje do žádné zde použité proměnné
AD_T = (AD_T * eRefKor) / 1000;
Výchozí eRefKor je 899 a pak se změní na kolem 1000:
Tpřed eRefKor Tpo
-----------------------------
1223 1005 1099
1201 1004 1077
1195 1005 1074
1189 993 1069
-----
Aktuální stav, kdy se před/po neliší, nebo jen o 1:
for(n=0; n<ADC_inputs; n++) { // vypocet
prumeru ----------------------------------
if (n==AD_Tind) {
adPrum[n] = (((ADt[n] * eCalConst[n]) / ADC_kroku) * AD_intDiv) /
1000;
} else {
adPrum[n] = (((ADt[n] * eCalConst[n]) / ADC_kroku) * AD_intDiv) /
eRefKor;
}
ADt[n]=0;
}
PH
-----Původní zpráva-----
From: Jan Waclawek
Sent: Sunday, March 04, 2018 1:05 AM
To: HW-news
Subject: Re: Zahada s termistorem a referenci
Aha a samozrejme aj vsetky typy ktore v tych vzorcoch vystupuju, a
sizeof(int).
wek
----- Original Message ---------------
>No dajte tie konkretne cisla (s povodnym kodom samozrejme).
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list