Programmateur Arduino pour machine à laver

Colin a travaillé sur un programmateur pour différer le départ d’une machine à laver, le tout réalisé en Arduino. Il a tout documenté sur son blog Arduino et bouts de ficelle, dont vous retrouverez l’article ci-dessous :

Shield maison pour programmateur universel

Objectifs

Au détour d’une conversation, mon frère m’a dit qu’une chose l’ennuyait avec sa machine à laver: c’est un modèle qui ne permet pas de départ différé. L’utilisation d’un programmateur se branchant sur la prise électrique ne permet pas de résoudre se problème, car il faut appuyer sur un bouton pour lancer le cycle de lavage. Je lui ai donc proposé de réaliser un programmateur résolvant son problème.

Les contraintes sont un peu différentes du programmateur pour four que j’ai réalisé. D’abord, il faut modifier au minimum la machine à laver (soudure, perçage …). Cela signifie qu’il faut une alimentation et un boitier externe. Ça a l’avantage de laisser toute la liberté pour la conception de l’interface ! D’autre part, contrairement au four, la fonctionnalité est très simple: pas de sonnerie, pas besoin de multiples programmes … et je me suis fixé comme objectif de pousser au maximum cette simplicité et de conserver des coûts modestes. Pas d’afficheur LCD 4×20 cette fois (et encore moins graphique) mais un simple afficheur 4×7 segments suffira. Pas besoin non plus de conserver l’heure et la date, donc pas de DS 1307.

J’ai décidé de m’orienter vers une interface  simple et intuitive en utilisant un encodeur rotatif avec bouton poussoir. Un seul bouton servira donc à régler le délai de déclenchement (en tournant) et à lancer le compte à rebours (en appuyant). L’afficheur doit non seulement afficher le décompte mais aussi permettre de visualiser si le compte à rebours est en cours où non. Le séparateur décimal (le . servant de virgule au pied de chaque chiffre) permettra d’afficher un point défilant lorsque le décompte est en cours. De plus, tourner le bouton sera sans effet durant le décompte. Appuyer dessus permet de mettre en pause le décompte et d’ajuster à nouveau le délai. Afin que le réglage se fasse plus rapidement, et parce qu’une précision supérieure est inutile, le pas sera de 15 minutes.

Réalisation du circuit

Afficheur

L’afficheur est un YSD-439AB4B-35 (datasheet). Le circuit fournit dans le datasheet permet de comprendre comment il fonctionne: ce n’est en fait qu’un ensemble de 35 leds câblées de manière intelligente afin de pouvoir être contrôlées simplement. 4 pins permettent de sélectionner le chiffre que l’on désire contrôler en la passant à l’état bas (0V). 8 pins permettent de sélectionner les segments à allumer (ce sont les mêmes 8 pins pour les 4 chiffres: 7 segments pour le chiffre et un pour un point (.) en bas à droite du chiffre). Pour afficher plusieurs chiffres en même temps, l’astuce consiste à faire clignoter les LED rapidement, chacune à son tour, en sélectionnant à chaque fois les segments à allumer pour afficher le chiffre désiré. Les 3 LEDs et 4 broches restante servent à allumer les deux points (:) au milieu des 4 chiffres et un point supérieur placé en haut du 3è chiffre.

En théorie, l’afficheur ne devrait pas être soumis à une tension supérieure à 3.5V. De plus, chaque LED peut nécessiter un courant de 20mA en moyenne et de 30mA en pic. Il serait donc préférable d’utiliser des résistances pour limiter le courant.

Cependant, si l’on regarde le datasheet de l’ATMega 328P (le micro-contrôleur de l’arduino), on peut trouver le diagramme suivant:

ATMega328P_ioVCC5V

Ce diagramme signifie que pour une tension aux bornes de la LED de 3.5V, le courant que fournira l’arduino sera d’environ 40mA, courant qu’il peut supporter. Ce courant est normalement un peu élevé pour la LED mais ne sera fournit que pendant un laps de temps très court. En théorie, on reste au delà des limites. En pratique, cela ne pose pas de problème, probablement grâce à la marge de sécurité prise aussi bien côté ATMega que côté afficheur. Bien sûr, il vaut mieux éviter ce genre de raisonnement sur un circuit critique !

[…]

Lire la suite sur le blog de Colin : Arduino et bouts de ficelle

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.