Convertisseur analogique DC DC pour moniteur de batterie

SMA

Member
Bonjour, je suis nouveau sur ce forum et débutant en programmation picaxe 08M2.
Mon projet est de réaliser ,avec votre aide si vous le voulez bien, un convertisseur analogique DC DC pour un moniteur de batterie pour un vélo électrique.
Le moniteur fonctionne avec une tension de 0 à 10V pour un affichage en % 1v =10% …. ; 5v 50% ….et 10V 100%.
La tension de la batterie lithium varie entre 5V mini = 0V = 0% et 6.8 v pour 100%
Le convertisseur doit effectuer les conversions suivantes :
entrée 5v sortie =0V = 0%
entrée 6v sortie=1v =10%
entrée 6.4v sortie=2v =20%
entrée 6.44v sortie =3v =30%
entrée 6.5v sortie = 4v =40%
entrée 6.52v sortie =5v =50%
entrée 6.54v sortie =6v =60%
entrée 6.6v sortie =7v =70%
entrée 6.64v sortie =8v =80%
entrée 6.7v sortie =9v =90%
entrée 6.8v sortie =10v =100%
entrée 7.3v sortie =10v = 100%
Je cherche une solution de code pour résoudre ce problème ?
Si vous avez une idée merci de votre aide.
 
Bonjour,
Le problème est analogique, la solution serait aussi passer par un ampli op, avec un réglage d'offset et de gain, sans µC
Pour une solution picaxe je pense à un adc en entrée et un PWM en sortie,
Qu'y a t il en sortie de ce convertisseur ?
Avant d'entrer dans les détails, attendons si d'autres avis se manifestent...
MM
 
Bonsoir MGU, merci de votre réponse.
Pour la solution ampli op je n'ai pas trouver la solution.
je pense aussi a une solution picaxe ,
adc en entrée avec un diviseur de tension,
en sortie PWM 0 à 5v suivi par un ampli op pour ajuster la tension de 0 à 10v
suivi du moniteur affichage en %.
 
Bonsoir MGU, merci de votre réponse.
Pour la solution ampli op je n'ai pas trouver la solution.
je pense aussi a une solution picaxe ,
adc en entrée avec un diviseur de tension,
en sortie PWM 0 à 5v suivi par un ampli op pour ajuster la tension de 0 à 10v
suivi du moniteur affichage en %.
hello,
Pour la soluce à ampli op, il y a des forums plus adaptés, comme ABC électronique ou Futura sciences. Pose la question sur ces forums
Si le but est d'afficher un % sur LCD de 0 à 100, il n'est pas nécessaire de passer par une tension de 10V.
Un pont diviseur va réduire la plage de mesure, de 2,3V à 1,57V, avec une résolution réduite.
A suivre
MM
 
J'ai posé la question sur ABC.
On m'a justement demandé les tensions disponibles.
Si la seule tension est la batterie limitée à 7,3V, comment obtient on les 10V ?
MM
 
Bonjour, le montage que je souhaite faire est un adaptateur de tension entre la batterie est mon display d'origine , suite au remplacement du BMS de ma batterie, le BMS d'origine ,qui est introuvable, gérait la tension de charge de 0 à 10v.
Actuellement pour l'affichage du % batterie qui n'est pas juste , la tension est prise sur 2 cellules qui donne 7.3v pour ne pas dépasser 10v.
je cherche une solution avec un picaxe 08M2.
Le diviseur de tension sur l'entrée ADC C.4 donne une plage de 2.5 à 3.65v
et sur la sortie PWM C.2 de 0 à 5V.
Merci, si une personne peut me donné le code pour résoudre cette équation?
SMA
 
On va finir par tout savoir.
C'est pour visualiser la charge d'une batterie.
Je ne ferais pas un diviseur par deux, le diviseur doit faire correspondre par ex 7,5V et 5V soit 2/3 et donc, 5* 2/3= 3,33.
Le tableau en #1 n'est pas linéaire, on peut utiliser un select case.
Côté PWM, on aura un rapport cyclique de 0 à 100% avec une amplitude de 5V à transformer un une tension continue 0 à 10V.
Rien de compliqué, mais tordu. Pourquoi ne pas remplacer l'afficheur original par un LCD 5V... plus simple.
Je vais quand même (essayer de) répondre à ta question.
MM
 
