Arduino flera timer. Dag bygger och alarm baserat (2 / 2 steg)
Steg 2: Koden
Koden använder följande bibliotek:
- Wire.h - att kommunicera med DS1307 klockan
- LiquidCrystal.h - att visa tiden på skärmen och på menyn
- Math.h - detta bibliotek är här bara för att jag ville se/Visa hur du kan använda det i stället för lite skiftande, men kan lätt tas bort och de få ställena var det används kan vara ersätts med bitshifting
- EEPROM.h - används för att lagra inställningarna till eeprom
Koden är ganska lång, men det tar ungefär hälften av det tillgängliga utrymmet i Arduino, så det finns fortfarande utrymme för förbättringar.
Hela koden är i attachement så kommer jag bara att inte lägga vissa delar av det här bara för att förklara några saker eftersom språket som används i kommentarerna är Rumänska Engelska (Tja, vad kan jag säga... Jag skriver vad jag talar :)):
I definiera delen av programmet har vi:
#define DS1307_I2C_ADDRESS 0x68 //this är DS1307 chip i2c-adress
#define PIN_STG 8 //the arduino pin används för den vänstra knappen i menyn
#define PIN_MENU 2 //the arduino pin används för knappen menu
#define PIN_DR 10 //the arduino pin används för knappen rättigheter i menyn
#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 låg //Deschis innebär öppen så att reläerna öppnas normalt
#define INCHIS hög //Inchis innebär stängda, så att när ett larm går på, reläer stängs
Jag skulle säga att resten av koden är rakt fram. Det innehåller några rotvälska kod som gör mikrokontroller glad och tar inte utrymme så att jag kan gå i menyn eller läsa inställningar etc.), men resten är bara Arduino kod.