Deux Minuteries Universelles

Deux minuteurs ! un seul et même programme ....

Les Généralités :

Univ timer box

 

          Toujours utiles pour cuire des oeufs à la coque ou insoler du circuit imprimé pré-sensibilisé, je publie deux minuteurs : Un qui est portatif et autonome, et l'autre qui peut commander directement le circuit de l'insoleuse ou du toaster (attention au pouvoir de coupure du relais !) ! Le premier nous avise que le temps est écoulé par un "Ti Ti Ti Taaaa " de beep, avec un fonctionnement autonome sur pile (donc totalement portable) et le second, lui est raccordé sur l'appareil à arrêter lorsque le temps est terminé . En toute simpicité, car c'est le même programme pour tout les deux !

La description : (ou ça fait quoi ?)

          Un seul gros bouton accouplé à un encodeur incrémental permet la mise en marche par appui, de charger le temps mémorisé grace à une action longue, ou de régler les secondes,  par rotation dans le sens horaire ou les minutes dans le sens anti-horaire, et validé par une pression sur le bouton ... 

Le temps étant lancé, on peut également l'enregistrer pour une utilisation similaire; il suffit d'appuyer quand la bonne valeur défile sous vos yeux ...

          La visualisation se fait par un afficheur à quatre digits à sept segment ! Une fois la tempo lancée, une réduction du contraste limite l'usure de la pile et la pollution lumineuse ; ce dernier est rétabli pendant la dernière minute et un beep nous indique que le temps est arrivé à zéro !

          Le modèle autonome est logé dans un boitier Heiland Crystal compact et bien agencé ! (C'est bien dommage que l'on ait de plus en plus de mal à s'en procurer ). Sur l'autre temporisateur, je n'ai pas mis de boitier, mais des trous de fixations pour l'intégrer dans l'équipement qui lui est asservi .

 

Le schéma du premier (l'autonome ) 

Univ timer sch

 

          Lors de l'appui sur le bouton de l'encodeur incrémental, on vient d'une part shunter le contact du relais pour alimenter l'Arduino Nano, qui va assurer la relève en excitant, dans ses premiers pas de programme, la bobine de ce même relais pour assurer son auto-maintient, et d'autre part, vient donner à l'entrée (D6) les informations de validation. Ces dernières sont ramenées à un potentiel acceptable via la résistance de 1K (R6) et limitées par la diode zener de 4,7 volt (D2). Une autre diode 1N4148 (D1) sert d'anti-retour de la tension de pile sur cette entrée . 

          L'encodeur incrémental fourni deux signaux déphasés, l'un par rapport à l'autre, de 90° dans un sens et 270° dans l'autre. Grace à ça on peut définir dans quel sens tourne l'encodeur : les signaux changent de niveau logique tout le 180° => si B  monte lorsque A est à "1" ,on est dans le sens horaire et si B monte alors que A est à "0" , on tourne dans le sens anti-horaire (génial, non ?) Ces signaux sont appliqués aux entrée D4 et D5 du micro-contrôleur . Trois résistances de Pull-down ( R3... R5) ramènent les pins aux potentiel bas, pour ne pas laisser les entrées en l'air !

          Un buzzer piezzo nous avise de la fin de tempo: on peut utiliser aussi un petit haut parleur, mais il faudra faire quelques modifications sur la boucle de beep dans le programme . L'amplification en courant reste la même: un CMS 2N2222 (U$3), limité par la résistance de base de 22K (R2), vient attaquer le beeper monté dans sa charge de collecteur. 

          On respect la même configuration pour le relais de l'alimentation ... Il faut juste faire attention au fait que, si l'on utilise une autre référence de relais, il faut s'assurer qu'il inclue bien une diode de roue libre, sinon il faudra l'ajouter, pour ne pas avoir de soucis avec les transitoires et effets de self rupture lors des commutations .

          L'afficheur est du type 4 digits / 7 segments piloté par un CI driver TM1637, qui le rend tellement souple d'emploi et qui ne coûte qu'un demi Euro chez les fournisseurs Chinois ... Il lui suffit d'un peu de 5 volt fourni par le régulateur intégré de l'Arduino et deux signaux: une horloge pour la synchronisation (CLK) et des trames de données  bi-directionnelles (DIO)... Des bibliothèques toutes faites sont disponibles sur les réseaux  (elle n'est pas belle la vie ?)

 

Le circuit imprimé :

Univ timer cmp

Univ timer pcb

          Un circuit simple face, pour une réalisation facile et un seul strap ... Autant que possible du CMS pour limiter le prix et le travail de perçage . Sur le µcontroller Arduino, je ne soude que les 4 coins et les pinuches utilisées, dans un but de remplacement facile, si tel devait être le cas ...

Univ timer sld

Univ timer cab

 

Le Logiclel :

          Le sketch est développé dans l'IDE Arduino, sans souci particulier; Il est disponible dans le fichier Zip plus bas ... Richement documenté pour bien assimiler ce que j'ai voulu faire, je ne vais pas le détailler ici ... Je ne vais qu'approfondir, pour le côté pédagogique, la partie qui traite de la gestion de l'encodeur .

La première partie cerclée définie les raccordements physiques du codeur; alors la deuxième montre la création des variables mémorisées pour définir la gestion et les précédents états logiques de chaque sortie, qui sont utilisés plus tard dans un but de comparaison .... 

Univ timer prgm

 

          Ci-dessous on vient comparer l'état mémorisé et l'état actuel de la première pinuche; si c'est différent, c'est que ça a tourné ! donc dans la foulée on vient lire l'état de la deuxième pinuche; Si c'est un état logique haut c'est dans le sens anti horaire; sinon c'est dans les sens horaire ! L'un incrémente les minutes et l'autre incrémente les secondes . Puis on re-mémorise l'état logique de la première pinuche après un anti rebond de 20 ms ... 

Univ timer prgm1

           Voilà la manière de gérer l'encodeur en m'affranchissant des vecteurs d'interruption disponibles sur les entrées D2 et D3  de l'Arduino après déclaration comme tels ! et ça fonctionne très bien si le programme ne tourne pas sur une autre boucle ! Dans ce cas, c'est même un avantage de ne pas sortir du programme, en cas de manipulation involontaire du bouton de commande !

 

Le schémas du second :

Univ timer sw sch

          Pas de changements majeur sur ce deuxième schémas; seulement les composants du dispositif de mise en route qui ont disparus . On alimente directement le montage par une source de 6 à 12 Volts continus issue de l'appareil à commander, si cette option est possible ... Le relais d'alimentation a été remplacé par un relais avec un pouvoir de coupure un peu plus élevé, qu'il faudra interfacer d'un contacteur en cas de charge trop élevée . Une diode de roue libre (D1) est nécessaire car le relais que j'ai utilisé ne l'inclue pas ... 

Univ timer sw cmp

Univ timer sw pcb

          Un bornier de raccordement permet d'effectuer les connections avec le monde extérieur et des trous de fixations assurent le maintient du circuit dans son milieu . Les deux trous de droite sont communs a l'afficheur et au pcb pour un montage traversant et partagé par les même vis . 

 

Les fichiers pour la réalisation :

Univ timer fileUniv timer file (108.06 Ko)

 

          Sans prétentions aucune, ces deux montage simples, trouveront leur utilité dans la cuisine, l'atelier et plein d'autre application ... Le côté original repose sur la gestion de l'encodeur rotatif, utilisable pour plein d'autres application et qui rappel les coffres-forts d'une certaine époque ! (ça laisse rêveur !) 

Ajouter un commentaire