Bonjour, le montage que je souhaite faire est un adaptateur de tension entre la batterie est mon display d'origine , suite au remplacement du BMS de ma batterie, le BMS d'origine ,qui est introuvable, gérait la tension de charge de 0 à 10v.
Actuellement pour l'affichage du % batterie qui n'est pas juste , la tension est prise sur 2 cellules qui donne 7.3v pour ne pas dépasser 10v.
je cherche une solution avec un picaxe 08M2.
Le diviseur de tension sur l'entrée ADC C.4 donne une plage de 2.5 à 3.65v
et sur la sortie PWM C.2 de 0 à 5V.
Merci, si une personne peut me donné le code pour résoudre cette équation?
Pour aider, il faut comprendre le contexte
Il y a un chargeur de batterie et une batterie. C'est quoi finalement cette batterie dont on prend 2 cellules.
Pourquoi ne pas prendre la tension totale, puisqu'il y a de toute façon un diviseur pour l'ADC?
MM
 
MGU , voici les caractéristiques de la batterie 48v 10.5Ah (13 cellules en série).
ci joint le PDF avec les tensions batterie 48v.
SMA
Ok, dans ce cas , pourquoi ne pas prendre la tension totale avec un pont diviseur de 60/5 par ex. la valeur lue serait plus réaliste.
Peux tu remplacer le moniteur par un LCD?
couleur au choix.
A suivre
MM
 
A quoi ressemble l'affichage d'origine ?
Je te propose une solution plus simple, avec le LCD I2C cité au dessus

26220

tableau des valeurs adc à tester
26221
A méditer, code suit

MM
 
Last edited:
Merci beaucoup MGU pour tout ce que vous faites pour ce projet.
Prendre la tension total batterie me semble une bonne idée!
j'ai testé votre programme qui fonctionne très bien.

Mais je suis désolé de vous dire Mr MGU que le montage proposé ne me convient pas pour mon application !
je recherche une interface entre ma batterie et mon afficheur/compteur sortie en tension dc.
Mon compteur gère plusieurs paramètres en plus du % de charge.
Si le compteur n'a pas l'info tension batterie (0 à 10v ) = % charge l'assistance ne fonctionne pas.
Encore merci pour tout le travail que vous accomplissez.
SMA
 

Attachments

  • compteur vélo.jpg
    compteur vélo.jpg
    992.2 KB · Views: 8
Mais je suis désolé de vous dire Mr MGU que le montage proposé ne me convient pas pour mon application !
je recherche une interface entre ma batterie et mon afficheur/compteur sortie en tension dc.
Bonjour,
Faut pas être désolé, si le 10V n'est pas déjà présent, il faut le fabriquer, une Zener suffit.
Ensuite, générer un PWM 0 à 100%, augmenter l’amplitude du signal de 5 à 10V
Filtrer ce signal si le bidule à besoin d'un signal continu et non haché
Rien de compliqué en somme.
Je vais faire un nouveau schéma et un nouveau programme...
Bref, un truc comme ça :

26228
MM
 
Suite, nouveau code:
Code:
;moniteur charge battrie 48V
;µC 08M2 et PWM 0 à 100%
#picaxe 08M2
symbol PCT = w12
symbol Vbat=w13
setfreq M16         ;pour filtrage plus facile
pwmout C.2,250,0     ;env 16kHz avec M16
    do
        readadc10 C.4,Vbat
        select case Vbat
            case <= 682
                PCT=0
            case 683 to 818
                PCT=100
            case 819 to 873
                PCT=200
            case 874 to 878
                PCT=300
            case 879 to 888
                PCT=400
            case 889 to 891
                PCT=500
            case 892 to 899
                pct=600
            case 900 to 905
                PCT=700
            case 906 to 914
                PCT=800
            case 914 to 995
                PCT=900
            case >=996
                PCT=1000
        end select
        pwmduty C.2,PCT
    loop

A vérifier, à méditer, à tester...
MM
 
Last edited:
Bonsoir MGU, merci pour le nouveau schéma et le code.
j'ai réalisé le montage , chargé le soft , ça ne fonctionne pas:
sur la broche C.2 sortie PWM aucun signal malgré une variation en tension sur C.4 de 3.33 à 5v adc =249 pour 4.47v et 170 pour 3.33v.
comment faire pour un adc 10 bit?
merci de votre aide.
SMA
 
Bonsoir,
C'est un ADC 10 bits. Je n'ai rien testé, mais la simulation fonctionne.
Comment mesures tu la valeur ADC (Vbat)
Les valeurs adc calculées sont dans le tableau en #11
Avec l'ADC 10 bits et tension alim en réf, 5V donne 1023
Je vais monter un circuit de test, pour voir en réel
A+
MM
 
Bonjour, les tests sont effectués avec une alim double de laboratoire dc avec les tensions 3.33 à 5v sur C.4 pour l'adc correspondant =>étalonnage capteur analogique => broche C.4 et C.2 lire les valeurs sur le graphique.
après avoir rechargé le programme j'ai du signal sur la broche C2 entre 0.43v à 4.3v ça fonctionne!!
Je pense avoir fait une erreur après l'étalonnage ne pas avoir rechargé le programme. (je suis débutant en programmation picaxe)
Bonne journée MGU
SMA
26235
 
