Cette musique durera pour toujours si je remplace les piles (C)

Cet opus est dédié à mes recherches sur la puissance des appareils sans fil autonomes qui font partie du système de maison intelligente MySensors.
Il y avait d'abord le lithium ...
Plutôt, des batteries lithium-ion et lithium-polymère.
Pendant longtemps, ces batteries de vieux gadgets se sont accumulées dans une boîte. Je pensais - le voici, une alimentation universelle pour tous les microcontrôleurs de petite taille. De plus, la tension de 3,3-4,2 V est excellente pour l'AVR, ainsi que pour toutes sortes d'ESP et de STM. Pour plus de fiabilité, vous pouvez mettre un stabilisateur LDO de la puissance requise et obtenir un 3,3 stable pour MK et toute la périphérie.

Mais il s'est avéré que tout n'est pas si bon.
- Les batteries devaient être chargées. Pour ce faire, il était nécessaire de les rendre amovibles ou d'ajouter un module de charge à votre appareil, ce qui, à son tour, a donné un coût supplémentaire, des dimensions et des trous de charge dans le boîtier. Et ce n'est pas toujours pratique de charger des appareils, par exemple un capteur météo à l'extérieur de la fenêtre.
- Les batteries au lithium (comme la plupart des alimentations en général) ne conviennent pas à une utilisation à basse température. Dans un capteur météo fixé à la fenêtre, en hiver, la batterie a coulé immédiatement sous le gel.
- Pendant le fonctionnement à long terme, si la tension de la batterie n'est pas surveillée à temps, vous pouvez la décharger "à zéro", c'est-à-dire en dessous de la valeur admissible, qui est garantie de la tuer. Vous avez donc besoin d'une protection contre les décharges excessives.
- Une variété de tailles et de capacités de batterie a considérablement limité la répétabilité des appareils dans des boîtiers identiques. Et les réserves de vieilles piles ont rapidement pris fin - il a donc fallu acheter un nouvel endroit. Et, comme il s'est avéré, le coût de ces sources d'énergie s'est avéré être un sou et a ajouté au moins 2 $ au coût de chaque appareil (et en tenant compte de la carte de charge et plus encore). De plus, la recharge n'était pas rentable, car la plupart des contrôleurs autonomes consommaient très peu d'énergie et pouvaient fonctionner pendant plusieurs mois sans recharge.
NiMH et autres piles AA / AAA étaient encore pires. Ils devaient être chargés dans un chargeur spécial, ils avaient un «effet mémoire» et une tension initialement basse (1,2-1,3 V), et lorsqu'ils sont connectés en série en raison de la différence de résistance interne, l'une des batteries peut être déchargée plus que d'autres, ce qui conduit à nouveau à son détérioration.
Et encore une fois, le lithium ...
Il y a maintenant des piles rondes au lithium 3.0V de petite taille, en faveur desquelles j'ai décidé d'abandonner les piles capricieuses et chères.
Les piles CR2032 sont utilisées dans un grand nombre d'ordinateurs BIOS, de compteurs électriques et d'autres appareils avec RTC, montres, calculatrices et jouets divers. Avec de petites dimensions et un prix bas, ils ont une tension de 3.0V, ce qui est tout à fait suffisant pour MK et une capacité décente de 200-250mA / h pour leurs dimensions.

