// Programmet gjør 500 målinger av spredt lys, midler og skriver ut til displayet // Nils Kr. Rossing 01.06.19 // Inkludering av biblioteker #include // Bibliotek for seriekommunikasjon #include // Bibliotek for I2C kommunikasjon #include // Bibliotek for displayfunksjon #include // Bibliotek for displayfunksjon // Deklarasjon av displayet Adafruit_SSD1306 display(4); // Deklarasjon av enheten "display" av klassen Adafruit_SSD1306 // Deklarasjon av globale veriable int avlestIntensitet = 0; // Variabel som holder lysintensiteten avlest av LDR float sumIntensitet = 0; // Variabel som holder akkumulert lysintensitet float midletIntensitet = 0; // Variabel som holder midlet lysintensitet int i = 0; // Tellevariabel ved midling int pinColor = 10; // Utgang koblet til LED Colorimeter int pinTurbi = 11; // Utgang koblet til LED Turbidimeter void setup() { Serial.begin(9600); // Initier skriving til monitor display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Initialiser display med adresse 0x3C pinMode(pinColor, OUTPUT); // Port pinColor defineres som en utgang pinMode(pinTurbi, OUTPUT); // Port pinTurbi defineres som en utgang Serial.println("Turbidi_1.0"); } void loop() { digitalWrite(pinTurbi, HIGH); // Slå på lyskilde Turbidimeter delay(10); // Vent litt før måling starter // Gjør en midlet måling for (i = 0; i < 500; i++) // Gjør 500 målinger { avlestIntensitet = analogRead(0); // Les av analoginngang 0 (LED) sumIntensitet = sumIntensitet + avlestIntensitet; // Summer alle 500 målinger } digitalWrite(pinTurbi, LOW); // Slå av lyskilde midletIntensitet = sumIntensitet/i; // Beregn middelverdien av måleserien sumIntensitet = 0; // Nullstill summevariabel // Skriv resultatet til display // Klargjør display for utskrift display.clearDisplay(); // Slett informasjon på display display.setTextSize(1); // Sett størrelse på tekst display.setTextColor(WHITE); // Hvit tekst på sort bagrunn // Skriver gjennomsnitlig måleverdi display.setCursor(0,0); // Plasser markør øverst til venstre display.print("Lysintensitet: "); // Skriv "Lysintensitet display.print(midletIntensitet,1);// Skriv den målte intensiteten i ... display.display(); // Overfør informasjonen til displayet og vis delay(500); // Vent 500 millisekunder }