Stap 7: De Code
.. .please opmerking de oorspronkelijke lcd4bit bibliotheek heeft een heleboel onnodige vertragingen die de code beneden alot vertraagt, deze moeten worden verwijderd (kijk in het cpp-bibliotheekbestand naar aanwijzingen).
In het kort doet de code (in volgorde van hoe het wordt weergegeven in de bijgevoegde code):
VOORAF HOOFDLUS
-#defines M en C-waarden voor de lineaire en log vergelijkingen nodig is om te vertalen van de bits-waarden voor de ingangen. dat wil zeggen y = mx + c en y = Mlog (x) + C
-#defines maten voor gemiddeld matrix, bemonstering tijden, histerisis niveaus, Pins, EEProm opslaggrootte.
-definieert van variabelen, waarden enz te activeren.
MAIN LOOP
-Lees in sensor-waardes van elke "SENSOR_INTERVAL" milliseconden.
-Zet de nieuwe waarden in een matrix, en berekent het gemiddelde van deze array.
-Berekeningen worden uitgevoerd op de gemiddelden te geven van een 'juiste' waarde d.w.z. heeft (excuses aan mijn Amerikaanse neven maar ik ben metrisch), ppm (co2), relatieve vochtigheid.
-Drukt updates van nieuwe temp, luchtvochtigheid en CO2-niveaus aan LCD shield.
-Waarden worden opgeslagen aan eeprom elke "EE_PROM_INTERVAL" milliseconden.
-Trigger trigger Relais als balg/boven, elke 'INTERVAL' milliseconden.
-Toetsenbord code die implementeert een rudimentaire menusysteem waardoor triggering waarden worden gewijzigd en EEPROM waarden aan serial worden gedumpt.
-Funtions om te helpen met gemiddeld en toets selectie.
Ik heb geprobeerd een verklaring binnen de code wat elke sectie, met alle middelen gaan in en neem een kijkje te geven. Bent u meer geneigd om uit de weg te lezen van de code, Let op: de belangrijkste dingen om op te merken zijn de verklaringen van de #define voor het manipuleren van de intervallen voor het lezen, triggering en gemiddeld en de verklaringen van de #define voor het kalibreren van M en C waarden.
Deze zijn allemaal gelegen op de top van de code dus neem een kijkje en veel plezier bij het gehannes.
Houd er rekening mee dat de code gebruikmaakt van de bibliotheek van de EEprom voor lezen schrijven eeprom waarden, de lcd4bit-bibliotheek (gewijzigd, vertragingen worden verwijderd en de pinouts gewijzigd) voor de lcd schild en stdlib voor het omzetten van int in char voor het schrijven naar de LCD display.