Page 1 sur 1

ARDUINO PRO MINI & basse consommation

Publié : 27 oct. 2018, 11:24
par hbachetti
En février 2017 j'avais écrit un article sur mon BLOG :

ARDUINO PRO MINI & basse consommation

J'ai récemment ajouté un paragraphe décrivant les manipulations à effectuer sur une ARDUINO NANO pour diminuer sa consommation en veille.
Il est possible de descendre à 90µA.
Paragraphe 6. ARDUINO NANO

@+

Re: ARDUINO PRO MINI & basse consommation

Publié : 27 oct. 2018, 11:39
par vil1driver
Salut,

Merci ;)

Ps: tu devrais mettre l'adresse de ton blog en signature

Re: ARDUINO PRO MINI & basse consommation

Publié : 27 oct. 2018, 19:23
par hbachetti
Oui c'est vrai
C'est fait.

Re: ARDUINO PRO MINI & basse consommation

Publié : 28 oct. 2018, 08:53
par hbachetti
https://riton-duino.blogspot.com/2018/0 ... ation.html

J'ai ajouté un paragraphe qui expose les calculs de consommation en mode veille et en mode éveillé. Le but est de déterminer la capacité de la batterie à employer.

7. Autonomie

@+

Re: ARDUINO PRO MINI & basse consommation

Publié : 31 mars 2021, 13:12
par Gilles BILLARD
Bonjour,
Quelle que soit la méthode utilisée, je n'arrive pas a mettre en sommeil mon pro-mini a partir du moment ou la library MySensors est incluse dans un programme;
(ma principale utilisation est le report de température, mais pas que...)
J'ai regardé votre lien et vous ne parlez pas ni n'incluez la library qui nous concerne tous ici.
Pourquoi ?
Si un lecteur a LA solution, qu'il me fasse un petit topo; J'ai essayé d'autres solutions pour mettre en sommeil le processeur et la radio; Rien n'y fait :-/ ....
Pour preuve, en ajoutant seulement le minimum syndical a votre petit exemple de mise en sommeil, l'arduino reste a consommer 4mA en permanence
#define MY_RADIO_NRF24 // Choix du module radio
#define MY_RF24_PA_LEVEL (RF24_PA_HIGH) //CHOIX: RF24_PA_MIN; RF24_PA_LOW; RF24_PA_HIGH; RF24_PA_MAX
#define RF24_CHANNEL 76
#define RF24_DATARATE RF24_250KBPS

#include <MySensors.h>
#include <LowPower.h>

void setup() {
pinMode(13, OUTPUT);
}

void loop() {
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
}

Re: ARDUINO PRO MINI & basse consommation

Publié : 14 avr. 2021, 08:22
par Gilles BILLARD
Pour ceux que ca intéresse, j'ai fini par trouver comment faire avec l'aide des anglophones sur le fofo MySensors;
Il m'a fallu utiliser la bibliothèque MiniCore et le bootloader qui va avec.
Mais la situation s'est compliquée car alors, il ne m'a plus été possible d'utiliser mon FTDI habituel basé sur un R232 car, et en dépit de la recherche d'un driver adapté, avec MiniCore il n'était plus reconnu et une erreur m'était renvoyée ("avrdude: error: could not find USB device with vid-0x16c0 pid-0x5dc vendor'www.fischl.de' product'USBasp")
J'ai donc utilisé un autre Pro-Mini en tant que programmateur et donc Arduino as ISP comme interface entre l'USB et les Pro-Mini a reprogrammer.
Voila donc la solution que j'ai mise au point:
1: Reprogrammer un Pro-mini en "brulant" un bootloader MiniCore et en lui injectant le programme ArduinoISP
2: S'en servir pour programmer un autre Pro-Mini en lui "brulant" le bootloader
3: Puis injecter le programme applicatif MySensors contenant l'instruction sleep( SLEEP_TIME) avec uint32_t SLEEP_TIME = XXXX; // XXX en millisecondes;
Et là, l'Arduino passe bien en sommeil avec une conso en micro ampères pour peu qu'on ai viré le régulateur et la led qui indique que le module est sous tension

Re: ARDUINO PRO MINI & basse consommation

Publié : 28 avr. 2021, 22:21
par domdom
Bonsoir,
En ce qui me concerne, j'utilise des mini pro sans reprogrammer le bootloader. Pour passer le microcrontrôleur en veille, il faut effectuer l'appel suivant :

Code : Tout sélectionner

   sleep(SLEEP_TIME);   
avec SLEEP_TIME la durée de la veille en ms

Attention, pendant ce temps, le micro dort, il n'exécute aucun code...

Re: ARDUINO PRO MINI & basse consommation

Publié : 29 avr. 2021, 10:36
par Gilles BILLARD
j'utilisais la même fonction, mais l'ampèremètre me confirmait que tout ne "dormait" pas si profondément que ca;
Je notais toujours 20mA durant la période de sommeil alors que le même programme donne 30uA en sommeil avec miniCore;
J'ai bien ramé avant qu'on ne me donne cette solution.
PS: Je ne l'ai pas dit, mais ce n'est QU'APRES inclusion de la bibliothèque MySensors que sleep() ne fonctionnait plus convenablement.