Pages: 1 [2] 3   Go Down
Author Topic: Baisser la consommation de courant, possible ?  (Read 7156 times)
0 Members and 1 Guest are viewing this topic.
Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Avec un quartz de 1MHz, j'avais moins de 10mA de conso en laissant mon programme tel quel, mais l'horloge tournait 16 fois moins vite...

En modifiant mes delay() pour que mon horloge fonctionne à nouveau en concordance avec le temps réel la mesure oscille entre 9 et 10,5mA.

je me demande si en utilisant une fonction avec millis() la consommation serait moins grande qu'avec delay() ?
« Last Edit: November 15, 2008, 01:12:58 pm by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Après essai, la fonction millis() me fait exactement la même consommation qu'avec delay().

Il faut que je mette une partie du µC en veille pour faire descendre la consommation.

J'aimerais atteindre les 4-5 mA.
« Last Edit: November 15, 2008, 01:17:36 pm by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

FR
Offline Offline
Full Member
***
Karma: 0
Posts: 105
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dans la doc de avr_libc tu as ici
http://www.nongnu.org/avr-libc/user-manual/group__avr__power.html
en faisant un #include <avr/power.h> accès à ces macros pour limiter la conso de courant pour le 168 (en eteignant des périphériques qui te servent pas)

power_adc_disable()
power_spi_disable()
power_twi_disable()

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.

Nicolas
Logged

FR
Offline Offline
Full Member
***
Karma: 0
Posts: 105
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

tu as aussi ca http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html qui correspond plus a ce que tu veux faire.
Je suis un peu surpris que personne sur le forum en english ait essayé ça.

Nicolas
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour tes réponses.

Est-ce que c'est possible de programmer ça directement depuis l'IDE Arduino ?

Je crois que Benoit Rousseau avait fait une horloge numérique qui utilise le mode interrupt(), mais j'ai pas trop compris  :smiley
« Last Edit: November 16, 2008, 05:31:00 am by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

FR
Offline Offline
Full Member
***
Karma: 0
Posts: 105
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

pour l'include de <avr/power.h> j'ai en effet des soucis (arduino 11 sous linux) mais pour <avr/sleep.h> aucun pb
J'ai d'ailleurs trouvé qq chose sur le playgroud
http://www.arduino.cc/playground/Learning/ArduinoSleepCode

Nicolas
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La librairie sleep.h, je l'ai trouvée, mais pas la power.h.
J'ai trouvé quelques choses sur le site koders, mais je sais pas si c'est la bonne librairies.
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Voilà le résultat de mes essais avec sleep.h.


Il existe cinq modes différents :

  SLEEP_MODE_IDLE  
  SLEEP_MODE_ADC
  SLEEP_MODE_PWR_SAVE
  SLEEP_MODE_STANDBY
  SLEEP_MODE_PWR_DOWN

Le premier est le seul où l'horloge tourne et consomme autant qu'en mode normal, avec tous les autres elle ne tourne pas,

il faut vraiment que j'arrive à faire ça avec power.h  :-?
« Last Edit: November 16, 2008, 09:58:26 am by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

FR
Offline Offline
Full Member
***
Karma: 0
Posts: 105
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu utilises bien un atmega168 dans ta définition des board de l'arduino ?
et tu fais bien un

#include <avr/power.h>

Nicolas
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'utilise l'onglet "Tools" dans L'IDE Arduino 010 , et je configure sous "diecimila".

Je fais bien un #include<avr/power.h>, mais je n'avais pas cette librairies dans le Pack Arcuino 010, j'ai été chercher cette lib le net qu j'ai trouver sur un site qui s'appelle "Koders".
L'auteur de la librairies est le même que celui de sleep.h donc je pense que c'est la bonne.

Mais je n'arrive pas à trouver comment mettre mon code, pour sleep j'avais trouvé des exemples.
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

FR
Offline Offline
Full Member
***
Karma: 0
Posts: 105
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

comment sais tu que tu n'as pas la lib ?
tu es allé voir dans ton .../avr/include/avr/ (sur mon linux c'est dans /usr/avr/include/avr/power.h) ?
Essaye de setter une autre board (genre NG atmega168 pour voir si ca marche la compil).

Nicolas
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai regardé dans tout mes dossiers et même en faisant la fonction "rechercher" je ne l'a trouve pas.

Elle devrait être dans le même dossier que celui où se trouve sleep.h ?
« Last Edit: November 16, 2008, 05:23:42 pm by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

FR
Offline Offline
Full Member
***
Karma: 0
Posts: 105
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je suis au travail donc je peux pas regarder mais je viens de jeter un oeil sur les releases notes de la version 12 ils parlent de :

* Upgraded to newer versions of avr-gcc (4.3.0) and avr-libc (1.6).  This
  provides support for newer Atmel chips, but may increase the size
  of sketches.

Peut etre qu'en passant à cette version de avr-libc tu auras la lib ?

Nicolas
Logged

FR
Offline Offline
Full Member
***
Karma: 0
Posts: 105
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je confirme : je viens de comparer les distributions en version 10 et 12 pour mac et tu as power.h uniquement sur la 12.

Bonne suite.

Nicolas
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Je me suis remis à jour en installant la 012, je ferais un essai comme ça. smiley-wink
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Pages: 1 [2] 3   Go Up
Jump to: