Des sketchs à ajouter à ArdPyLog (suite)


15. Temporisateur d’alimentation TPL5110
(Utiliser un temporisateur d’alimentation pour allumer une DEL – Catégorie: Divers)

 

L’objectif de cette activité est d’utiliser un temporisateur d’alimentation (TPL) pour allumer une DEL pendant 1 s avant que le microcontrôleur indique ensuite au TPL de couper son alimentation.

 

Description du TPL5110

Le temporisateur d’alimentation Adafruit TPL5110 permet d’allumer et d’éteindre automatiquement un microcontrôleur en utilisant un timer intégré qui peut varier d’une fois tous les 100 ms à une fois toutes les deux heures.


En pratique, le TPL s’allumera périodiquement (la périodicité étant réglable par un potentiomètre intégré ou une résistance), et allumera alors l’alimentation du microcontrôleur. Il attendra ensuite qu’un signal soit reçu du montage pour indiquer au TPL qu’il peut désactiver en toute sécurité l’alimentation.


Lorsque le TPL5110 est en cours d’exécution (mais le reste du montage avec le microcontrôleur est désactivé), la consommation est d’environ 20 uA.


Il est également possible d’activer le TPL en appuyant sur le bouton poussoir intégré.


Broches d’alimentation

. VDD :
Il s’agit de la broche d’entrée d’alimentation pour la puce TPL5110 et l’appareil que vous souhaitez contrôler. Assurez-vous qu’il est toujours connecté et alimenté sous 3-5 VDC.

. GND :
Il s’agit d’une masse commune pour l’alimentation et le signal.
Broches de contrôle

. Delay :
C’est la broche de contrôle du délai entre les alimentations. En ajustant la résistance connectée à cette broche et à la terre, le délai entre 2 alimentations est modifié.
Par défaut, il est connecté au potentiomètre intégré. Cependant, vous pouvez couper la trace à l’arrière (Trim Enabled) de la carte puis connecter votre propre résistance entre Delay et GND. De plus, si cette broche est connectée directement au VDD (par exemple via un interrupteur), elle activera la sortie instantanément.
Notez que cette broche n’est pas échantillonnée en continu. Vous devez supprimer et réappliquer l’alimentation une fois que vous avez changé la résistance !

. DRV :
C’est la broche de sortie du variateur, le TPL5110 alimentera cette broche avec la même tension que celle du VDD lorsque l’alimentation s’activera.

. Done :
Il s’agit de la broche de signal du microcontrôleur vers le TPL5110 pour lui faire savoir que tout ce qu’il avait à faire est  » terminé  », et que le TPL5110 peut l’éteindre (couper son alimentation)

 

Il y a aussi une LED en haut à droite. Cela vous permettra de savoir quand la broche DRV est sous tension. La LED consomme un peu de courant, donc si vous avez besoin d’une consommation de courant ultra-faible, coupez la trace (LED Enable) derrière la carte.


Utilisation avec le potentiomètre intégré:

Tout d’abord, réglez le retard désiré en ajustant le potentiomètre de la carte : à gauche pour au maximum « une fois par 100ms » et à droite pour au minimum « une fois toutes les 2 heures ».

Assurez-vous d’alimenter les broches VDD et GND. Connectez ensuite le microcontrôleur aux broches DRV et GND.

Utilisez une broche DONE de votre microcontrôleur pour signaler quand le TPL peut désactiver l’alimentation.

Lorsque la broche DONE passe d’un niveau bas à un niveau haut, cela désactivera le transistor de puissance du TPL.

Si le TPL n’obtient pas de signal DONE, il réinitialisera la carte lorsque le délai d’expiration est atteint (avant le cycle suivant).

 

Utilisation avec une résistance:

La durée de temporisation n’est pas linéaire avec la résistance, il existe un algorithme pour régler la durée en fonction de la résistance.

Vous pouvez consulter la fiche technique pour un calcul précis, ou utiliser ce tableau approximatif :

 

Le programme

Voici le code de l’activité :

// Déclaration des constantes et variables

const int PinLED = 8;
const int DonePin = 2;


// Initialisation des entrées et sorties

void setup() {
pinMode(DonePin,OUTPUT);
pinMode(PinLED,OUTPUT);
digitalWrite(DonePin, LOW);
digitalWrite(PinLED, LOW);
}


// Fonction principale en boucle

void loop() {

digitalWrite(PinLED, HIGH);
delay(1000);

while (1){
digitalWrite(DonePin, HIGH);
delay(1);
digitalWrite(DonePin, LOW);
delay(1);
}
}

 

Déroulement du programme :

– 1. Déclaration des constantes et variables :

. const int PinLED = 8 (constante nombre entier correspondant au n° de la broche sur laquelle la DEL est connectée)

. const int DonePin = 2 (constante nombre entier correspondant au n° de la broche sur laquelle la broche Done du TPL est connectée)

 

– 2. Initialisation des entrées et sorties :

. La broche de la DEL et de la broche Done du TPL sont initialisées en sorties digitales.

pinMode(PinLED, OUTPUT)
pinMode(DonePin, OUTPUT)

. La broche de la DEL et de la broche Done du TPL sont mises à un niveau bas.

digitalWrite(DonePin, Low)
digitalWrite(PinLED, Low)

 

– 3. Fonction principale en boucle :

. Niveau haut sur la broche de la DEL : digitalWrite(PinLED, HIGH)

. Attente pendant 1 s : delay(1000)

. Déclenchement de la broche Done :

while (1){
digitalWrite(DonePin, HIGH);
delay(1);
digitalWrite(DonePin, LOW);
delay(1);
}

 

Quand la broche Done du TPL passe à un niveau haut, l’alimentation est coupée. Au bout d’un temps correspondant à la durée de temporisation, l’alimentation est rétablie et le microcontrôleur exécute une nouvelle fois le code en mémoire et ainsi de suite.

Pour une utilisation optimale, il faut que la durée de temporisation soit supérieure à la durée d’initialisation du microcontrôleur. En pratique, la durée de temporisation ne devra pas être inférieure à 5 s.