#include // Inkludering av standard biblioteket til Arduino // -------------Legg inn verdier for kalibrering av dybde ---------------// float D0 = -0.21; // Avlest dybde ved overflata for kalibrering int U_outD; // Avlest digitalverdi for spenning float Trykk = 0; // Målt trykk float Dybde = 0; // Beregnet av dybde float DPprm = 0.1005; // Trykkendring pr. meter i saltvann // ------------- Legg inn verdier for kalibrering av temperatur ---------------// int U_Lav_A2 = 442; // (UL) Digital verdi for spenningen på A2, registert lav temperatur int U_Hoy_A2 = 808; // (UH) Digital verdi for spenningen på A2, registert ved høy temperatur float t_Lav = 19; // (tL) Lav kalibreringstemperatur i grader C float t_Hoy = 56; // (tH) Høy kalibreringstemperatur i grader C float Temp; // Beregnet temperatur ved aktuell posisjon int U_A2 = 0; // Avlest digitalverdi for spenning på A2 ved aktuell posisjon int i = 0; int opt = 1; // opt 1 - for test og kalibrering // opt 2 - for logging float tid; // Tid fra oppstart i sekunder void setup() { Serial.begin(9600); } void loop() { // Tellevariabel i = ++i; // Tidssignal tid = millis()/1000.0; //---- Leser inn spenningen for trykk og beregner kalibrert dybde -------// U_outD = analogRead(A0); // Les av digitalt trykk Trykk = 5.0*(U_outD/1023.0 - 0.1); // Målte trykk i bar Dybde = -Trykk/DPprm - D0; // Beregnet og kalibrert dybde i (-)meter //- Leser inn spenningen for temperaturen og beregner kalibrert temperatur -// U_A2 = analogRead(A2); // Beregner temperaturen på bakgrunn av kalibreringsdata. Temp = ((t_Hoy - t_Lav)/(U_Hoy_A2 - U_Lav_A2))*(U_A2 - U_Lav_A2) + t_Lav; //-------------Skriv ut for test og kalibrering --------------// if (opt == 1) { Serial.print("Tid "); Serial.print(tid,1); Serial.print(";"); Serial.print(", Trykk: "); Serial.print(Trykk,2); Serial.println(" bar"); Serial.print("Beregnet dybde: "); Serial.print(Dybde,2); Serial.println(" m"); Serial.print("Digital temp.: "); Serial.print(U_A2); Serial.print(", Beregnet temp.: "); Serial.print(Temp,1); Serial.println(" C"); } //-------------Skriv data for datalogging --------------// if (opt == 2) { Serial.print(tid,1); Serial.print(";"); Serial.print(Dybde,2); Serial.print(";"); Serial.println(Temp,1); } delay(1500); }