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