Étape 2: Le code
Le code utilise les bibliothèques suivantes :
- Wire.h - pour communiquer avec l’horloge DS1307
- LiquidCrystal.h - pour indiquer le temps à l’écran et le menu
- Math.h - cette bibliothèque est ici juste parce que je voulais voir/montrer comment vous pouvez l’utiliser à la place de décalage de bits, mais pouvez être facilement enlevé et le peu d’endroits était qu'il sert peut être remplace par bitshifting
- EEPROM.h - ceci est utilisé pour stocker les paramètres dans l’eeprom
Le code est assez long, mais il faut environ la moitié de l’espace disponible dans l’Arduino, donc il est toujours possible en améliorations.
L’ensemble du code est dans la pièce jointe donc je vais juste mettre certaines parties de celui-ci ici juste pour expliquer quelques petites choses puisque la langue utilisée dans les commentaires est roumaine pas anglais (Eh bien, que puis-je dire... J’écris ce que je parle:):)
Dans la partie de la définition du programme, nous avons :
#define DS1307_I2C_ADDRESS 0x68 //this est l’adresse i2c de la puce DS1307
#define PIN_STG 8 //the arduino NIP utilisé pour le bouton de gauche dans le menu
#define PIN_MENU 2 goupille d’arduino //the utilisée pour le bouton de menu
#define PIN_DR 10 //the arduino NIP utilisé pour le bouton de droits dans le 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 LOW //Deschis signifie ouvert afin que les relais seront normalement ouverts
#define INCHIS haute //Inchis moyens fermé afin que si une alarme s’allume, les relais seront fermées
Je dirais que le reste du code est simple. Il contient un code de charabia qui rend le microcontrôleur heureux et ne prend pas de place pour que je peux aller dans le menu ou lire les paramètres, etc.), mais le reste est juste Arduino code.