On va donc essayer de faire simple et d'expliquer le montage proposé.
Tout d'abord, il faut connaître la technologie de la batterie car les seuils de surcharge et de décharge profonde en dépendent.
Pour la démo, on va partir sur une batterie au plomb (gélifiée), souvent utilisée.
On va donc considérer qu'il faut au moins 12V et ne pas dépasser les 13,5 V (seuils empiriques à affiner plus tard).
Une diode Zener est une diode qui ne laisse passer le courant que si la tension appliquée atteint son seuil. Une fois "amorcée" le courant n'est limité que par la résistance en série (ou la destruction de la diode). Une diode Zener s'utilise " à l'envers" d'une diode classique.
Dans notre utilisation, il n'est pas nécessaire d'avoir des diodes de forte puissance car on va limiter le courant à 5 mA et le GPIO ne consomme rien (de mesurable).
Un même modèle de diode est décliné en série de différentes valeurs. Un bon exemple est ce modèle:
http://html.alldatasheet.com/html-pdf/5 ... 9C3V3.html
Facilement disponible chez en France, chez Conrad par exemple au prix de 0.15€ la pièce:
http://www.conrad.fr/ce/fr/product/1263 ... tAQAvD_BwE
Comme déjà indiqué, le GPIO du Rasperry, même s'il ne consomme presque rien, ne supporte pas une tension de plus de 3.3V. Au delà, vous risquez de détruire le port concerné VOIRE tout le SOC (le cœur du Raspberry) et ce n'est pas réparable.
Je recommande fortement de tester ce montage (ou d'autres) sur une platine d'essais (breadboard) avant de relier au Raspberry.
Comme je ne suis pas doué pour le dessin je décris le montage comme vous l'avez fait:
-) un fil part du + de la batterie et rejoint la patte d'une résistance de 330 Ohm.
-) un fil part de la 2 ème patte de la résistance de 330 Ohm et va à l'anneau d'une diode Zener de 9V (modèle BZX79C 9V1)
-) la patte libre de cette diode rejoint l'anneau de la 2 ème Zener de 3.3V (modèle BZX79C 3V3)
-) un fil part de la patte libre de la 2ème Zener et rejoint la masse.
-) Le point commun des 2 diodes Zener est relié à une patte d'une résistance de 15 kOhm.
-) C'est sur la patte libre de cette résistance que l'on détectera le dépassement du seuil batterie trop chargée.
Plus tard, cette patte sera reliée à un port GPIO pour lecture par le programme, En attendant, vous pouvez mesurer la tension avec un voltmètre digital (même bon marché). L’idéal serait de disposer d'une petite alimentation variable mais on peut aussi utiliser des piles mises en série. La tension peut varier un peu, en fonction de la tolérance des composants (diodes, résistances).
Si ce montage fonctionne, le reproduire mais en changeant la diode du haut afin de détecter le seuil de décharge.
Cela fournira un deuxième signal qui sera exploité par un deuxième port du GPIO.
La logique est assez simple à programmer:
Si seuil inférieur = 1 alors batterie OK et j'allume la lumière.
Si seuil supérieur = 1, alors batterie en surcharge, j'allume la lumière ET je sonne l'alarme.
Si aucun des seuils n'est à 1 alors la batterie est en décharge dangereuse (ou pas branchée), je n'allume pas la lumière et je sonne l'alarme.
C'est plus vite réalisé que décrit, surtout avec une breadboard et le coût est ridicule. J'insiste sur la nécessité de tester et d'être très attentif lors du branchement au Raspberry.
Sylvain