[Programmation] Arduino Sleep - Économie d'énergie
Répondre à la discussion
Affichage des résultats 1 à 29 sur 29

Arduino Sleep - Économie d'énergie



  1. #1
    invite21365b4f

    Arduino Sleep - Économie d'énergie


    ------

    Bonjour à tous,

    Je m'appelle Valentin, j'ai 16 ans et j'ai conçu (seul) un système permettant d'ouvrir une trappe de poulailler au matin et de la fermer au soir. Le tout est alimenté par une batterie rechargée par un panneau solaire.

    Je suis vraiment débutant dans la programmation et je rencontre quelques soucis... Ma carte Arduino Uno consomme trop. Je souhaiterai la passer en mode "veille" voire même en mode "éteint" mais je n'ai pas rencontré d'articles aboutis sur le sujet, même si j'en ai lu des dizaines, de même pour les vidéos.

    Pourriez-vous me conseiller clairement (sans utiliser de language trop "technique") pour que je puisse enfin terminer mon projet ?

    Je tiens à remercier toutes les personnes qui auront la gentillesse de me répondre,

    En vous souhaitant une bonne journée

    Cordialement

    Valentin

    -----

  2. #2
    invite5637435c

    Re : Arduino Sleep - Économie d'énergie

    Bonsoir Valentin,
    Bravo déjà pour ton investissement et ta curiosité.
    Que tu n'aies rien trouver de probant sur ce sujet pour un arduino sur le net n'est pas étonnant.
    Pour solutionner la réduction de la consommation il faut lire la datasheet du microcontroleur Atmel et identifier le processus à mettre en place.
    Comme tout microcontroleur ça passe nécessairement par la réduction de la fréquence d'horloge.
    Plus la fréquence de travail est basse moins le micro consomme.
    Ensuite il faut éteindre tous les périphériques et autres ADC, I2C qui resterait en action.
    Puis voir si il existe un mode very low power ou éqiivalent.
    Il est aussi utile de jouer avec le watchdog pour "éteindre" l'activité et réveiller périodiquement le micro ou provoquer son réveil par le biais d'une interruption.
    Je n'utilise pas les Atmel mais ce sont des principes et techniques de base communs à la majorité des microcontroleurs.
    Bonne suite.

  3. #3
    invite5637435c

    Re : Arduino Sleep - Économie d'énergie

    J'ajouterai que les cartes arduino ne sont pas vraiment optimisées du point de vue hardware pour espérer des miracles en termes de consommation.
    Je t'encourage à rapidement migrer vers d'autres solutions plus pérennes, tu pourras vraiment faire ce que tu veux et plus proprement, en hard et en soft.
    A+

  4. #4
    invite21365b4f

    Re : Arduino Sleep - Économie d'énergie

    Bonsoir,
    Merci pour votre réponse. Le fait de retirer certains composants de la carte (LED,...) favoriserait la consommation d'énergie, n'est ce pas. Coupler cela à un WDT cerait la meilleure solution, tout en conservant le Arduino ?
    Si vous avez un exemple de code WDT, je suis preneur.

  5. A voir en vidéo sur Futura
  6. #5
    invite5637435c

    Re : Arduino Sleep - Économie d'énergie

    Le watchdog répond à une commande assembleur.
    Simple rapide efficace du style:
    Code:
    asm sleep;
    Seulement voilà encore faut il que votre IDE arduino autorise une commande assembleur ou accepte d'en introduire une dans la mayonnaise de son langage exotique..
    Ce n'est pas moi qui vous le dirai vu que je ne pratique pas ces inepties.
    Soyez rassuré nous avons de grands spécialistes ici...

    Chaque micro à sa commande assembleur propre, vous pouvez rechercher cette commande dans la doc de votre micro.

  7. #6
    jiherve

    Re : Arduino Sleep - Économie d'énergie

    bonsoir,
    c'est assez simple en assembleur il faut configurer SMCR et PRR et exécuter l'instruction "sleep" mais attention:
    il faudra que le µC puisse se réveiller et surtout s"endormir donc il y a interet à bien gerer les interruptions.
    Pour un un Arduino utilisant un Atmega328P voir chapitre 9 de :http://ww1.microchip.com/downloads/e..._Datasheet.pdf.
    En power down le µC consomme moins d'un µA.
    JR
    l'électronique c'est pas du vaudou!

  8. #7
    invite21365b4f

    Re : Arduino Sleep - Économie d'énergie

    OK. Je vais lite cela à tête reposée ce soir ou demain. Je vous tiens au courant de mon avancée.
    Bonne soirée et merci pour votre aide précieuse.
    Cordialement
    Valentin

  9. #8
    Jack
    Modérateur

    Re : Arduino Sleep - Économie d'énergie

    Citation Envoyé par HULK28 Voir le message
    Seulement voilà encore faut il que votre IDE arduino autorise une commande assembleur ou accepte d'en introduire une dans la mayonnaise de son langage exotique..
    Ce n'est pas moi qui vous le dirai vu que je ne pratique pas ces inepties.
    Soyez rassuré nous avons de grands spécialistes ici...
    Je ne suis pas spécialiste non plus, mais le langage n'est pas si exotique que çà car la compilation se fait avec un compilateur C++ classique avec gcc. Je ne sais pas si c'est exactement ce qui est fait, mais une simple fonction main qui appelle setup puis loop dans une boucle infinie et on retombe sur un classique programme C++.

    Du coup, la syntaxe est classique pour des instruction assembleur en ligne. Un exemple ici.
    Dernière modification par Jack ; 24/10/2019 à 11h56.

  10. #9
    invite601f8229

    Re : Arduino Sleep - Économie d'énergie

    Bonjour,

    Perso pour commencer, je m'inspirais se ça
    https://riton-duino.blogspot.com/201...sommation.html

  11. #10
    invite5637435c

    Re : Arduino Sleep - Économie d'énergie

    Citation Envoyé par Jack Voir le message
    Je ne suis pas spécialiste non plus, mais le langage n'est pas si exotique que çà car la compilation se fait avec un compilateur C++ classique avec gcc. Je ne sais pas si c'est exactement ce qui est fait, mais une simple fonction main qui appelle setup puis loop dans une boucle infinie et on retombe sur un classique programme C++.
    Sans rentrer de nouveau dans des explications que visiblement ni les hobbystes ni les profs ne veulent entendre, utilisez le C++ pour lancer une simple instruction de sleep... comment dire?
    Et devoir retirer une led qui peut s'avérer utile et le régulateur 5V, ça s'appelle bricoler.
    Désolé.
    Il en faut.
    Bonne suite.

  12. #11
    Jack
    Modérateur

    Re : Arduino Sleep - Économie d'énergie

    Si tout le reste est écrit en C++, je ne vois pas pourquoi on ne lancerait pas un sleep en C++ ...

  13. #12
    invite5637435c

    Re : Arduino Sleep - Économie d'énergie

    On peut atomiser une mouche avec une grenade.
    Ca ne prouve certainement pas la pertinence ni l'égance de la solution...
    Le C++ appliqué à ce type de micro est du même tonneau.
    Valentin fera sa propre analyse, à 16 ans il a besoin de savoir qu'il y a une différence entre besoins et moyens.
    C'est valable aussi pour les grands d'ailleurs, il n'y a pas d'âge pour évoluer, s'interroger et se cultiver utilement.

  14. #13
    invite5637435c

    Re : Arduino Sleep - Économie d'énergie

    Je ne dis pas ça pour toi Jack, juste que je t'ai connu utilisant du 68HCxx et avoir un tout autre point de vue.
    Que je partageais d'ailleurs à l'époque.
    Pas grave

  15. #14
    Jack
    Modérateur

    Re : Arduino Sleep - Économie d'énergie

    Bof, moi je fais encore du C++ old style (avant C++11), car je ne suis pas un vrai softeux, je souffre trop de ma formation de base en électronique. On peut faire du C++ performant que du C si on laisse de côté le polymorphisme et autres spécificités de la POO pas forcément utiles à ce niveau d'utilisation.
    J'apporte juste ma pierre pour afin que VALENTIN1234 puisse résoudre son problème sans avoir à tout reprendre à zéro.

    Pour le reste, et tu le sais, il est évident que si j'avais à résoudre le problème de manière sérieuse, il ne me viendrait pas à l'idée d'utiliser un arduino.

  16. #15
    invitef86a6203

    Re : Arduino Sleep - Économie d'énergie

    Tout les arguments apportés dans les précédents posts sont justes.
    Mais proposer à un jeune de 16 ans quelques années d'études n'est vraiment pas sympa.
    Et de revoir sa copie (un peu ce que je propose aussi, en conservant le coté Arduino)
    D'autant plus que des jeunes qui s'intéressent à ce sujet ne sont pas légions.

    Inutile de relancer le débat pour ou contre Arduino qui donne des boutons à certains et sans intérêt.
    Seul le coté technique est intéressant.

    Comme d'habitude, on se lance dans un projet sans même étudier sa faisabilité et avec quel matériel ?
    Et des calculs simples arithmétiques de consommation.


    Donc, pourquoi cette carte n'est pas vraiment adaptée au mode ultra faible consommation ?
    Car le seul circuit qui est adapté c'est le µc pas le reste.
    Donc pas de périphérique, pas de Led , pas de régulateur, pas de port série , le µc seul.
    Et en plus une alime capable de l'alimenter lui seul sans régulateur qui consomme.

    La solution post#6 est un compromis qui économise pas mal en courant ça peu parfois suffire.
    En enlevant les Leds et le régulateur encore plus d'économie. La bidouille comme dit HUL28.

    La solution "Arduino" serait donc de mettre sous tension Le système énergivore" quelques secondes ou moins si possible tout les x temps relativement long , 1s/1h par exemple.
    Ce qui ferait un gain de 3600 en énergie puisque 3600 secondes en 1 heure.

    On peut s'inspirer de ce site (ce n'est pas la même application mais son schéma peut être utilisé)
    http://amazing-vacuum-tubes.e-monsit...rinter-3d.html
    Expérimentation ATTiny85
    soit on utilise le transistor pour alimenter ses périfs et le Tiny ensuite les gèrent une fois sous tension,
    soit on alimente un ensemble complet à part.

    L'"Arduinisation" de l'ATTINY85 est discutable, mais ça a le mérite d'être fait !
    Donc pas d'années d'étude, il suffit de suivre ce que disent les pages web.
    Le mini module ou son clone s’appelle Digispark.
    Les softs sont dispos sur le net.
    comme le bootloader, vidéo pour installer le Tiny avec l'IDE Arduino.

    Les 2 difficultés pour un débutant ce sont;
    La mini carte elle même, si on ne sait pas la faire, (pas très compliquée!)
    Et le bootloader qui nécessite un programmateur AVR.
    Peut être qu'elle s’achète avec le boot déjà programmé,
    je n'ai pas poussé l'enquête plus loin, c'est le coté "open source" qui me plait.

    Pour la programmation en mode Arduino les sites l'explique .
    Un boot de 2K (enfin le hex, surement moins) sur 8k , donc 6k et un boot lent Arduino ça limite quand même.
    Mais pour la plupart des applis simples ça peut aller vite !

  17. #16
    jiherve

    Re : Arduino Sleep - Économie d'énergie

    bonjour
    avec tous les µC la solution c'est d’utiliser le composant nu et les outils (gratuits ) qui permettent de le piloter, évidement c'est plus ardu qu'avec un truc prémâché; Mais c'est comme pour savoir nager il faut aller dans le grand bain et sans bouée ni brassières!
    JR
    l'électronique c'est pas du vaudou!

  18. #17
    invite601f8229

    Re : Arduino Sleep - Économie d'énergie

    Tentative de solution d'un débutant pour un débutant

    C'est bancale et tiré par les cheveux, je ne demande qu'a être corrigé.
    (Cela n'enlève en rien le respect que j'ai pour les vrais électroniciens)

    Utiliser un DS3231 "en mode INT", pour activer une bascule (ici un NE555)
    La bascule pilote un MOSFET canal P qui fournit l'alimentation à l'arduino.

    L'extinction automatique se fait lorsque l'arduino passe la pin 13 au niveau bas.

    Le réglage du DS3231 se fait via I2C.

    Nom : Ds3231NE555Arduino.jpg
