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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    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 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 252
    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.

  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
    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 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 252
    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 : 2232
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 : 2152
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 : 2482
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 !

  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
    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
    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 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 252
    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 : 2287
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.

  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
    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
    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
    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
    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.

  11. #11
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 252
    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)

  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
    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

  13. #13
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 252
    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 : 2166
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 : 2097
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.

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