Stap 3: Broncode en IDE
De broncode van het project kan worden geopend vanuit mijn elektronica repository in GitHub. Voel je vrij om de code te onderzoeken, te gebruiken (geef het krediet wanneer verschuldigd is), en verbeteringen voor te stellen.
We gebruiken de bedrading van de v.1.0.1-dev als IDE (Integrated Development Environment), die momenteel alleen beschikbaar voor Windows en Mac OS is (: (we missen de GNU/Linux versie).
Voor het gebruik van gemeenschappelijke Arduino bibliotheken zoals TMRpcm (voor het afspelen van WAV bestanden vanaf SD kaarten) op bedrading, moet men tweaken van hun broncode, bijvoorbeeld door het opnemen van Wiring.h in plaats van Arduino.h. Aangezien bleek te zijn een beetje van een pijn, delen we ook de gehele omslag van de bedrading, met inbegrip van geconfigureerde bibliotheken voor het vermijden van u dergelijk proces.
EEPROM
Alarm instellingen perdurable gebruiken we de EEPROM (elektrisch wisbaar programmeerbaar alleen-lezen geheugen) te maken van uur (2 KB) geboden door bedrading S. De broncode is zodanig geoptimaliseerd dat het voorkomt dat schrijven naar hetzelfde adres EEPROM ook vele malen (EEPROM geheugen heeft een levensduur op basis van het aantal lees-/ schrijfbewerkingen). Bijvoorbeeld, wanneer u minuten instelt, schrijven we alleen de definitieve nummer en niet tussentijdse ones. We 11 EEPROM adressen gebruiken voor het opslaan van 4 variabelen (ingeschakeld, type, uren en minuten) voor alarm 1, 4 (ingeschakeld, type, uren en minuten) voor alarm 2 en 3 (ingeschakeld, uren en minuten) voor waarschuwing modus.
Maan fase berekening
We lenen de functie voor de berekening van de maanfase van http://www.ben-daglish.net/moon.shtml en het inspelen van C++-code. Het is een functie die is gebaseerd op een algoritme door John Conway, die meestal de correcte maanfase geeft. Het is niet nauwkeurig, maar de fout is verwaarloosbaar voor onze doeleinden.