Bonjour,
Oui, en gros, ça fonctionne. Le problème que j'ai vu, c'est que les signaux entrée et sortie PWM sont inversés par le BC337.
Deux solutions:
Inverser le PWM en sortie du µC en ajoutant : PCT=1000-PCT avant le pwmduty
ou ajouter un autre BC337 derrière le premier
Il y a aussi des tensions résiduelles sur le(s) BC337 : saturation/blocage à régler
Voir la meilleure soluce
A+
MM
 
Last edited:
Bonjour MGU,
j'ai choisi la solution de l'inversion du PWM.
Pour affiner les tensions de sortie je souhaite modifié les valeurs du % duty =(PCT) dans le code.
Comment déterminé exactement le % duty et la tension de sortie en fonction de la tension d'entrée sur C4 ? un programme.. ou autre..
Grâce à vous la solution finale est toute proche.

Un dernier renseignement : est il possible d'écrire ,en code picaxe, cette équation y=0.05 x (+9.9)?
Bonne journée.
SMA
 
Bonjour MGU,
j'ai choisi la solution de l'inversion du PWM.
Pour affiner les tensions de sortie je souhaite modifié les valeurs du % duty =(PCT) dans le code.
Comment déterminé exactement le % duty et la tension de sortie en fonction de la tension d'entrée sur C4 ? un programme.. ou autre..
Grâce à vous la solution finale est toute proche.
Un dernier renseignement : est il possible d'écrire ,en code picaxe, cette équation y=0.05 x (+9.9)?
Bonne journée.
SMA
Bonsoir,
Le select case n'a d'utilité que si la fonction à représenter n'est pas linéaire, ce qui est le cas du tableau fourni.
Le readadc10 renvoie un nombre de 0 à 1023 pour une variation de la tension d'entrée entre 0 et 5V (ici tension alim)
Ensuite, on choisit un PWM avec un paramètre rap cyclique (RC) qui nous arrange, ici 1000 pour 100%, ce qui entraine un paramètre fréquence de 250.
Avec une fréq horloge M16 donne un PWM à env 16000Hz, très facile à filtrer par une cellule RC.
Ex : avec V C.4=1425mV => N adc= 1023 x 1425 /5000 = 291
La tension de sortie dépend du rap cyclique, de 0 à 100% de la tension alim du µC. elle dépend ensuite de la tension alim collecteur du NPN. Ici, 10V pour avoir une variation de 0 à 10V, linéaire avec le RC 0 à 100%.
Ex avec cette valeur de 291, l'utilitaire PWM nous donne un RC de 30%, ce qui donnera 3V en sortie du NPN
26236

Dans mes essais, je n'ai pas obtenu un blocage franc du BC337. Avec 10V, je plafonnais à 8V collecteur env, même avec les tensions base et émetteur à 0V, mais j'avais un beau 10V à 100% de RC avec un 2N2222 (pourquoi ? à creuser)
Là où je suis actuellement, je ne peux plus faire d'essai avant 15Jours (au moins).
Pour l'équation : y=0.05 x (+9.9)..... je comprends pas bien...
Mais il faut savoir que les picaxes n'utilisent que des entiers naturels : 0 à 255 pour les bytes et 0 à 65535 pour les words, si on dépasse, on reboucle à 0. Avec un peu d'astuce, on peut quand même faire de beaux calculs...
Un truc encore, la hiérarchie des opérateur est particulière: les calculs se font de gauche à droite strictement.
Pour débutants: http://electromag1.wifeo.com
MM
 
Merci beaucoup d'avoir pris le temps pour toutes ces explications Mr MGU.
Je vous souhaite de bonnes vacances.
SMA
 
Merci beaucoup d'avoir pris le temps pour toutes ces explications Mr MGU.
Je vous souhaite de bonnes vacances.
SMA
Hello,
Je ne peux plus tester, mais j'ai quand même un PC.
Si il y a des questions, je peux essayer de répondre...
MM
 
Bonjour,
sur la sortie C2 j'ai mis un Ampli OP LM158 DP non inverseur avec un gain de 2.3 pour avoir 10v pour 4.87v sur C4 => OK
Maintenant je dois modifié toutes les valeurs de % duty (ptc) qui sont trop basses pour avoir les bonne tensions en sortie de l'AOP a part celle de 1000 = 100% . la détermination du % duty est très empirique , je ne vois pas comment calculer ces valeurs?
C'est juste une question:
Est il possible d'asservir le PWM en fonction d'une tension de sortie de l'AOP 1, 2 ... 9 v qui serait connecter sur la broche ADC C1 , je pense a un asservissement comme dans les alims à découpage ?
A+
SMA
 
