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 ?
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 !
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"...
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 ?
Pourquoi ne pas prendre un "chargeur USB" standard et tu met le câble Arduino dessus ? ça coûte 2€ sur ebay
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 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 mais dans ce cas prend un transfo plus costaud style 12V ou plus ...
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 !!
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)