Projet Réveil-Matin (partie II)

Dans le précédent article, un projet d'horloge réveil-matin a été présenté, quant à son cahier des charges et sa logique de fonctionnement.
Le présent article va traiter de la partie électronique du projet. Après une description du schéma technique, le câblage sera présenté sur une console de prototypage pour un concrétisation opérationnelle du projet.

Schéma électronique

  • Le projet est basé sur un Arduino Uno.
  • Un module LCD 1602 permet d'afficher l'heure. Ce module permet plusieurs schémas de connexion avec l'Arduino. Pour ne mobiliser qu'un minimum de pins sur celui-ci, le choix a été de ne connecter que 6 pins du LCD — RS, E, D4, D5, D6, D7 — respectivement sur les pins 7 à 12 de l'Arduino.
  • Un potentiomètre de 10 KΩ, connecté sur la pin V0 du LCD, permet de régler le contraste de celui-ci.
  • Trois boutons poussoirs S1, S2 et S3, connectés sur les pins 3 à 5 de l'Arduino, sont utilisés respectivement comme bouton de de commande, et pour incrémenter ou décrémenter les valeurs HH (heures) et MN (minutes) de l'horloge.
  • Trois condensateurs de 20nF C1, C2 et C3 sont connectés en parallèle des boutons poussoirs pour amortir les rebonds.
  • Un buzzer passif, connecté sur la pin 2 de l'Arduino, permet d'émettre le signal sonore de l'alarme de l'horloge.

Schéma de câblage

Afin de tester le fonctionnement de l'horloge, voici, ci-dessous, le schéma de câblage sur une console de prototypage :

Conclusion

Ce câblage étant réalisé, le prototype est prêt à être programmé
L'article suivant traitera  de l'architecture de l'application en définissant une classe Clock permettant de la prise en charge en C++ des événements de l'automate de l'horloge. Des articles annexes peuvent être consultés :

  • L'utilisation des boutons avec la classe Button en distinguant les pressions courtes des pressions longues nécessaires au pilotage de l'horloge.
  • La classe Timer permettant d'émettre périodiquement de événements selon un fréquence donnée.
  • La bibliothèque Event basée sur le design pattern Observer, permettant la gestion des événements.

Commentaires

Posts les plus consultés de ce blog

Afficheur à LED 7 segments (classe SegmentLedDisplay)

Piloter un clavier matriciel sur le bus I2C avec un PCF8574

Utiliser Visual Studio Code pour développer sur Arduino