Consommation d'un module : quand ?

Bonjour,
je lance encore une nouvelle question, je n'ai pas trouvé de réponse satisfaisante pour l'instant.

un module alimenté par une carte arduino (non en sommeil): il tire du courant tout le temps on seulement quand une fonction lit une de ces entrées ?
Les modules ont des spécifications de consommation en sleep, activités; mais comment jouer/activer ces modes; j'ai lu des mises en sommeil de l'arduino, mais j'ai compris que cela été "global" et affectait l'ensemble des modules. Je ne comprends finalement pas comment cela marche, je veux dire qui consomme et quand et comment jouer/contrôler ce "qui et quand" précisément.
Philippe.

Gammon Forum : Electronics : Microprocessors : Power saving techniques for microprocessors :slight_smile:

Salut,

La base consommation est un vaste sujet ... C'est une combinaison de nombreux facteurs et il n'y a par conséquent pas de réponse universelle. Comme on a pas plus de détails c'est dur de répondre comme ça ...

Globalement pour réduire une conso il y a deux principaux angles d'attaque :

  • conso du microcontroleur
  • conso des autres composants

Celle du micro on va utiliser la mise en sommeil dans les périodes d'inutilité. A l'échelle d'un µC à 16 mHz ça demande une adaptation à l'échelle humaine. Par exemple : supposons qu'on veuille suivre l'état d'une entrée digitale, avec signalement sur led si elle passe à l'état haut. Sachant qu'une lecture prend à la louche 10 µS et qu'un temps de réponse de 50 ms est tolérable, on peut donc réduire le suivi à une lecture toute les 50 ms. On va donc passer 50 000 - 10 = 49990 µS en sommeil et 10µS actif (en réalité il faut tenir compte des temps de réveil et de mise en sommeil). La consommation est théoriquement alors réduite de ~99,98% :slight_smile:

Ici c'est un exemple simple mais il faut composer avec plein de choses : temps de conversion de certain modules, temps de réponse (si intéraction avec humain), puissance de calcul nécessaire, consommation annexes ... Il faut tout évaluer et en tirer les conséquences de faisabilité (et dans quelles conditions) ou non

mpg5_66:
un module alimenté par une carte arduino (non en sommeil): il tire du courant tout le temps on seulement quand une fonction lit une de ces entrées ?

Il y a une consommation de fond qui est permanente qui correspond au maintient du module dans un mode opérationnel. Ce peut être un mode d'attente ou un mode veille cela dépend des caractéristiques/capacités du module en question.
Il y a une consommation lorsque le module est actif.
Le rapport du temps d'activité sur le temps d'attente permet lorsque l'on connait la consommation dudit module dans ces modes de calculer une consommation moyenne et ainsi par exemple de déterminer une durée de fonctionnement pour un ensemble alimenté par batterie.

