Table des matières:
- Étape 1: Réduire la tension d'alimentation en utilisant une batterie LiPo
- Étape 2: Réduisez l'horloge du processeur
- Étape 3: Retirez le voyant d'alimentation intégré et le régulateur d'alimentation
- Étape 4: Déconnecter la résistance USB D-Pullup (marquée 152) de 5 volts (VCC) et la connecter à USB V+
- Étape 5: utilisez le mode veille au lieu de délai ()
- Étape 6: Modifier les fusibles
- Étape 7: Informations complémentaires
Vidéo: Réduire la consommation d'énergie de la batterie pour Digispark ATtiny85 : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
ou: Exécuter un Arduino avec une pile bouton 2032 pendant 2 ans.
En utilisant votre carte Digispark Arduino prête à l'emploi avec un programme Arduino, elle consomme 20 mA à 5 volts.
Avec une banque d'alimentation de 5 volts de 2000 mAh, il ne fonctionnera que pendant 4 jours.
Étape 1: Réduire la tension d'alimentation en utilisant une batterie LiPo
En utilisant une batterie LiPo avec 3,7 volts comme alimentation, votre carte Digispark ne consomme que 13 mA.
Avec une batterie de 2000 mAh, il fonctionnera pendant 6 jours.
Étape 2: Réduisez l'horloge du processeur
Si vous n'utilisez pas de connexion USB, de calcul intensif ou d'interrogation rapide dans votre programme, réduisez la vitesse d'horloge. Par exemple. la bibliothèque de réception infrarouge à interrogation lourde IRMP fonctionne bien à 8 MHz.
A 1 MHz, votre Digispark consomme 6 mA. Avec une batterie de 2000 mAh, il fonctionnera pendant 14 jours.
Étape 3: Retirez le voyant d'alimentation intégré et le régulateur d'alimentation
Désactivez la LED d'alimentation en cassant le fil de cuivre qui relie la LED d'alimentation à la diode avec un couteau ou retirez/désactivez la résistance 102.
Étant donné que vous utilisez maintenant une batterie LiPo, vous pouvez également retirer le circuit intégré du régulateur de puissance intégré. Soulevez d'abord les broches extérieures à l'aide d'un fer à souder et d'une broche. Puis soudez le gros connecteur et retirez le régulateur. Pour les petits régulateurs, utilisez beaucoup de soudure et chauffez les 3 broches ensemble, puis retirez-les.
À 1 MHz et 3,8 volts, votre Digispark consomme maintenant 4,3 mA. Avec une batterie de 2000 mAh, il fonctionnera pendant 19 jours.
Étape 4: Déconnecter la résistance USB D-Pullup (marquée 152) de 5 volts (VCC) et la connecter à USB V+
Cette modification est compatible avec toutes les versions 1.x du chargeur de démarrage micronucleus. Si vous avez déjà un nouveau bootloader 2.x sur votre carte, vous devez passer à l'une des versions 2.5 avec "activePullup" dans son nom. Le moyen le plus simple de le faire est d'installer le nouveau package de la carte digispark et de graver le chargeur de démarrage avec la version recommandée (!!!pas la version par défaut ou agressive!!!).
Casser le fil de cuivre du côté de la résistance qui pointe vers l'ATtiny. Cela désactive l'interface USB et à son tour la possibilité de programmer la carte Digispark via USB. Pour le réactiver, tout en économisant de l'énergie, connectez la résistance (marquée 152) directement à l'USB V+ qui est facilement disponible sur le côté extérieur de la diode Shottky. La diode et ses côtés corrects peuvent être trouvés à l'aide d'un testeur de continuité. Un côté de cette diode est connecté à la broche 8 de l'ATtiny (VCC) et du Digispark 5V. L'autre côté est connecté à l'USB V+. Désormais, la résistance de rappel USB n'est activée que si la carte Digispark est connectée à l'USB, par ex. pendant la programmation.
Les 2 dernières étapes sont également documentées ici.
À 1 MHz et 3,8 volts, votre Digispark consomme maintenant 3 mA. Avec une batterie de 2000 mAh, il fonctionnera pendant 28 jours.
Étape 5: utilisez le mode veille au lieu de délai ()
Au lieu de longs délais, vous pouvez utiliser la mise en veille du processeur à économie d'énergie. Les sommeils peuvent durer de 15 millisecondes à 8 secondes par pas de 15, 30, 60, 120, 250, 500 millisecondes et 1, 2, 4, 8 secondes.
Étant donné que le temps de démarrage à partir de la veille est de 65 millisecondes avec les paramètres de fusible digispark d'usine, seuls les retards supérieurs à 80 ms peuvent être remplacés par la veille.
Pendant le sommeil, votre Digispark consomme 27 µA. Avec une pile bouton 200 mAh 2032, il dormira pendant 10 mois.
Pour être correct, le Digispark doit se réveiller au moins toutes les 8 secondes, fonctionner pendant au moins 65 millisecondes et consommer environ 2 mA de courant. Cela conduit à un courant moyen de 42 µA et 6 mois. Dans ce scénario, cela ne fait presque aucune différence si votre programme s'exécute pendant 10 millisecondes (toutes les 8 secondes).
Le code pour utiliser le sommeil est:
#include #include volatile uint16_t sNumberOfSleeps = 0; externe volatile non signé long millis_timer_millis; void setup() { sleep_enable(); set_sleep_mode(SLEEP_MODE_PWR_DOWN); // mode de veille le plus profond … } void loop(){ … sleepWithWatchdog(WDTO_250MS, true); // veille pendant 250 ms … sleepWithWatchdog(WDTO_2S, true); // sleep for 2 s … } /* * aWatchdogPrescaler peut être de 0 (15 ms) à 3 (120 ms), 4 (250 ms) jusqu'à 9 (8000 ms) */ uint16_t computeSleepMillis(uint8_t aWatchdogPrescaler) { uint16_t tResultMillis = 8000; for (uint8_t i = 0; j'économise 200 uA // utilise wdt_enable() car il gère que le bit WDP3 est dans le bit 5 du registre WDTCR wdt_enable(aWatchdogPrescaler); WDTCR |= _BV(WDIE) | _BV(WDIF); // Activer l'interruption du chien de garde + réinitialiser l'indicateur d'interruption -> nécessite ISR (WDT_vect) sei (); // Activer les interruptions sleep_cpu (); // L'interruption du chien de garde nous réveillera du sommeil wdt_disable (); // Parce que la prochaine interruption sera autrement conduire à une réinitialisation, puisque wdt_enable() définit WDE / Watchdog System Reset Enable ADCSRA |= ADEN; /* * Étant donné que l'horloge de la minuterie peut être désactivée, ajustez les millis uniquement si vous ne dormez pas en mode IDLE (SM2…0 bits sont 000) */ si (aAdjustMillis && (MCUCR & ((_BV(SM1) | _BV(SM0)))) != 0) { millis_timer_millis += computeSleepMillis(aWatchdogPrescaler); } } /* * Cette interruption sort le cpu du sommeil */ ISR(WDT_vect) { sNumberOfSleeps++; }
Étape 6: Modifier les fusibles
22 mA des 27 mA sont prélevés par le DBO (BrownOutDetection/détection de sous-tension). Le BOD ne peut être désactivé qu'en reprogrammant les fusibles, ce qui ne peut être fait qu'avec un programmeur FAI. En utilisant ce script, vous pouvez réduire le courant jusqu'à 5,5 µA et également réduire le temps de démarrage du mode veille à 4 millisecondes.
5 des 5,5 µA restants sont prélevés par le compteur de chien de garde actif. Si vous pouvez utiliser des réinitialisations externes pour le réveil, la consommation de courant peut descendre jusqu'à 0,3 µA comme indiqué dans la fiche technique.
Si vous ne parvenez pas à atteindre cette valeur, la raison peut être que le courant inverse de la diode Schottky entre VCC et le pullup est trop élevé. Gardez à l'esprit qu'une résistance de 12 MOhm consomme également 0,3 µA à 3,7 volts.
Cela se traduit par une consommation de courant moyenne de 9 µA (2,5 ans avec une pile bouton 200 mAh 2032) si vous par ex. traiter les données toutes les 8 secondes pendant 3 millisecondes comme ici.
Étape 7: Informations complémentaires
Dessin actuel d'une planche Digispark.
Projet en utilisant ces instructions.
Conseillé:
DIY Arduino Solar Tracker (pour réduire le réchauffement climatique): 3 étapes
DIY Arduino Solar Tracker (pour réduire le réchauffement climatique): Bonjour à tous, dans ce tutoriel, je vais vous montrer comment créer un tracker solaire à l'aide du microcontrôleur arduino. Dans le monde d'aujourd'hui, nous souffrons d'un certain nombre de problèmes préoccupants. L'un d'eux est le changement climatique et le réchauffement climatique. Le besoin de
Économiseur de batterie, interrupteur de protection contre les décharges avec ATtiny85 pour voiture au plomb ou batterie Lipo : 6 étapes
Économiseur de batterie, interrupteur de protection de décharge avec ATtiny85 pour voiture au plomb ou batterie Lipo : Comme j'ai besoin de plusieurs protecteurs de batterie pour mes voitures et mes systèmes solaires, j'avais trouvé les produits commerciaux à 49 $ trop chers. Ils consomment également trop d'énergie avec 6 mA. Je n'ai pas trouvé d'instructions sur le sujet. J'ai donc fait le mien qui tire 2mA.Comment ça
Soudeuse par points simple utilisant une batterie de voiture pour construire une batterie au lithium-ion : 6 étapes
Soudeuse par points simple utilisant une batterie de voiture pour construire une batterie au lithium-ion : c'est ainsi que j'ai fabriqué une soudeuse par points avec une batterie de voiture qui est utile pour construire des batteries au lithium-ion (Li-ion). J'ai réussi à construire le pack 3S10P et de nombreuses soudures avec cette soudeuse par points. Cette instructable de soudeuse par points comprend, Dia
Comment mesurer correctement la consommation d'énergie des modules de communication sans fil à l'ère de la faible consommation d'énergie ? : 6 étapes
Comment mesurer correctement la consommation d'énergie des modules de communication sans fil à l'ère de la faible consommation d'énergie ? : La faible consommation d'énergie est un concept extrêmement important dans l'Internet des objets. La plupart des nœuds IoT doivent être alimentés par des batteries. Ce n'est qu'en mesurant correctement la consommation électrique du module sans fil que nous pouvons estimer avec précision la quantité de batterie que je
GÉNÉRATEUR D'ÉNERGIE SOLAIRE - L'énergie du soleil pour faire fonctionner les appareils ménagers quotidiens : 4 étapes
GÉNÉRATEUR D'ÉNERGIE SOLAIRE | L'énergie du soleil pour faire fonctionner les appareils ménagers quotidiens : Il s'agit d'un projet scientifique très simple qui est basé sur la conversion de l'énergie solaire en énergie électrique utilisable. Il utilise le régulateur de tension et rien d'autre. Choisissez tous les composants et préparez-vous à réaliser un projet génial qui vous aidera à