Mais encore une fois, des problèmes. Le fait de l'affaire. que le courant continu d'une telle batterie n'est que de 0,4 mA. Si vous le chargez avec un courant plus élevé, la tension de la batterie chutera, bien qu'elle puisse alors récupérer partiellement ou complètement. Un mode de veille Mysensor typique consomme plusieurs microampères. Mais dans le mode de transfert - déjà environ 15-20mA. Dans le même temps, les nouvelles versions de la bibliothèque MySensors forcent les appareils à envoyer de nombreux paquets - ping, salutation, présentations, recherche d'une passerelle ou d'un routeur, ce qui entraîne une longue, parfois plusieurs secondes, de fonctionnement du module radio. À une tension d'environ 2 V, les NRF24L01 chinois bon marché commencent à échouer, et parfois il n'est même pas possible de les mettre en mode veille () à partir de MySensors.
En conséquence, tout fonctionne d'une manière ou d'une autre sur une batterie neuve, mais à mesure que la batterie se décharge, les problèmes de communication augmentent, le module radio commence à inonder davantage l'air, ce qui augmente la décharge de la batterie. En fin de compte, la tension chute au point que l'ensemble de l'appareil cesse de s'endormir, puis un redémarrage cyclique se produit jusqu'à ce que la batterie s'épuise complètement.
Selon le fabricant et la «fraîcheur» de la batterie, l'appareil peut fonctionner de quelques jours à un mois. Si vous achetez des piles bon marché sur aliexpress, il y a une loterie. La transition vers les CR2450 et CR2477 plus volumineux permet d'économiser un peu, mais ils ne savent pas donner un courant de plus de 0,5 mA depuis longtemps.
Pendant un certain temps, j'ai expérimenté avec des convertisseurs boost qui permettaient à la batterie de maintenir une tension de fonctionnement normale pour le MK jusqu'aux dernières miettes d'énergie, mais ils avaient un courant de repos faible mais non nul, ce qui réduisait la durée de vie globale.
Petits doigts - petits doigts

Il est temps de se calmer et d'adopter l'expérience chinoise "avancée", pour alimenter tous vos appareils à partir de trois AAA (les piles ne sont pas incluses). Mais il a décidé de chercher une solution avec au moins deux piles 1,5 volts.
Je me suis arrêté à un tel schéma avec un stabilisateur NCP1400 croissant :

