Stap 2: De code
De code wordt de volgende bibliotheken:
- Wire.h - om te communiceren met de klok DS1307
- LiquidCrystal.h - om te laten zien van de tijd op het scherm en het menu
- Math.h - deze bibliotheek is hier gewoon omdat ik zie wilde/tonen hoe u het kunt gebruiken in plaats van bitverschuiving, maar kan gemakkelijk worden verwijderd en de weinige plekken waren dat wordt gebruikt kan vervangt met bitshifting
- EEPROM.h - dit wordt gebruikt voor het opslaan van de instellingen in de eeprom
De code is vrij lang, maar duurt het ongeveer de helft van de beschikbare ruimte in de Arduino, dus er is nog ruimte voor verbeteringen.
De volledige code is in de attachement dus ik net sommige delen van het hier gewoon om een paar dingen uitleggen zetten zal, aangezien de taal gebruikt voor commentaar in Roemeense niet Engels (Nou, wat kan ik zeggen... Ik schrijf wat ik spreken :)):
In het gedeelte van het definiëren van het programma hebben we:
#define DS1307_I2C_ADDRESS 0x68 //this is de i2c adres van de DS1307-chip
#define PIN_STG 8 //the arduino pin gebruikt voor de linker knop in het menu
#define PIN_MENU 2 //the arduino pin gebruikt voor de menuknop
#define PIN_DR 10 //the arduino pin gebruikt voor de rechten van de knop in het menu
#define PIN_COMMAND_A A1 //relay A
#define PIN_COMMAND_B A2 //relay B
#define PIN_COMMAND_C A3 //relay C
#define PIN_COMMAND_D A0 //relay D
#define PIN_COMMAND_E 7 //relay E
#define PIN_COMMAND_F 9 //relay F
#define PIN_COMMAND_G 13 //relay G
#define DESCHIS lage //Deschis betekent open zodat het Relais wordt normaal geopend
#define InChI hoge //Inchis middelen gesloten, zodat wanneer een alarm gaat op, de relais zal worden gesloten
Ik zou zeggen dat de rest van de code ongecompliceerd is. Het aantal wartaal code bevat die maakt de microcontroller gelukkig en neemt geen ruimte zodat ik kan in het menu verplaatsen of de leesinstellingen etc.), maar de rest is gewoon Arduino code.