Bonjour
merci à vous pour votre aide. Pour baisser la consommation de mon ensemble [mini pro 3v3 8Mhz + DS3231 + Xbee (envoie d'un octet toutes les 60mn) + IR sharp GP2Y0A60SZLF]
le maillon faible est le capteur : entre ces pics que je cherche à mieux connaître, et sa consommation moyenne, je cherche à le mettre en veille, le moins bêtement possible, si possible.

J'ai trouvé cela (içi):

The enable pin, EN, can be driven low to disable the IR emitter and put the sensor into a low-current stand-by mode. This pin is pulled high on the carrier board through a 10 kΩ pull-up resistor to enable the sensor by default.

Je ne comprends pas

  • si je dois rajouter une résistance ou si elle est présente dans sur le pcb
  • comment activer/désactiver ce pin: (analogWrite(pin EN) ?)

Désolé de poluer le forum avec des questions de débutant, lisant mal l'anglais.
Philippe.

Tu connecte le pin EN à une sortie digitale de l'arduino, par exemple la 2

const uint8_t pin_EN = 2;
pinMode( pin_EN, OUTPUT );

Puis quand tu veux le mettre en veille ou le réveiller:

digitalWrite( pin_EN, LOW ); // LOW = mise en veille, HIGH = réveil

MILLE MERCI !!!!!!!!!!!!!!!!
A TOUS
vous seriez dans le coin, c'est bière pour vous tous qui m'avait tellement aidé depuis 15j.
Merci beaucoup, sincèrement.
PS: le lien de dfgh: Gammon Forum : Electronics : Microprocessors : Power saving techniques for microprocessors est vraiment super.
Philippe.

Puisque tu n'utilise le capteur qu'une fois par heure, tu pourrais économiser d'avantage d'énergie en alimentant le module par un transistor (sur VCC bien sûr) qui serait contrôlé par une sortie digital de l'arduino (même principe que l'exemple de mon post précédent). Le transistor sera comme un interrupteur dans ta maison: tu appuie dessus pour allumer ou éteindre la lumière, ce n'est pas toi qui connecte les fils ensemble, tu risquerais l'électrisation... Avec l'arduino c'est presque ça: la sortie digitale c'est ta main, le transistor c'est l'interrupteur, le module c'est la lampe.

Le transistor est nécessaire, tu ne peux pas connecter VCC directement à une sortie digitale de l'arduino car ce module consomme trop de courant (33mA en moyenne), tu risquerais de griller la sortie digitale, ou pire.

Idem pour ton module DS3231 :wink:

Bonjour,
merci guix. le sharp ir est utilisé en continu; c'est le xbee qui est toutes les heures pour un octet (120mA pour les TX), une trame calculée suivant le trafic mesuré par l'IR.
L'IR, pourrait être endormie est réveillé, par un PIR, mais pour l'instant je ne l'ai pas prévu; d'autant que je connais pas le temps de réveil sur la base d'un endormissement de l'IR.
En revanche c'est une très bonne idée pour le xbee, le DS3231; quel type de transistor me conseilles tu ?
Merci encore pour votre temps, et le partage de vos compétences.
Philippe.

mpg5_66:
Bonjour,
merci guix. le sharp ir est utilisé en continu; c'est le xbee qui est toutes les heures pour un octet (120mA pour les TX), une trame calculée suivant le trafic mesuré par l'IR.

Ton besoin n’est pas très clair.
Tu parles de mettre Arduino en veille mais tu as besoin d’une lecture en continu. Tu ne peux donc pas le mettre en veille.
Qu’entends-tu par continu? Toutes les secondes? moins? Car il ne faut que 16ms au module pour prendre une mesure.

Pour le pic de courant dont tu parlais sur l’autre fil, tu as ta réponse ici:

Il vient de C6, C7 et C8, 25µF au total, mais seulement lors la mise en marche de VCC.

La broche EN est reliée à VCC par une résistance de PULLUP de 10Kohm, donc pour la maintenir au niveau bas (pour mettre le module en sommeil) tu dois maintenir Arduino éveillé et ton module consommera tout de même 0,5mA sous 5V.

ChristopheFr:
Pour le pic de courant dont tu parlais sur l’autre fil, tu as ta réponse ici:
Pololu Carrier for Sharp GP2Y0A60SZLF Analog Distance Sensor schematic.
Il vient de C6, C7 et C8, 25µF au total, mais seulement lors la mise en marche de VCC.

Le pic de courant vient à chaque mesure (60Hz) certainement quand le capteur actionne sa led IR
Voir la note de la spécification sur le courant consommé

4 Average; this sensor draws current in large, short burst

kamill:
Le pic de courant vient à chaque mesure (60Hz) certainement quand le capteur actionne sa led IR
Voir la note de la spécification sur le courant consommé

Il ne peut pas y avoir de pic puisqu'ils sont absorbés par les condo justement.
Et puis il n'y a que deux petites leds IR sur le module elles ne pourraient pas encaisser 300mA.
Le doc indique une consommation moyenne de 30mA, c'est cohérent avec le montage. 15mA chacune en continu.

ChristopheFr:
Il ne peut pas y avoir de pic puisqu'ils sont absorbés par les condo justement.
Et puis il n'y a que deux petites leds IR sur le module elles ne pourraient pas encaisser 300mA.
Le doc indique une consommation moyenne de 30mA, c'est cohérent avec le montage. 15mA chacune en continu.

Les leds ne sont pas alimentées en continu. Il est courant que les leds IR puissent absorber plus de 1A en pic.

Bonjour
Merci à tous; ce que je comprends c'est que les diodes, sont alimentées avec un framerate de 60Hz, et que chacune de ces alimentations impliquent des demandes de 300 à 400mA ?
Bref que les pics, c'est tous les 60Hz ? (sans avoir la durée de ces pics).
Ai je bien compris ?
Philippe.

Oui, c'est ça.
Mais comme le fait remarquer ChristopheFr, ces pics doivent être en partie lissés par les condensateurs présents dans l’électronique du capteur, donc sans doute que les pics seront inférieurs à 300 400 mA.

Bonjour
d'abord merci pour vos réponses.
Dans ce cas je suis face à un dilemne, avec ces pics semblent ils lissés.
Je possède 2 types de piles:

  • LS33600 (3.6v 17Ah, max pulse 250mA) : j'ai un stock déjà monté en 2S1P soit 3.6V et 34Ah.
  • LSH20 (3.6v 13Ah, max pulse 1700mA): j'ai un stock déjà monté en 1S2P: donc 7.2V 13Ah.

l'objectif est l'autonomie.
Depuis plusieurs jours je cherche, réfléchie au meilleurs choix de piles sachant,
que j'utilise

Je dois tenir si possible plus de 15j (7j/7 et seulement un sommeil de 1h à 5h du matin). Le framerate est minimum 4fps, ie 4 mesures des 2 modules IR par seconde. Pour l'instant, avec la librairie LowPower, je fais toutes les 250ms:

LowPower.idle(SLEEP_250MS, ADC_OFF, TIMER2_OFF, TIMER1_OFF, TIMER0_OFF, SPI_OFF, USART0_OFF, TWI_OFF);

Quelqu'un peut il me dire le choix qu'il ferait ? 1S2P LSH20 ou 2S1P LS3360 ?
Philippe.