IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Créer une alimentation et vérifier sa fin de vie


Sujet :

Arduino

  1. #1
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut Créer une alimentation et vérifier sa fin de vie
    Bonjour,
    J’aimerais créer ma propre alimentation utilisant par exemple des piles rechargeables, et ceci pour mes ESP8266 ou ESP32.

    Je ne suis pas électronicien, mais j’ai construit pas mal de circuits sur mes platines d'essais pour mes Arduino, Raspberry Pi et maintenant mes ESPs.
    Il m’est arrivé dans ma jeunesse de construire de petits amplis avec des transistors. Je n’ai pas d’oscilloscope, juste un super multi-mètre qui mesure aussi les résistances.
    Pour le reste, je sais qu’un port USB me sort du 5 Volt et que mes alimentations Raspberry Pi aussi et avec un courant de sortie de 2.5 ampères pour ces derniers.
    J’ai aussi toute une série de petites alimentations type chargeur USB Smartphone qui parfois ne sortent qu’un seul petit ampère, pas trop utile s’il y a beaucoup de composants sur mes Arduino, Raspberry Pi ou ESPs.
    Je sais aussi que les piles, en se déchargeant, diminuent en tension et qu'une platine lourde en composants et faible en impédance va "vider" plus rapidement les batteries.

    Je peux aussi m’imaginer que si la tension d’entrée diminue, même un peu, les sorties 5V ou 3.3V de ces micro-contrôleurs pourraient varier.
    Ce ne serait pas trop bon pour, par exemple, un capteur de température LM35 que l’on calibre souvent par logiciel. Dans ce cas j’utiliserais plutôt un Dallas DS18B20.

    Est-il possible de créer sa propre alimentation, donc avec sortie vers les 5V avec des piles AA, AAA, voire 9 Volt et rechargeable ou non ?
    Donc de bidouiller un petit circuit simple (petit svp) pour sortir la chose correctement, voire un peu stabilisé si nécessaire (pas sûr) !
    Il y a aussi le câble! Le câble USB devra être bricolé ou remplacé par autre chose, voire faire autrement pour alimenter l'ESP.

    La solution doit être bon marché. Je ne vais pas, évidemment, utiliser un chargeur USB portable qui pourrait vite coûter 10 fois le prix d'un ESP!
    Il y a aussi la capacité de stockage et savoir comment estimer la durée de vie, suivant les composants utilisés, avant le prochain rechargement ou changement de piles.

    Enfin, la cerise sur le gâteau ! Pourrait-on, par logiciel, vérifier cette tension, par exemple avec un composant calibré, comme une simple résistance à haute impédance?
    Oui, je sais, l’ESP8266 n’a qu’une seule broche analogique !
    Je pourrais alors, en fixant une limite inférieure au voltage (je ne verrais pas comment le faire avec le courant), indiquer à l’extérieur que mon système a besoin de nouvelles batteries ou de recharge !

    L’utilité !?! Surtout un joli exercice !
    C'est cool d'avoir 72 heures à dispo pour adapter (plusieurs fois) un post (j'avais omis 2-3 points) quand personne n'a encore répondu!
    Et de rajouter en dernière minute ... 4-ième correction): https://fr.aliexpress.com/item/32664778995.html
    Merci d’avance à tous

  2. #2
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Salut,
    Je n'avais pas vu ton message.... Je vais répondre en citant des phrases de ton message pour éviter de trop longues réponses.

    Citation Envoyé par boijea Voir le message
    J’aimerais créer ma propre alimentation utilisant par exemple des piles rechargeables, et ceci pour mes ESP8266 ou ESP32.
    Tu utilises de cartes de développement pour tes ESP32 ou 8266 ? Tu as une doc qui montre les schémas ?



    Citation Envoyé par boijea Voir le message
    Je sais aussi que les piles, en se déchargeant, diminuent en tension et qu'une platine lourde en composants et faible en impédance va "vider" plus rapidement les batteries.
    En effet et ce n'est pas forcément linéaire.

    Citation Envoyé par boijea Voir le message
    Je peux aussi m’imaginer que si la tension d’entrée diminue, même un peu, les sorties 5V ou 3.3V de ces micro-contrôleurs pourraient varier.
    Dans une toute petite mesure, à titre d'exemple avec un L7805CV :

    VD (Dropout) = 2V ça veut dire qu'il faut mettre au moins 7V en entrée du régulateur pour qu'il fonctionne
    VI max = 35V

    Donc on a de la marge, on peut mettre entre 7V et 35V en entrée mais bien entendu plus on mettra une grande tension entrée et moins on pourra tirer de courant sur le régulateur.

    Le constructeur a aussi tester l'impact d'une variation de tension d'entrée et du courant consommé sur la tension de sortie.

    ΔVO line régulation : 50mV de variation du 5V en sortie pour une variation de 8V à 12V de le tension en entrée.
    ΔVO load régulation : 100mV de variation du 5V en sortie pour une variation de 5mA à 1A du courant courant consommé.

    La tension de sortie restera quand même bien stable malgré des variations en entrée (genre pile qui se décharge)



    Citation Envoyé par boijea Voir le message
    Ce ne serait pas trop bon pour, par exemple, un capteur de température LM35 que l’on calibre souvent par logiciel. Dans ce cas j’utiliserais plutôt un Dallas DS18B20.
    Non justement, le LM35 est un bon candidat, c'est un générateur de courant quasi insensible aux variations de son alimentation. 20µV/Volt de variation sachant que le régulateur au dessus varie de 100mV dans le cas d'une variation de courant.



    Citation Envoyé par boijea Voir le message
    Est-il possible de créer sa propre alimentation, donc avec sortie vers les 5V avec des piles AA, AAA, voire 9 Volt et rechargeable ou non ?
    Je ne comprends pas trop. Tu veux te passer d'un régulateur ou tu veux alimenter le régulateur avec des piles ?



    Citation Envoyé par boijea Voir le message
    Il y a aussi la capacité de stockage et savoir comment estimer la durée de vie, suivant les composants utilisés, avant le prochain rechargement ou changement de piles.
    Pour ça il faut faire "simplement" la somme de toutes les consommations de la carte et prendre des accu adaptés qui s'expriment en mA.h



    Citation Envoyé par boijea Voir le message
    Pourrait-on, par logiciel, vérifier cette tension, par exemple avec un composant calibré, comme une simple résistance à haute impédance?
    Je pourrais alors, en fixant une limite inférieure au voltage (je ne verrais pas comment le faire avec le courant), indiquer à l’extérieur que mon système a besoin de nouvelles batteries ou de recharge !
    En règle générale on place sur la batterie un pont diviseur de tension qu'on vient mesurer avec l'entrée d'un ADC. Avec une autre entrée d'un ADC on pouvait mesurer le courant au travers d'une résistance de shunt de faible valeur. La loi d'Ohm montre qu'un courant (disons que ton montage consomme 100mA) traversant une résistance de 1Ω va créer une tension aux bornes de la résistance (100mV). Cette tension l'image du courant et peut permettre, en plus de connaître la tension de la batterie, d'estimer la capacité restante en fonction de la consommation. Avec ça tu peux couper une partie des systèmes, baisser la luminosité d'un écan ou passer en mode veille pour chercher de l'économie d'énergie.

    Toute fois attention car la tension aux bornes de la résistance de shunt fait perdre un peu de tension à la tension de sortie du régulateur, il faut bien la choisir.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  3. #3
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut
    Citation Envoyé par Vincent PETIT Voir le message
    Tu utilises de cartes de développement pour tes ESP32 ou 8266 ? Tu as une doc qui montre les schémas ?

    Non justement, le LM35 est un bon candidat, c'est un générateur de courant quasi insensible aux variations de son alimentation. 20µV/Volt de variation sachant que le régulateur au dessus varie de 100mV dans le cas d'une variation de courant.
    Un grand merci .... beaucoup de choses à digérer.
    J'ai pas moins de 6 ESPs dont un seul sans USB. Donc pour les schémas ... autant rester en USB.
    Merci pour la référence L7805CV ... cela m'intéresse.
    Je suis surpris par le LM35. Je dois comprendre.
    Je vais essayer un petit circuit pour mesurer la tension en alimentant avec un SBS Power Bank 5.000mAh (qui m'a coûté moins de 10 Euros).
    Je donnerai des nouvelles.

    Ta signature est cool:
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman
    Je suis physicien et j'ai ressorti le premier volume de son Lectures On Physics

  4. #4
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Citation Envoyé par boijea Voir le message
    Merci pour la référence L7805CV ... cela m'intéresse.
    Il faudra voir si ce genre de régulateur linéaire est réellement adapté, dès fois un régulateur à découpage est bien meilleur en terme de rendement.

    Citation Envoyé par boijea Voir le message
    Je suis surpris par le LM35. Je dois comprendre.
    Je voulais dire que le LM35 est un générateur de courant, à l'intérieur.

    Ci dessous une source de courant (source Wikipédia https://en.wikipedia.org/wiki/Current_source Figure 7)
    Nom : 002.png
Affichages : 1894
Taille : 3,9 Ko


    Et là, l'intérieur du LM35, on reconnait l'étage de sortie qui est une source de courant transitant dans la résistance .125 R2 et sur la quelle on vient lire la tension image de la température. Ce genre de structure n'est pas dépendante de la tension Vs (jusqu'à un certain point)

    Nom : 001.gif
Affichages : 1839
Taille : 6,5 Ko


    Citation Envoyé par boijea Voir le message
    Je vais essayer un petit circuit pour mesurer la tension en alimentant avec un SBS Power Bank 5.000mAh (qui m'a coûté moins de 10 Euros).
    Je donnerai des nouvelles.
    Par contre il faut que tu puisses mesurer de manière précise la tension batterie (probablement des accu de type Lipo) car le profil de décharge va ressembler à ça. Si tu regardes, tu verras que certaine batterie ont une tension plutôt stable jusqu'à être déchargée à 80%

    Nom : 003.jpg
Affichages : 2142
Taille : 16,6 Ko


    Citation Envoyé par boijea Voir le message
    Je suis physicien et j'ai ressorti le premier volume de son Lectures On Physics
    Une référence
    Je suis un fan de sciences !
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  5. #5
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut
    Citation Envoyé par Vincent PETIT Voir le message

    Je voulais dire que le LM35 est un générateur de courant, à l'intérieur.
    Un grand merci: la classe ta description et les circuits.
    Je suis plutôt bon en logiciel .... mais pour le reste, j'ai du travail ... intéressant.

  6. #6
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut
    Citation Envoyé par Vincent PETIT Voir le message
    En règle générale on place sur la batterie un pont diviseur de tension qu'on vient mesurer avec l'entrée d'un ADC. Avec une autre entrée d'un ADC on pouvait mesurer le courant au travers d'une résistance de shunt de faible valeur. La loi d'Ohm montre qu'un courant (disons que ton montage consomme 100mA) traversant une résistance de 1Ω va créer une tension aux bornes de la résistance (100mV). Cette tension l'image du courant et peut permettre, en plus de connaître la tension de la batterie, d'estimer la capacité restante en fonction de la consommation. Avec ça tu peux couper une partie des systèmes, baisser la luminosité d'un écan ou passer en mode veille pour chercher de l'économie d'énergie.
    Voilà, j'ai fini mon installation avec un capteur de température Dallas et un display OLED qui me montre la température mise à jour chaque 2 secondes en montrant aussi les températures minimum et maximum. C'est un NodeMCU ESP32 ... et j'ai aussi un modèle Esspressif que j'essaierai avec mon breadbord.
    Je vais maintenant activer la partie WiFi et jouer avec ... par exemple avec du Web socket.
    L'application enverra les températures à l'extérieur avec, j'espère, l'état de la batterie.


    Puis-je maintenant mettre une résistance assez haute directement entre le 5V et l'ADC pour mesurer la tension et vérifier combien de temps ma batterie 5000mAh qui alimente mon ESP32 tient le coup? Je ferais le test par exemple toutes les 5 minutes.

    Dans ton message, je ne comprends pas le pont diviseur. Ma batterie SBS vient sur l'USB de l'ESP32.
    Merci d'avance

  7. #7
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Salut,
    Voici un exemple théorique qui ne prend pas en compte la tolérance des résistances mais l'idée est de voir la méthode :

    Nom : Capture du 2019-06-08 21-03-33.png
Affichages : 1965
Taille : 13,2 Ko

    On a une batterie de 5V, un pont diviseur composé de R1 et R2 et une carte électronique ESP32. Dans la carte électronique ESP32 il y a un régulateur 3.3V qui alimente le microcontrôleur et ce dernier vient mesurer la tension batterie en sortie du pont diviseur.


    La tension pleine échelle correspondant à 12 bits à 1
    Le pont diviseur se calcule en fonction de la tension de pleine échelle de l'ADC 12 bits de l'ESP32. Ce qu'on veut, c'est que pour la valeur max de la batterie on ait en sortie du pont diviseur, la tension de pleine échelle qui est la tension VREF, c'est à dire la tension maximal équivalent au 12 bits à 1. D'après le seul lien que j'ai trouvé https://docs.espressif.com/projects/...dc-calibration VREF semble être 1.1V typique.

    Pour résumer il faut que 5V de la batterie correspond à 1.1V à la sortie du pont diviseur soit les 12 bits de l'ADC à 1 (0x0FFF en hexa ou 4095 en décimal ou encore 0000 1111 1111 1111 en binaire) .

    Calcul des résistances du pont diviseur de tension
    La formule du pont diviseur c'est :
    VSORTIE DONC 1.1V = R2 / (R1 + R2) * 5V

    Il est souvent plus commode de fixer R2 et de sortir R1 de l'équation pour la calculer avec tous les paramètres. Disons R2 = 680Ω (parce qu'après plusieurs essais de calculs cette valeur m'arrange bien )

    R1 = 680Ω * (5V / 1.1V) - 680Ω = 2.411kΩ

    On choisira une valeur de R1 à la fois intelligente en la prenant un poil supérieure au résultat (voir juste après) et pratique en mettant en série une résistance de 2.2kΩ et une de 220Ω. Donc pour une tension de sortie de 5V, avec R1 = 2.2kΩ en série avec une 220Ω, R2 = 680Ω, l'ADC mesurera une tension de 1.096V.


    Relation avec la valeur lue par l'ADC
    La valeur en Volt d'un bit dans l'ADC est de VREF/(2^12 - 1) = 1.1V/4095 = 268µV par bit.

    Maintenant que nous savons que pour une tension batterie de 5V nous avons 1.096V en sortie du pont, relié lui même à l'ADC, ce dernier verra la valeur 4089 (1.096V / 268µV) sachant que la valeur max et 4095. D'ailleurs que ce passe t-il si le pont diviseur est mal calculé et que les 5V de la batterie donne une tension en sortie du pont, de 1.3V ? Sachant que la tension de pleine échelle est de 1.1V l'ADC sera saturé à 4095, bien que le microcontrôleur ne risque rien tant qu'on reste en dessous de sa tension d'alimentation de 3.3V, l'ADC ne verrait pas les variations de tension entre 1.3V et 1.1V, il restera saturé à 4095 tant que la tension de mesurée passe en dessous de 1.1V.

    ********************************

    Voilà.
    Maintenant ce qui va être important c'est de tenir compte de tous les paramètres variables ; une résistance à une tolérance, la batterie pleinement chargée ne fait probablement pas 5V pile poils mais un peu plus, la VREF de l'ADC peut varier de 1V à 1.2V en réalité et c'est sans compter les variations avec le température et l'age du capitaine.

    Tout ceci n'est pas un problème en réalité en électronique on travaille toujours entre des plages min et max (ou marge de sécurité pour palier aux tolérances).

    Ce qu'il faut s'assurer en calculant le pont diviseur, c'est que pour la tension maximum de la batterie chargé, on ne soit pas au dessus de VREF sinon on lira toujours 4095 dans l'ADC. Il vaut mieux être un peu en dessous mais pas trop non plus pour bénéficier de la plus grande dynamique. On voit beaucoup de monde, notamment sur Arduino, mesurer des faibles tensions comme par exemple 1V avec un ADC 10 bits référencé à 5V (donc tension de pleine échelle 5V) mais de cette manière les bits de poids forts ne serviront jamais à rien.

    5V/(2^10 -1) = 5V/1023 = 4.8mV par bit

    En mesurant des tensions ne dépassant pas 1V l'ADC lira la valeur 204 (5V/4.8mV) au maximum alors que l'ADC pourrait aller jusque 1023 soit les 10 bits à 1. C'est dommage car on n'utilise pas tout la dynamique offert par l'ADC.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  8. #8
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut
    Merci Vincent,
    Ce n'est pas "Petit" du tout ta description, mais grandiose!
    Une démonstration! Quel travail.

    Un Grand merci. Je te donnerai des nouvelles.
    Cordialement.
    Jean-Bernard

  9. #9
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut
    Merci Vincent, cela marche bien.
    J'ai mis une résistance de 2.2 kOhm sortie de mon kit (680 Ohm pour R2).

    J'obtiens un 1200 sur mon display OLED légèrement fluctuant pour la sortie USB du PC.
    Pour ma batterie rechargeable peu utilisée, j'ai un 1180 environ.
    Je vais utiliser cette dernière pour recharger mon smartphone et voire les valeurs que cela donne.
    J'ai un display à 4 leds sur la batterie indiquant la charge.
    Cool! Je m'amuse comme un fou ... c'est le but!

  10. #10
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Ah ! 1200 c'est curieux sans être pour autant anormal.

    Quelle tension mesures tu, avec un voltmètre, à la sortie du pont diviseur ?

    Il est aussi possible que par défaut (sans réglage spécial) VREF ne soit pas de 1,1V mais plus haute, peut être 3,3V.

    Pour la fluctuation je t'en reparle ce soir
    A toute
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  11. #11
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut
    Salut Vincent,

    Citation Envoyé par Vincent PETIT Voir le message
    Ah ! 1200 c'est curieux sans être pour autant anormal.

    Quelle tension mesures tu, avec un voltmètre, à la sortie du pont diviseur ?

    Il est aussi possible que par défaut (sans réglage spécial) VREF ne soit pas de 1,1V mais plus haute, peut être 3,3V.
    3.61V et fluctue à moins de 1%.
    Il bouge aussi sur le display OLED entre 1130 et 1281: je mesure chaque 20ms (!) et je montre maintenant aussi le minimum et le maximum sur le display.

    J'ai dû mettre un sleep(2000) dans le setup, car le maximum me montrait un plus de 1400 bizarre!?!

    J'alimente ici depuis le PC et j'utilise le SVP (GPIO36 - ADC0) du NodeMCU-32S d'AI-Thinker.

  12. #12
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut
    Citation Envoyé par boijea Voir le message

    J'ai dû mettre un sleep(2000) dans le setup, car le maximum me montrait un plus de 1400 bizarre!?!
    J'ai laissé tourné plus d'une heure et j'ai un max à 1408 ... mais cela prend un sacré moment. Donc cela fluctue!
    Juste maintenant un 1673: je travaille sur un second USB du PC et un ESP32 aussi.

  13. #13
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut
    Mon rechargeur USB n'a presque plus de jus (rechargé 2 smartphones) et j'ai encore 1153 sur le display.
    Conclusion (sans doute): impossible de déterminer la fin de vie.
    Le rechargeur clignote indiquant qu'il arrive au bout: il a donc un mécanisme ... meilleur que le mien!

  14. #14
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut
    Citation Envoyé par Vincent PETIT Voir le message
    En règle générale on place sur la batterie un pont diviseur de tension qu'on vient mesurer avec l'entrée d'un ADC. Avec une autre entrée d'un ADC on pouvait mesurer le courant au travers d'une résistance de shunt de faible valeur. La loi d'Ohm montre qu'un courant (disons que ton montage consomme 100mA) traversant une résistance de 1Ω va créer une tension aux bornes de la résistance (100mV). Cette tension l'image du courant et peut permettre, en plus de connaître la tension de la batterie, d'estimer la capacité restante en fonction de la consommation. Avec ça tu peux couper une partie des systèmes, baisser la luminosité d'un écan ou passer en mode veille pour chercher de l'économie d'énergie.
    Ouai, pas facile.
    Peux-tu expliquer la seconde entrée ADC! Merci.

    Puis-je connecter une broche digitale sur ce second ADC avec une résistance et l'enclencher dans une boucle?

    Actuellement mon ESP32 s'est arrêté et je n'ai pas pu voir si la tension diminuait. La batterie n'avait plus de jus.
    Avec une batterie sans USB je n'ai pas de moniteur (IDE Arduino).
    Existe-t-il un moniteur qu'on peut activer sur le WiFi, donc son IP?

    J'ai du logiciel ESP32 qui marche pour envoyer des emails.
    Je pourrais donc m'envoyer des messages à chaque descente de tension ... sans bourrer ma boîte aux lettres ... et si la batterie ne tombe pas d'un coup (le sleep de mesure est de 20ms actuellement).

    Une autre possibilité est de mettre un Web serveur (je l'ai séparément) et de mettre le code dans mon NAS (Synology) ou un de mes Pis toujours actif pour m'envoyer un mail si l'ESP32 ne répond pas.

    Super intéressant cette partie plus électronique pour moi.

  15. #15
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Salut,
    Citation Envoyé par boijea Voir le message
    3.61V et fluctue à moins de 1%.
    Ce n'est pas normal et cette tension est trop haute, elle est dangereuse pour ton ESP32. Si tu as une batterie de 5V et un pont diviseur avec R2 = 680Ω et R1 = 2200Ω + 220Ω alors tu dois mesurer une tension de 1.1V (environ)

    A vu de nez, au vu des 3.61V :
    - soit ta batterie ne fait pas 5V mais bien plus, genre 16V
    - soit le pont diviseur est à l'envers et les résistance R1, R2 ont été inversé.


    Citation Envoyé par boijea
    Le rechargeur clignote indiquant qu'il arrive au bout: il a donc un mécanisme ... meilleur que le mien!
    Il faut régler d'abord le problème au dessus


    Citation Envoyé par boijea
    Peux-tu expliquer la seconde entrée ADC! Merci.
    Pour ça il va y avoir un tout petit peu d'électronique a mettre en oeuvre mais j'aimerai qu'on règle le soucis n°1 (la fort probable inversion au dessus)
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  16. #16
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut
    Salut Vincent,
    Je crois avoir fait juste. Comme je n'avais pas mis la 220 Ohm avec la 2200, c'est fait.
    Si j'inverse, c'est clair j'obtiens un 4095 dangereux.

    Voici les valeurs mesurées.
    Les Ohm circuit non branchés:
    R1 (670 Ohm) entre la terre et l'entrée ADC
    R2 (2400 Ohm) entre le 5V et l'entrée ADC

    Les Volts branchés (évidemment ) et sur le PC (pas la batterie):
    Sur R1: 1.03 Volt
    Sur R2: 3.67 Volt

    Sur ma platine en plus: Un OLED et un Dallas connecté au 3.3 Volt

    Je viens de recharger 3 fois ma batterie après 3 stops de l'ESP32, mais pour 3-5 secs, afin qu'elle est juste un peu de jus pour quelques minutes.

    Je montre sur mon display la valeur actuel de l'ADC, par exemple 1100 à présent via l'USB du PC.
    Chaque fois qu'une valeur passe un maximum et un minimum, je mets à jour ces deux valeurs montrées chaque 20ms sur le display.
    Ici, avec mon ESP32 connecté sur mon PC, j'ai 999 (min) et 1695 (max).

    Avec les 3 essais avec la batterie, j'ai eu des valeurs beaucoup plus serrées entre 1019 et 1133.

    Je viens de recharger un peu plus longtemps ma batterie (quelques minutes et de loin suffisant pour atteindre la charge complète indiquée sur les leds du chargeur).
    Là j'ai un min - max de 1021 - 1108 après 2 minutes de test.
    Cela vient de passer à 986, jamais vu si bas, et l'ESP32 tient toujours (la batterie montre 1/2 chargée).
    Je n'ai jamais eu 986 avant, les trois fois que mon système c'est arrêté.
    Le plus bas que j'ai vu avant qu'il s'arrête: 1019.
    Je doute y arriver avec cette méthode.

    Ah oui: j'ai juste maintenant (batterie vers la 1/2 chargée): 4.59Volt entre les 3 résistances.

    J'ai oublié la cerise sur le gâteau.
    Je mesure chaque 20ms et mets à jours mes deux min et max.
    Chaque fois que je constate que le minimum diminue, je m'envoie un Email! Cool!
    A+
    Jean-Bernard

  17. #17
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Salut Jean-Bernard,
    Citation Envoyé par boijea Voir le message
    Les Ohm circuit non branchés:
    R1 (670 Ohm) entre la terre et l'entrée ADC
    R2 (2400 Ohm) entre le 5V et l'entrée ADC

    Les Volts branchés (évidemment ) et sur le PC (pas la batterie):
    Sur R1: 1.03 Volt
    Sur R2: 3.67 Volt
    Je comprends mieux. Sur mon schéma R1 correspond à R2 chez toi et R2 à R1 chez toi. C'est donc ok !

    Je m'attendais, pour une batterie à 5V, à une valeur issue de l'ADC nettement plus grande que 1100. Est ce que VREF fait bien 1.1V ? ADC_ATTEN_DB_0 semble être la configuration pour que VREF soit proche de 1.1V.

    Je vois aussi que dans la bibliothèque il y a une fonction ; uint32_t esp_adc_cal_raw_to_voltage(uint32_t adc_reading, const esp_adc_cal_characteristics_t *chars) qui semble retourner la valeur de l'ADC reconvertie en mV, est ce que tu t'en sers ? Si oui, quelle résultat donne t-elle ?




    On va essayer d'améliorer la fluctuation de l'ADC par hard et soft mais je crains que ses piètres performances ne soient pas compatibles avec ton application. J'ai lu la datasheet de l'ESP32 est en toute honnêteté, je ne m'attendais pas une seule seconde à voir une telle non linéarité. Voici ce que dit la datasheet :

    Nom : img006.PNG
Affichages : 1781
Taille : 28,9 Ko

    Un DNL de 7 LSB ça revient à dire que 1 bit est égale à 268µV avec une erreur pouvant aller jusqu'à 7 fois cette valeur (1.876mV).

    Un INL de 12 LSB signifie que l'écart max entre la droite théorique, tenir compte du DNL, qui veut que 1 bit à 1 = 268µV, 2 bits à 1 = 2*268µV, 3 bits à 1 = 3*268µV peut attendre 12*268µV d'erreur. Cette erreur n'est pas forcément linéaire par exemple les valeurs comprises entre 0V et 1V peuvent être assez fidèle a ce que l'ADC va lire alors que les valeurs comprises entres 1V et 2V peuvent s'écarter de 12*268µV.

    Nom : 201310211640_1.png
Affichages : 1785
Taille : 35,3 Ko

    A titre de comparaison, sur les petits micro de chez Texas Instruments (MSP430) le INL et le DNL de leur ADC10 bits est de +/- 1LSB

    pour rappel la valeur d'un bit correspond a une VREF que je suppose de 1.1V divisée par 4095, mais il faudrait s'assurer de la vraie valeur de VREF et de sa précision/fluctuation a elle aussi.

    Amélioration de la fluctuation en soft
    Citation Envoyé par boijea Voir le message
    Je mesure chaque 20ms et mets à jours mes deux min et max.
    Ça tombe bien car c'est en démarrant de là qu'on résout logiciellement les problèmes de linéarité (dans une certaine mesure). Les erreurs de linéarité ayant une nature assez aléatoire, un bon moyen de lisser tout ça c'est de faire un filtrage en moyennant les mesures.

    - faire 10 mesures, faire la sommes des 10 mesures, diviser le résultat par 10.

    Amélioration de la fluctuation par le hard
    Placer un condensateur de 100nF entre la broche d'entrée de l'ADC et la masse comme le précise la datasheet. Pour l'électronicien que je suis, c'est complètement anormal de faire ça et cela met en évidence les problèmes de l'ADC. Dans un tel ADC il y a un condensateur échantillonneur/bloqueur et il est probablement qu'il a une impédance d'entrée trop faible et mal contrôlé.


    L'ajout d'une capa de 100nF + une moyenne des mesures devraient rendre le tout bien plus stable mais pas sur que la non linéarité de cet ADC soit compatible avec la précision de mesure que tu recherches.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  18. #18
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut
    Salut Vincent,
    Merci beaucoup. Il y a pas mal de choses à améliorer comme le condensateur.
    L'idée de faire une moyenne est une bonne idée que j'ai déjà utilisée pour des capteurs.
    J’éliminais aussi les extrêmes avant de faire la moyenne, mais ici ce n'est sans doute pas un bonne idée pour les valeurs minimum.

    Entre temps j'ai passé de 20ms à 2ms, mais je ne mets plus mon display à jour, seulement tous les 200ms.
    Par contre, chaque fois que la tension baisse: envoi d'un courriel ... et cela ne bourre pas ma boîte aux lettres.

    Ma batterie SBS Power Bank 5.000mAh a peut-être un moyen de savoir qu'il n'y a plus assez de courant et coupe d'un seul coup.

    Dans mon bouquin sur le Raspberry Pi 3 (que du digital) j'utilise un condensateur associé à un capteur de lumière.
    Pourrait-on utiliser un même mécanisme pour charger un condensateur pendant un temps court et précis, et ensuite mesurer sa charge pour déduire la capacité restante de la batterie?

    Je donnerai des nouvelles pour les autres points à vérifier.
    Cordialement

  19. #19
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Salut,
    Citation Envoyé par boijea
    Pourrait-on utiliser un même mécanisme pour charger un condensateur pendant un temps court et précis, et ensuite mesurer sa charge pour déduire la capacité restante de la batterie?
    C'est précisément le rôle du condensateur externe de 100nF (entre la broche d'entrée de l'ADC et la masse), celui ci va se charger avec la tension du pont diviseur. Au moment de la conversion de l'ADC, l'échantillonneur bloqueur à l'intérieure va venir prélever la tension, non pas du pont diviseur directement, mais du condensateur de 100nF (faisant office de réservoir d'énergie) que tu auras ajouté à l'extérieur.

    Ceci va améliorer la fluctuation de l'ADC mais il n'empêche qu'il a tellement de défauts de non linéarité que la tension sera quand même un peu instable. L'ESP32 ne semble pas être utilisable pour faire de la mesure précise.

    C'est vraiment énorme +/- 7 LSB de DNL et +/- 12 LSB de INL sachant que sur un microcontrôleur de grands fabricants c'est +/- 1 LSB en DNL et +/-3 LSB en INL pour un ADC moyen. Idem pour la consommation du module radio, l'ESP32 c'est 200mA contre 20mA chez Texas Instruments à puissance équivalente et encore d'autres choses.

    Il a des petits défauts mais ça explique le coût incroyablement bas de l'ESP32.

    Citation Envoyé par boijea
    Ma batterie SBS Power Bank 5.000mAh a peut-être un moyen de savoir qu'il n'y a plus assez de courant et coupe d'un seul coup.
    Oui c'est très probable, ce genre de batterie est gérée par un BMS "Battery Management System" qui est un contrôleur surveillant des paramètres plus ou moins variés sur la batterie (courant, tension, charge/décharge, température pour certain) mais je ne sais pas si on peut récupérer une info sur le BMS, il faudrait voir la référence du circuit BMS, si toutefois on y a accès.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  20. #20
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonjour

    Faute de temps je n'avais pas vraiment suivit le projet, mais:
    Un power-bank ne fournira jamais la tension de la batterie en direct, il y a un alimentation à découpage entre deux, c'est soit une batterie d'~3.6V et un boost, soit une batterie d'~7.2V ou plus et un buck.

    Donc mesurer la tension pour déterminer le restant de charge c'est peine perdue. Et un convertisseur un peu cheap peut aussi expliquer les variations de mesures!

    Cela reste possible avec des accus à nu! Comme la demande avec des AA au premier message.
    Sauf que des AA en NiMh c'est 1600mAh à 2000mAh, soit entre 16 et 20h de fonctionnement de l'ESP (sur la base d'un autre sujet où c'est indiqué 100mA de conso, je ne sais pas si c'est juste et si c'est tout le temps!). Les AAA c'est moins et les 9V c'est beaucoup moins! En plus il faut arrêter l'ESP en fin de vie des batteries, sinon bonjour décharge profonde et mort prématurée des batteries.

    L'accès au BMS, pas vu dans les présentations de produits de ce type. Il faudrait que cela soit déjà disponible entre le power-bank et un smartphone (et même avec, il faut ensuite connaitre le protocole)

    Bonne suite

    Delias

Discussions similaires

  1. [CR 2008] Créer une pèriode avec début et fin par rapport à la date du jour
    Par daho85 dans le forum Formules
    Réponses: 4
    Dernier message: 19/04/2016, 17h48
  2. [XL-2003] Créer une plage avec l'adresse de début et de fin définit par l'utilisateur
    Par Daetheia dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/12/2011, 08h09
  3. Réponses: 0
    Dernier message: 23/02/2011, 11h58
  4. Créer une macro pour vérifier des prix
    Par lolonico dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/04/2009, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo