Mushroom miljö kontroll - Arduino Powered (7 / 13 steg)
Steg 7: Koden
.. .please OBS den ursprungliga lcd4bit bibliotek har en massa onödiga förseningar i den som saktar koden ner en hel del, dessa bör tas bort (titta i filen cpp library för ledtrådar).
I korthet gör koden (i ordning efter hur det visas i den bifogade uppförandekoden):
FÖRVÄG HUVUDLOOP
-#defines M och C värden för den linjära och log ekvationer krävs för att översätta de bit värdena för ingångar. dvs. y = mx + c och y = Mlog (x) + C
-#defines storlekar för genomsnitt array, provtagning tider, histerisis nivåer, Pins, EEProm lagringsstorlek.
-definierar variabler, utlösa värden etc.
MAIN-LOOPEN
-Läs i sensorn värden var "SENSOR_INTERVAL" millisekunder.
-Sätter de nya värdena i en matris och genomsnitt denna matris.
-Utför beräkningar på genomsnitten att ge ett "korrekt" värde dvs Celsius (ursäkter till min amerikanska kusiner men jag är metriska), ppm (co2), relativ fuktighet.
-Skriver ut uppdateringar av nya temp, fuktighet och Co2-nivåer LCD Shield.
-Lagrar värden till eeprom var "EE_PROM_INTERVAL" millisekunder.
-Trigger reläer om nedan/ovan utlösa, var "Intervall" millisekunder.
-Knappsatsen koden som implementerar en rudimentär menyn system tillåter utlöser värden ändras och EEPROM värden dumpas till följetong.
-Funktioner hjälpa med genomsnitt och viktiga val.
Jag har försökt att ge en förklaring inom koden om vad varje avsnitt, med alla medel gå in och ta en titt. Om du är mer benägna att skygga för läsa koden, Vänligen notera de viktigaste sakerna att notera #define uttalanden för att manipulera intervall för läsning, utlösa och genomsnitt och #define uttalanden för att kalibrera M och C värden.
Dessa är alla ligger på toppen av koden så ta en titt och ha kul mixtra.
Observera att koden använder EEprom biblioteket för läsning skrivning eeprom värden, lcd4bit biblioteket (modifierad, förseningar tas bort och Stifttilldelningar ändrats) för LCD-shield och stdlib för att konvertera int till röding för att skriva till LCD-skärmen.