Deux piles alcalines AAA connectées en série fournissent initialement 2,7-3,1 V à la fin de la période de production, réduisant la tension à 1-2 V
Lorsque le NCP1400 est éteint (niveau bas à l'entrée de commande), la batterie passe immédiatement au MC via la bobine L1 et la diode Schottky d1 avec une chute de tension minimale d'environ 0,1 V. Si un niveau élevé est appliqué à l'entrée de commande, le stabilisateur NCP1400 démarre et fournit une tension de 3,3 V au MK avec une tension de batterie totale de 0,8 V à 3,1 V.
L'algorithme de fonctionnement est le suivant:
- La principale fois que le contrôleur est en PowerDownMode, tous les périphériques, y compris le NRF24, sont désactivés ou également en mode basse consommation.
- Le MC quitte le mode veille par interruption de la minuterie ou par une interruption externe (par exemple, dans les commutateurs par interruption du bouton), la tension d'alimentation VCC (fonction intégrée des contrôleurs AVR) est mesurée.
- Si la tension d'alimentation est supérieure à 3 V (ou à une autre tension suffisante pour un fonctionnement périphérique stable), le NCP1400 ne démarre pas et tout le traitement est effectué à cette tension d'alimentation jusqu'au prochain cycle de veille.
- Si la tension est inférieure à 3 V, le stabilisateur NCP1400 démarre, la tension d'alimentation est réglée sur 3,3 V, tout le traitement régulier de l'appareil est effectué, y compris l'envoi de données via NRF24
- De plus, si la tension est supérieure à 1,7 V (tension suffisante pour sortir le MC du mode veille), le NCP1400 est éteint jusqu'au prochain cycle de réveil.
- Si la tension est inférieure à 1,7 (la tension minimale du MK), le NCP1400 ne s'éteint pas jusqu'à ce que le contrôleur redémarre ou jusqu'à ce que la tension d'alimentation tombe en dessous de 0,8 V (tension du NCP1400)
Croquis de cet algorithme#define MY_RF24_CE_PIN 9 #define MY_RF24_CS_PIN 10 #define MY_RF24_POWER_PIN 8 #define MY_RADIO_NRF24 #include <MySensors.h> #define PIN_NCP1400 2 #define CHILD_ID_VCC 0 MyMessage msgVcc(CHILD_ID_VCC, V_VOLTAGE); bool low_power = false; int readVcc(); // void before(){ pinMode(PIN_NCP1400,OUTPUT); digitalWrite(PIN_NCP1400,HIGH); } void presentation(){ sendSketchInfo("NCP1400 test", "1.0"); present(CHILD_ID_VCC, S_MULTIMETER,"mV"); } // void loop(){ int vcc = 1000; if( low_power == false ){ vcc = readVcc(); digitalWrite(PIN_NCP1400,HIGH); // NRF1400 } if( vcc < 1700 )low_power = true; // NRF1400 send(msgVcc.set(vcc)); // VCC if( low_power == false )digitalWrite(PIN_NCP1400,LOW); // NRF1400 sleep( 300000 ); // 5 } /** * VCC */ int readVcc() { long result; // Read 1.1V reference against AVcc ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); delay(2); // Wait for Vref to settle ADCSRA |= _BV(ADSC); // Convert while (bit_is_set(ADCSRA,ADSC)); result = ADCL; result |= ADCH<<8; result = (1100L * 1023)/result; return((int)result); }
Test
Et comment gérer la consommation actuelle dans la pratique? Je connecte mon circuit au LBP et prends des mesures de la consommation de courant et de la tension de sortie.

Le courant de ralenti avec le NCP1400 éteint et une tension d'entrée de 1 à 3 V était de 0,3 μA. Même inférieur à la valeur déclarée par la fiche technique de 0,5 mkA (ou peut-être que sur cette gamme, mes appareils donnent une grosse erreur). Mais avec le stabilisateur allumé sans charge, le courant s'est avéré être étonnamment important - plus de 0,3 mA. Il s'est avéré que la résistance de rappel R1 provoquait une grande consommation. Remplaçant la cote R1 de 10K à 150K, j'ai obtenu 30 μA à une tension d'entrée de 3,0 V et 44 μA à 1,0 V.
Si vous retirez complètement la résistance R1, le stabilisateur en l'absence de connexion de cette entrée au MC sera constamment en train de consommer avec un 2V entrant d'environ 11 μA.
Maintenant, je connecte le microcontrôleur avec NRF24L01 et le capteur HUD21, en travaillant selon l'algorithme décrit ci-dessus:
- Tension d'entrée 3.0V - mode actif (NCP1400 activé) 32mA, mode veille (NCP1400 désactivé) 9mkA
- Tension d'entrée 2,0 V - mode actif (NCP1400 activé) 51 mA, mode veille (NCP1400 désactivé) 6 mA
- Tension d'entrée 1,7 V - mode actif (NCP1400 activé) 63 mA, mode veille (NCP1400 désactivé) 5,6 mA
- Tension d'entrée 1.0V - NCP1400 est constamment allumé - mode veille 197mkA
- Tension d'entrée 0,5 V - NCP1400 est constamment allumé - Mode veille 397 μA
La consommation active de la batterie augmente lorsque la puissance est réduite. La tension de 1,7 V a été choisie expérimentalement. En dessous de cette valeur, le microcontrôleur peut déjà ne pas fonctionner de manière stable. Lorsque la tension de la batterie tombe en dessous de ce seuil, le stabilisateur NCP1400 ne s'éteint plus et la consommation en mode veille est assez élevée. Dans ce mode, les piles ne dureront pas longtemps, mais il y aura suffisamment de temps pour les remplacer.
Incarnation dans la glande
Conçu des cartes d'alimentation universelles pour mes appareils domestiques intelligents


Et bien que les appareils finis ne soient pas aussi compacts qu'avec des piles au lithium, le résultat était assez bien pour moi. compte tenu notamment du coût des piles alcalines dans les magasins de Galomart, Kastorama, Leroyle, etc.

Actuellement, j'utilise à la maison plus d'une douzaine d'appareils différents pour surveiller la température, l'humidité du sol, etc. dans le système MuSensors / MajorDoMo.
En savoir plus sur mon blog