je suis pas spécialiste et n'ai pas d'expérience dans le domaine mais le sujet je trouve est intéressant (du coup je suis décu que personne n'y réponde :-))). avec l'arduino ca prend peut etre pas mal de courant.
Mais si on regarde la datasheet de l'atmega168 tu peux voir que la consommation peut descendre très bas.
Les pistes :
moins de Vcc en entrée (pas du 5 volts mais moins)
moins de Mhz pour le crystal (ce qui me semble très jouable pour ton appli qui n'a pas bcp de haute fréquence)
Tu as aussi tous les modes d'economie d'energie de l'atmega (qui ne sont pas accessible directement a partir de la référence arduino mais qui sont accessible au travers de la lib avr-libc.
J'ai également trouvé un forum sur les µc atmel où quelqu'un utilise un quartz de 32678 kHz, il faut faire une correction ensuite de la fréquence dans la programmation, donc à ce niveau ça doit être jouable.
Sur le datasheet de l'atmega 168, il est carrément fait mention de 250 µA en 8MHz et ça tombe en nanoA sous 4MHz.
Pour la tension d'alimentation il est chaque fois fait mention d'une tension de 1,8 à 1,5 volts. Pour atteindre cette tension depuis 12 volts, il faut passer par un convertisseur de tension, je pense que le gros de la consommation va passer à cette endroit ainsi que dans le ou les condo qui servent de filtre en entrée.
Un régulateur de tension avec en entrée 12V pour avoir 1,5V, ça va chauffer pas mal ! Plutôt une alim à découpage, plus encombrant mais dissipe moins de chaleur. Sinon une pile AA de 1,5V avec une alim à découpage qui augmente un peu la tension.
les 1,5V ne sont pas une obligation, 5,5V sont possible pour autant que mon ensemble consomme moins de 8mA et ma source de courant est obligatoirement de 12V
Je fais un essai à vide avec un LM317, j'ai une tension de 5,1V et l'intensité est à 85 mA, déjà sans rien alimenter, la consommation est rop élevée.
Est-ce que la tension peut être plus élevée à vide qu'en charge ?
Est ce que ce genre de régulateur PWM converti directement le courant comme le LM317 ?
Un petit mot au sujet de la consommation, les micro-contrôleurs ATMEL sont de technologie CMOS donc ne consomment quasiment rien, la major partie de la consommation ce fait lors des basculements des transistors donc plus ton horloges a une fréquence basse moins tu consommes, je sais que sous CVAVR en C tu peux modifier la valeur de ton horloge avec un diviseur de fréquence intégré donc tu peux créer un mode "basse conso" mais vu que tu changes ton horloge en cours de fonctionnement tout utilisation de "fonction du temps" (ex: delay) est à proscrire.
Attention tout de même faire tourner un uC a 32,78kHz est possible avec les nouveaux uC en utilisant l'horloge intégrée du watchdog mais du coup tu peux oublier certaines applications nécessitant une précision dans le temps, de plus tu devras surement paramétrer ton logiciel programmeur pour qu'il ne perde pas la connexion lors d'une programmation, le micro étant plus lent à répondre certain logiciel considère la connexion comme inexistante et l'interrompe.
En faisant ce montage, mais en assurant l'alimentation par un LM317, j'ai une conso de 25 mA.
L'horloge elle même ne consomme que 500 µA.
Normalement la conso du M168 est inférieure à celle de l'horloge, donc je devrais avoir au maximum 1mA...
Cette conso viendrait-elle du LM317 ?
En "C" qu'est ce que je peux utiliser d'autre que la fonction "delay" ?
Est- ce possible de programmer le M168 avec un quartz de 16 MHz et ensuite de le remonter avec un quartz à plus basse fréquence, ainsi il n'y aurait pas de problème de coupure avec l'ordi ?
J'ai testé en alimentant mon circuit avec des piles sous 3,2 V, la consommation chute à 8mA, mais l'horloge n'avance plus, elle a juste des à coups.
Il faut peut-être que j'augmente le temps de mise sous tension de la bobine du fait de l'utilisation d'un voltage plus faible.
Maintenant j'ai une alimentation à base d'un Max1659, sa consommation est quasiment négligeable, de ce fait j'admets que la valeur mesurée correspond a la consommation du µC et de l'horloge.
Avec le quartz de 16MHz, et deux condensateurs de 22 pf, je consomme 22mA avec des pics à 25mA lors des impulsions.
Avec un quartz de 1 MHz, les mêmes condo, la consommation est de 8,5mA et des pics a 14,5mA, par contre on tourne moins vite...
Avec un quartz de 32,768 KHz et des condensateurs de 220 pf, la consommation est de 10mA avec des pics à 15,5mA, par contre ça va franchement moins vite.
J'ai remarqué que la capacité des condensateurs influence aussi sur la consommation, mais je ne sais pas dans quelles mesure on peut les changer pour que ça fonctionne et que ce soit sans sans dommage pour le quartz ou le µC
Dans le data-sheet du mega168, "ils" parlent de différents "sleep-mode" où on peut choisir les fonctions que l'on veut mettre en veille, est ce que quelqu'un pourrais me mettre sur la piste sur la façon de faire ça et quelles fonctions devraient être mises en veille ?
Si tu n'as pas besoin de communiquer par l'usb
power_usart0_disable()
sur les 3 timers je pense que tu peux en éteindre 2 sans pb (mais il faut garder celui utilisé par millis ou delay).
power_timer0_disable()
power_timer1_disable()
power_timer2_disable()
Perso j'ai jamais essayé mais fais nous un retour sur les mesures de courant observées en éteignant chacun des modules.