Bonjour,
Il faudrait redéfinir le cahier des charges. Le tableau de correspondances V batterie/% de charge donné en #1 est-il encore d'actualité?
Il faudrait aussi donner un schéma du montage actuel, je ne vois pas bien le rapport avec une alim à découpage.
Jusqu’à présent, le but était une correspondance linéaire entre sortie PWM et tension continue en finale. Normalement, un filtre RC comme sur le schéma est suffisant. Il faudrait faire un code d'essai pour s'assurer de cette linéarité: 10% de PWM=>1V; 50%=>5V, etc
Ok pour l'ampli op, mais pour avoir du continu, il faut un filtre quelque par...
MM
 
Bonsoir,
le cahier des charges n'a pas changer ,
ci-dessous le tableau des mesures effectuées sur broche C2 après le filtre 10K 10µF (sans l'ampli op avec filtre à la sortie)
tension bat%tension DC C4ADC 10 bitsmesures tension C2 après le filtrevaleurs souhaitées
58.401004.879964.35.0
53.60904.479143.94.5
53.12804.439063.44.0
52.80704.409002.83,5
52.32604.368922.53.0
52.16504.358892.52.5
52.00404.338871.82.0
51.52304.298781.61.5
51.20204.278731.11.0
48.00104.008180.80.5
40.0003.336820.30.0

comment faire pour avoir les valeurs souhaitées?
Bonne soirée.
SMA
 
Bonjour,
On va essayer d'améliorer les choses.
Le PWM picaxe est calibré par la tension d'alimentation. Il faut donc s'assurer que cette tension est rigoureusement de 5V, sinon, il faut en tenir cmpte dans les calculs. Il y a d'autres méthodes, par ex prendre une réf interne fixe de 4,095V (alim de 5V). Pour simplifier, prendre un 7805 dont on mesure la tension réelle,
"Normalement", le RC du PWM donne une tension proportionnelle. Donc, 0% =>0V, 50%=> 2,5V, 100%=> 5V.
Dans le tableau précédent, on a bien 50%=> 2,5V, mais les tensions pour 0% (0.3V) et 100% (4,3V) ne sont pas bonnes. Probablement qu'il reste un pic positif et négatif aux extrémités, à vérifier si tu as un oscillo.
Dans un 1er temps, je ferais les tests suivants:
Y a t il une différence entre pwmduty C.2, 0 et low C.2 ? Normalement, les deux doivent donner 0V
Idem entre pwmduty C.2, 1000 et high C.2 ? Les deux doivent donner 5V.
Il faut aussi modifier les plages du select case , 4,35V et 4,36 sur C.4 donnent 2,5 sur C.2, ce n'est pas surprenant, on est dans l'erreur de mesure.
Comme les foreurs d'élec que j'ai consultés, il n'y a pas de mesure sûre de la charge batterie à partir de la tension mesurée, cela reste indicatif.
L'AOP à la place du NPN est une bonne chose. Je ne connais pas le LM158, donne le schéma.
utilitaire simple : http://artools.free.fr/
A suivre
MM
 
Bonjour,
Merci pour l'utilitaire de traçage . Ci joint le schéma avec l'AOP et la configuration pour les tests.

26249


Tension alim broche + 08M2 => 5.00V
j'ai trouvé la cause de la chute de tension du PWM=> raccordement d'une led à la sortie C2.
Ce montage fonctionne à merveille , sur le point 2 j'obtiens bien les tensions voulues.
Un énorme MERCI à vous MCU pour votre aide précieuse qui à permis de mener a bien ce projet.
Bonne journée.
SMA
 
Bonjour,
Merci pour l'utilitaire de traçage . Ci joint le schéma avec l'AOP et la configuration pour les tests.

View attachment 26249


Tension alim broche + 08M2 => 5.00V
j'ai trouvé la cause de la chute de tension du PWM=> raccordement d'une led à la sortie C2.
Ce montage fonctionne à merveille , sur le point 2 j'obtiens bien les tensions voulues.
Un énorme MERCI à vous MCU pour votre aide précieuse qui à permis de mener a bien ce projet.
Bonne journée.
SMA
Bonjour,
Je pensais avoir répondu mais le message a disparu.
La 330 ohms sur la sortie PWM explique les erreurs.
Pour le schéma final, il faudra enlever la 10k sur C4. La 4k7 est une protection en cas de dépassement de 5V alim en sortie du diviseur de tension, (limitation du courant dans les diodes de protection du µC).
Pour la réalisation d'un PCB, je passe par JLCPCB et DipTrace
Bonne fin de bricolage...

Un truc que je remarque...d'après le tableau #9, il n'y a pas 13 cellules, mais 16, ce qui ne change rien...
De plus, la tension 100% au repos ne serait pas 58,4, mais plutôt 54,4V, voir si il faut changer le select case.
Donne le résultat final, je ferai peut être une page sur mon site, merci.
MM
 
Last edited:
Back
Top