Horloge sur Arduino
L'objectif de ce projet était de réaliser, avec la carte Arduino, une horloge avec un écran LCD récupéré sur un fax hors-service.
Quelques précisions tout d'abord :
- l'écran LCD que j'ai récupéré est un écran présentant 1 ligne de 16 caractères qui est décomposée « physiquement » en 2 lignes de 8 caractères côte à côte. Si vous voulez réaliser cette horloge ou vous inspirer de ce programme, adaptez si nécessaire le code à l'écran LCD que vous utiliserez ;
- l'objectif était de réaliser une vraie horloge avec une précision correcte et c'est le cas, mais je n'ai inclus dans le code aucun réglage de précision prenant en compte la précision réelle du quartz, je suppose dans ce code que le quartz à une précision exacte de 16 MHz et je néglige le temps de RAZ du compteur, de branchement sur l'interruption, ? Petites approximations, mais le code pourrait inclure une correction plus précise encore ;
- le code présenté demande une certaine connaissance de l'environnement de développement d'Arduino pour être mis en ?uvre, si vous n'êtes pas sûr de vous c'est à vos risques et périls que vous entreprendrez cette entreprise. Le risque c'est que vos autres programmes ne compilent plus et que vous ayez à ré-installer l'environnement de développement d'Arduino.
Les difficultés rencontrées
1 - l'environnement de développement Arduino ne gère pas les interruptions, ce qui est très ennuyeux pour générer des appels à des fonctions à intervalles très réguliers ;
2 - je n'ai pas réussi à utiliser les librairies comme « timer.c », ? directement dans le programme, j'ai donc du modifier certains fichiers de l'environnement de développement ;
3 - la routine d'interruption devant nécessairement être placée dans le fichier « wiring.c » j'ai donc du modifier certains fichiers de l'environnement de développement pour communiquer via une variable entre les déférentes fonctions du programme ;
4 - la taille du programme dépassait la taille mémoire disponible dans l'environnement de développement configuré par défaut, j'ai donc du modifier certains fichiers de l'environnement de développement pour réduire la taille totale du programme.