Capacité d'une pile 9V / Arduino

Bonjour à tous :slight_smile:

J'ai un petit projet que je vous résume vite-fait : détecteur de présence qui allume 3 Led.

Avec donc :

  • Arduino UNO
  • 3 Leds (et les résistances)
  • 1 Photorésistance pour tester la valeur de la luminosité ambiante
  • un détecteur infrarouge dont voici les caractéristiques :
    Ø Detector range: 7m
    Ø Detector angle: 110°
    Ø Power Voltage: 4.5 -- 20V DC
    Ø Level Output: TTL Voltage output (high 3.3V, low 0V)
    Ø Level Holding Time: 0.3-18 seconds adjustable
    Ø Trigger method: L unrepeatable trigger; H repeatable trigger
    Ø Quiescent current: 50uA
    Ø Environment temprature: -20?—+50?
    Ø PCB Dimension: 32*24mm

En gros les LED s'allument seulement quand il fait noir et que quelqu'un passe devant le detecteur. L'Arduino doit donc être en permanence alimenté et la loop() doit tourner.

Mais voilà j'aimerai alimenter le tout via une pile traditionnelle 9V et la prise 2.5mm de l'Arduino.

Ma question, combien de temps ma pile pourra tenir pour un tel projet (à raison de 2/3 détections de présence [et donc allumage des LEDs] par tranche de 24h) ?
Comment calculer ce temps en fonction des éléments ?

Merci pour votre aide :slight_smile:

Une pile 9V alcaline a une capacité de l'ordre de 500 mAh
Elle peut donc fournir : 50mA pendant 10h , 25mA pendant 20h,10mA pendant 25h......
Le calcul de la durée de fonctionnement nécessite de connaitre le courant consommé par l'ensembledu montage,c'est à dire içi essentiellement le courant consommé par la carte Arduino.
C'est environ 50mA je crois.
-> Donc durée 10h seulement si l'Arduino tourne en permanence dans sa boucle loop.

Il est dommage de gaspiller toute cette énergie à attendre l'évènement extérieur. Si la boucle loop passe l'essentiel de son temps à attendre le signal du détecteur et s'il n'y a pas d'autre tâche à effectuer pendant ce temps d'attente il serait avantageux de mettre le Mega328 en sommeil (sleep).
Grâce àune interruption externe activée au préalable le Mega328 serait 'réveillé' par le détecteur de présence pour effectuer le travail avant de se rendormir. (=prise en compte de la valeur de la photorésistance et allumage éventuel des leds)
Sur une carte Arduino, contrairement à un montage 'standalone', la réduction du courant sera modérée car il reste encore le courant de repos du régulateur, la led 'ON', le FTDI ou le Mega8u2..... au total peut etre 20mA et une pile qui tiendra moins de 24h !

Merci pour ta réponse, j'ai pas trop compris comment mettre le arduino en sleep... mais bon j'ai compris que la pile c'était pas bon :smiley:

Donc en gros pour faire fonctionner quelquechose à pile il faut forcemment du "standalone" ?

Voilà une page un peu ancienne qui parle des divers modes "sleep" et du réveil par interruption.
http://www.arduino.cc/playground/Learning/ArduinoSleepCode
Sur une carte Arduino il y a effectivement trop de composants autour qui 'bouffent' du courant même si l'Arduino est en veille.
Avec un montage 'standalone' par contre seule entre en ligne de compte la consommation du microcontrolleur. Le Mega 328 possède toute une palette de modes d'économies d'énergie variés (modes sleep, mode iddle, powersave, standby ...) qui 'coupent' plus ou moins de fonctions internes du micro.
En gardant un oscillateur à 16MHz il est possible de descendre vers 1mA. En abaissant la fréquence du micro on peut aller encore plus bas. exemple :» LowPower » JeeLabs

Merci pour tes réponses, je prendrai le temps de regarder ces principes de consommation.

Mais même en étant à 1mA ma pile 9V tiendrai environ 20 jours non-stop, ce qui n'est pas bon pour mon projet...

Mais comment fonctionne un réveil par exemple, pour qu'il tienne aussi longtemps sans changer les piles ?

Je m'écarte du sujet mais sinon en faut que je trouve une alternative à la pile, donc alimenter mon projet directement via une prise électrique... J'arrive pas à trouver d'exemples pour relier à un Arduino à une prise de manière "propre"...

Merci :slight_smile:

EDIT : C'est bon j'ai trouvé, c'est quelque chose comme ça qu'il me faut.
http://shop.snootlab.com/alimentations/70-bloc-alimentation-9v-500-ma.html

Surtout qu'avec ce genre de transfo, les 12V théorique en sortie sont souvent de l’ordre de 17 ou 18V alors l'arduino aie aie :blush:

Donc il vaut mieux tabler sur du 9V j'imagine, pour éviter tout risque...

Et ça craint d'acheter ce genre de truc sur eBay (2€50) ? Parce que j'ai lu qu'il pouvait y avoir des problèmes de surtensions sur certain modèles pas cher et que ça craint pour l'Arduino, c'est bien vrai ?

Sur Conrad il y en a un ou il a marqué anti surcharges et anti courts-circuits... mais il fait 9€.
http://www.conrad.fr/hn_power_bloc_d_alimentation_enfichable__p_50682_50773_1028112_1028114_FAS

Pourquoi ne pas prendre un "chargeur USB" standard et tu met le câble Arduino dessus ? ça coûte 2€ sur ebay :slight_smile:

Sinon les transformateur Ebay sont pour moi de la même qualité que ceux de Conrad ... pour ma part je peut pas dire que Conrad ce soit le top de la qualité vu le prix et les FDP surtout :fearful: ceux que tu achète en France viennent de Chine aussi a 99% je pense donc autant l’acheter à la source c'est moins chère ^^
Au pire pour avoir une bonne régulation tu peut mettre un LC7809 (ou autre, je ne connais que ce régulateur la ) en sortie de transfo pour avoir un 9.01V constant :wink: mais dans ce cas prend un transfo plus costaud style 12V ou plus ...

thx

Après si ton projet se limite à ce que tu as décrit, utiliser une arduino là c'est un peu prendre un char pour écraser une mouche ...

Un AOP en comparateur et une porte logique ET et c'est bon. Pas cher et surtout très économe (on est dans le domaine du µA voir du nA "en veille").

Pour moi, mis à part les projets ayant besoin par ailleurs d'une tension 9V ou 12V (relais, moteur...) j'alimente en 5V avec tout ce que je trouve comme alimentation continue 5V à sortie USB (improprement appelés "chargeurs"). A gauche un modèle Lidl (Silvercrest) peu encombrant garanti 3 ans !!

alims 5V.jpg

Merci pour vos réponses, j'y vois déjà plus clair au niveau des alimentations ! Je vais étudier tout ça... :wink:

Il ne faut peut être pas perdre de vue que l'ARDUINO est une base de prototypage et qu'à ce titre c'est rarement une base optimisée pour une solution 'simple'...
Est-il possible de passer en mode veille sur un ATMEGA 328?

Est-il possible de passer en mode veille sur un ATMEGA 328?

Oui , il ya même le choix entre 6 modes veille plus ou moins poussés.
je joins le chapitre 10 de la doc Atmel
D'autre part un fichier sleep.h figure dans la librairie avrlibc présente dans le répertoire d'Arduino.
Quelques utilisateurs utilisent ces possibilités (voir par exemple mon reply # 3 de ce fil de discussion)

gestion energie.pdf (1.24 MB)

Merci :wink: