/* * Programmet er et hjelpemiddel for å kalibrere temperatursensoren med * NTC-motstanden NTCLE400E3103H. Kalibreringen skjer i to runder: * 1. Først leser av den digitale verdien for to temperaturer i ytterkanten av det aktuelle temperaturområdet. * 2. Dernest legges målinger og temperaturer inn i programmet * 3. så begeregnes den kalibrerte temperaturen * Nils Kr. Rossing 02.07.22 */ #include #include // ------------- Legg inn verdier for kalibrering av temperatur ---------------// int D_T_Lav = 338; // Digital verdi for spenningen på A0, registert lav temperatur) int D_T_Hoy = 710; // Digital verdi for spenningen på A0, registert ved høy temperatur) int D_T_Var = 0; // Digital variabel temperatur float T_Lav = 6; // Lav kalibreringstemperatur i grader C avlest på kalibrert insturment float T_Hoy = 16; // Høy kalibreringstemperatur i grader C avlest på kalibrert insturment // -------------------- Beregnete kalibrete verdier -------------------------// float T_Beregnet = 0; // T - Beregnet temperatur // Bergenete spenningsverdier: float U_T_Var = 0; // Avlest og beregnet spenningsverdi for temperatur int i = 0; void setup() { Serial.begin(115200); while (!Serial); analogReadResolution(12); // Sett AD-konverteren til 12 bits oppløsning } void loop() { i = i+1; //--- Leser inn digital spenningen for temperaturen og beregner kalibrert temperatur ----// D_T_Var = analogRead(A0); U_T_Var = 3.3 * D_T_Var/4096; T_Beregnet = ((T_Hoy - T_Lav)/(D_T_Hoy - D_T_Lav))* (D_T_Var - D_T_Lav) + T_Lav; //-------------Skriv ut for test og kalibrering --------------// Serial.print("Nr.: "); Serial.println(i); Serial.print("Digital temp.: "); Serial.print(D_T_Var); Serial.print(", Beregnet temp.: "); Serial.print(T_Beregnet, 2); Serial.println(" C"); delay(1000); }