Affichages : 1446
Taille : 57,9 Ko

  19. #18
    Jack
    Modérateur

    Re : Arduino Sleep - Économie d'énergie

    Le 555 consommant quelques mA à vide, il vaut largement mieux utiliser un mode sleep du µC.

    A la limite, utiliser la RTC pour le réveiller en activant l'entrée qui va bien.
    Dernière modification par Jack ; 25/10/2019 à 13h15.

  20. #19
    invitef86a6203

    Re : Arduino Sleep - Économie d'énergie

    Même avis que jack !
    Mais l'idée est bien là.

    En plus, pensez à l"alime , 5V n'est pas un accu !
    Par exemple LiPo 3,7V; AVR fonctionne mais pas un 555 ou autre logique
    4 x Nimh ferait 4.8V.

    Il faut aussi ternir compte des tensions chargées ou déchargées.
    Lipo 4.2V ok
    4xNimh 5.6 V trop haut pour un µc, si l accus est chargé à fond ,il va mal fonctionner ou pire .

  21. #20
    invite601f8229

    Re : Arduino Sleep - Économie d'énergie

    Et avec lmc555, ça changerait quelque chose?

  22. #21
    Seb.26

    Re : Arduino Sleep - Économie d'énergie

    -> Watchdog sur le CPU de l'Arduino
    -> Reveil toutes les 8s
    -> Compter 'n' reveils et faire le traitement

    Exemple : https://www.rocketscream.com/blog/20...duino-library/

    << have fun ! >>

    Quand tu auras plus de poils aux pates, tu partira sur ça :
    https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard
    https://www.arduino.cc/en/Main/Standalone
    Dernière modification par Seb.26 ; 25/10/2019 à 16h23.
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  23. #22
    invitef86a6203

    Re : Arduino Sleep - Économie d'énergie

    Citation Envoyé par Novix Voir le message
    Et avec lmc555, ça changerait quelque chose?
    Sur le datasheet
    6.5ElectricalCharacteristics

    TestCircuit,T = 25°C, all switches open,RESET to

    SupplyCurrent
    VS= 1.5 V 50 150 μA
    VS= 5 V 100 150 μA
    VS= 12 V 250 400 μA

    Avec 100 µa sur 3.7V
    Pour 24h 2.4 mah
    Pour 30 jours 75 mah

    Intéressant , reste a calculer la consommation du système qui s'éveille.

    Mais les pulses de sortie dépendent de;
    The charge time (output high) is given by
    t1= 0.693(RA+ RB)C(1)
    And the discharge time (output low) by:
    t2= 0.693(RB)C
    1 seconde tout les 1/4 h avec un NE555 d'une précision approximative.
    Cette précision est elle acceptable ?
    Il faut faire un pulse plus court du temps d'éveil désiré .

  24. #23
    invite601f8229

    Re : Arduino Sleep - Économie d'énergie

    Citation Envoyé par freepicbasic Voir le message
    Sur le datasheet
    Mais les pulses de sortie dépendent de;
    The charge time (output high) is given by
    t1= 0.693(RA+ RB)C(1)
    And the discharge time (output low) by:
    t2= 0.693(RB)C
    1 seconde tout les 1/4 h avec un NE555 d'une précision approximative.
    Cette précision est elle acceptable ?
    Il faut faire un pulse plus court du temps d'éveil désiré .
    Le 555 ne servant que de bascule, je ne saisis pas la notion d'une seconde tous les 1/4h.
    Le poulailler s'ouvre le matin et se ferme le soir, l'arduino s'allume 2x/J, en dehors le système est éteint.

    L'avantage du RTC comparé au simple Watchdog sur CPU de l'Arduino, c'est qu'il est toujours à l'heure, sans se soucier du démarrage initial pour le décompte.

    Sinon l'idée de générer une interruption, par RTC sur la pin 2 de l'arduino pour le réveiller, semble très prometteuse.

  25. #24
    invite21365b4f

    Re : Arduino Sleep - Économie d'énergie

    Bonjour à tous,
    Merci beaucoup pour cette masse d'information. Je vais essayer de voir cela, tout d'abord en retirant les led de la carte pour en modifiant le programme, et, si cela ne fonctionne toujours pas, investir dans un rtc...

  26. #25
    invitef86a6203

    Re : Arduino Sleep - Économie d'énergie

    Citation Envoyé par Novix Voir le message
    Le 555 ne servant que de bascule, je ne saisis pas la notion d'une seconde tous les 1/4h.
    Le poulailler s'ouvre le matin et se ferme le soir, l'arduino s'allume 2x/J, en dehors le système est éteint.
    C est juste un exemple général parfois on veut prendre des mesures x fois par jour.


    L'avantage du RTC comparé au simple Watchdog sur CPU de l'Arduino, c'est qu'il est toujours à l'heure, sans se soucier du démarrage initial pour le décompte.
    Effectivement , il faudra alors utiliser la pin alarme pour réveiller le système µc à l'heure.
    Et programmer le RTC , et comment .

    Sinon l'idée de générer une interruption, par RTC sur la pin 2 de l'arduino pour le réveiller, semble très prometteuse.
    Voir le post de Seb le µc ne peut pas rester en sleep plus 8 secondes, et donc compter x fois 8 sec si on utilise le µc comme horloge, ou alors simplement relancer comme sur l' exemple du lien, et dans ce cas seul une int traitera le réveil des périphériques.

    Pensez aussi qu'un servo par exemple sous tension même inactif consomme beaucoup.
    Et que s'il est hors tension une charge mécanique comme une petite porte ouverte risque de se refermer seule.
    Il faut prévoir une mécanique qui se verrouille seul en bout de course (des 2 cotés)

  27. #26
    zebular

    Re : Arduino Sleep - Économie d'énergie

    Avec tout ça on ne sait toujours pas si les poulets sont bien rentrés dans leur abris.dommage avec un arduino qui peut gérer ça.
    j'ai réalisé un montage de même fonction en hard.Heureusement les poulets ont une horloge interne bien réglé avec une photorésistance qui gerait le tout avec la luminosité.
    Dernière modification par zebular ; 25/10/2019 à 19h44.

  28. #27
    invite601f8229

    Re : Arduino Sleep - Économie d'énergie

    Citation Envoyé par VALENTIN1234 Voir le message
    Bonjour à tous,
    Merci beaucoup pour cette masse d'information. Je vais essayer de voir cela, tout d'abord en retirant les led de la carte pour en modifiant le programme, et, si cela ne fonctionne toujours pas, investir dans un rtc...
    C'est dommage de mutiler ta carte, car c'est pas sûr que cela suffise pour un uno (l'exemple était un promini).
    Si tu utilise la méthode "sleep", fais attention, AMHA, il peut y avoir un risque de bloquer ton arduino avec un sleep en boucle mal contrôlé.
    Peut être quelqu'un de plus calé pourra confirmer ou infirmer ceci...

  29. #28
    invitef86a6203

    Re : Arduino Sleep - Économie d'énergie

    Citation Envoyé par Novix Voir le message
    C'est dommage de mutiler ta carte, car c'est pas sûr que cela suffise pour un uno (l'exemple était un promini).
    Effectivement, le port série consomme aussi avec un ATMEGA8 ou un circuit spécialisé genre PL2303 ou autre.

    A moins de passer par un circuit comme celui que j'ai cité, qui n'a pas de circuit en plus.
    Il a un inconvénient c est que le port série sera soft car c est petit µc n'ont pas d USART.


    Si tu utilise la méthode "sleep", fais attention, AMHA, il peut y avoir un risque de bloquer ton arduino avec un sleep en boucle mal contrôlé.
    Peut être quelqu'un de plus calé pourra confirmer ou infirmer ceci...
    Non !
    Seul l'application se bloque.
    Sur Arduino au Reset un test le port série pour le reprogrammer,
    (si on le retire, faudra en remettre un pour programmer, sur le mini le port série post#9 est déjà à l'extérieur)
    ça nous coute un boot un peu long environ 1 à 2 secondes.
    Avec un programmateur le programme flashé n'a pas d’influence, seul les bits de config sont critiques

  30. #29
    invite5637435c

    Re : Arduino Sleep - Économie d'énergie

    Citation Envoyé par Seb.26 Voir le message
    Quand tu auras plus de poils aux pates, tu partira sur ça
    Du duvet tout au plus.
    Le poil aux pattes poussera dès que tu comprendras qu'il y a mieux à faire autrement.
    En gros quand tu ne subit pas, que tu as quantifié un objectif et adopté un moyen et une solution adaptée.

Discussions similaires

  1. [Arduino, C++] gestion des sleep-modes
    Par invitea4787add dans le forum Électronique
    Réponses: 9
    Dernier message: 15/01/2018, 21h17
  2. energie renouvelable ou économie d'énergie
    Par invitea531b976 dans le forum Environnement, développement durable et écologie
    Réponses: 5
    Dernier message: 17/03/2010, 11h41
  3. économie d'énergie
    Par invitedd784970 dans le forum Environnement, développement durable et écologie
    Réponses: 10
    Dernier message: 13/06/2009, 14h16
  4. economie d'énergie
    Par inviteca243c6d dans le forum Habitat bioclimatique, isolation et chauffage
    Réponses: 5
    Dernier message: 11/12/2006, 21h42
  5. Energie renouvelable et/ou Economie d'énergie ?
    Par invite4af64531 dans le forum Habitat bioclimatique, isolation et chauffage
    Réponses: 53
    Dernier message: 27/02/2006, 00h00
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...