Projet personnel arduino - %Charge batterie

Aide & Conseils

Le problème exposé dans ce sujet a été résolu.

Bonjour ou bonsoir ! Je rencontre actuellement un problème sur mon projet personnel : j’ai alimenté une carte arduino avec une batterie CP1270 (12V-7Ah). Jusque la tout va bien mais j’aimerais relever la tension à ses bornes (afin de déterminer le pourcentage de charge restante et pouvoir être prévenu en cas de charge critique). J’ai pensé a un analogRead() sur la broche Vin et d’utiliser un convertisseur A/N (analogique/numérique) afin d’obtenir ma tension et de la comparer a la doc technique de ma batterie. Si vous avez des détails sur les manipulations a faire ou même des suggestions, je suis preneur. Si vous avez besoins de plus de précisions, n’hésitez pas. Merci de m’avoir lu jusqu’au bout ;)

+0 -0

Salut !

Le principal problème, c’est qu’il n’y a aucune liaison électrique directe entre Vin et la puce AtMega. En fait, le Vin est relié à un convertisseur de tension (un 7805 il me semble) dont la sortie est reliée aux bornes 5V. De plus, la tension à mesurer étant supérieure à la tension d’alimentation, tu ne peut pas mettre un fil directement de la batterie à l’entrée analogique sous peine de griller ton Arduino. Tu as plusieurs solutions :

  • utiliser un pont diviseur avec deux résistances (entre 0V et Vin) bien choisi et mesurer la tension entre 0V et le milieu du pont (qui sera alors proportionnelle à la tension de la batterie) ;
  • utiliser un convertisseur A/N supportant une entrée 12V et sortant un signal numérique de ton choix (I2C, Serial, PWM…).

Peut-être est-ce cette dernière solution que tu as envisagé ? Je ne suis pas sur d’avoir compris cette phrase.

J’ai pensé a un analogRead() sur la broche Vin et d’utiliser un convertisseur A/N (analogique/numérique) afin d’obtenir ma tension […].


Pour un pont diviseur, j’ai fais quelques essais rapides avec ce site. Si tu mets une résistance R2 de 1000 Ohms entre 0V et A0, et une résistance R1 de 1500 Ohms entre A0 et le plus de la batterie, A0 recevra toujours une tension maximale de 4,8V. ;)

+1 -0

Je te remercie de m’avoir répondu si vite :) A propos de la phrase que tu n’as pas compris je voulais signifier par la que Vin étant relié a la batterie (je crois ^^) en faisant analogread() sur Vin j’obtenais la tension de ma batterie sous forme analogique et j’avais juste a convertir cette valeur avec le convertisseur A/N de l’arduino afin d’obtenir ma tension sous forme décimal pour l’exploiter. Ayant des résistances a la maison je me penche sérieusement sur l’option du pont diviseur de tension, j’ai trouvé ce lien très intéressant à ce propos : https://www.carnetdumaker.net/articles/mesurer-la-tension-sur-la-broche-vin-dune-carte-arduino-genuino/ Par contre je comprends pas le programme, et j’aimerais pouvoir être en mesure d’expliquer les lignes de code à une personne lambda. J’ai également trouvé ce lien qui présente un code beaucoup plus court :http://www.projetsdiy.fr/mesurer-tension-alimentation-batterie-esp8266-arduino/ .

+0 -0

A propos de la phrase que tu n’as pas compris je voulais signifier par la que Vin étant relié a la batterie (je crois ^^) en faisant analogread() sur Vin j’obtenais la tension de ma batterie sous forme analogique et j’avais juste a convertir cette valeur avec le convertisseur A/N de l’arduino afin d’obtenir ma tension sous forme décimal pour l’exploiter.

Ah ok. Donc en effet, ce n’est pas possible de le faire "directement". Sinon, un truc sympa à connaître : la broche Vin est reliée au + de la prise Jack d’alimentation. Donc, si tu mets une batterie 9V sur le jack, tu aura son pôle + sur Vin.

j’ai trouvé ce lien très intéressant à ce propos : https://www.carnetdumaker.net/articles/mesurer-la-tension-sur-la-broche-vin-dune-carte-arduino-genuino/ Par contre je comprends pas le programme, et j’aimerais pouvoir être en mesure d’expliquer les lignes de code à une personne lambda.

À vrai dire, je n’y arrive pas mieux que toi, désolé. J’ai presque l’impression que ce code est destiné aux AVR qui n’ont pas le firmware Arduino, il me paraît inutilement complexe pour un usage "non industriel".

Le code de ton deuxième lien me semble tout à fait adapté, et plus simple à mettre en œuvre (et à déboguer si besoin). En bref, je te le conseille. ;)

Ah, et si tu t’intéresse au fonctionnement des CAN, Eskimon en parle dans son tuto sur les Arduinos : Les entrées analogiques de l’Arduino. :)

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte