Meuh
02-08-2012 à 21h32
|
Programme v28 :
1) changement séquence de test de la carte = 1 bip (à cause du point 2).
2) ajout d'une tempo. pour le séquençage de picaxes (4 picaxes sur une seule carte par exemple) = pic1 à 0 seconde, pic2 à 500ms, pic3 = 1 seconde ... cela permet d'entendre tous les buzzers au démarrage et donc, de les compter sans les voir ... et donc d'entendre si une voie de détection est morte.
il faut programmer la tempo. différente pour chaque programmation de chaque pic (pic 1 = 0, pic2 = 500, pic3 = 1000, etcs...) car le picaxe 08M2 ne possède pas de vrai fonction random mathématique basée sur une puce de temps/date)
3) modification de l'indicateur de tension en mode veille, il indique par clignotement 3-6-5 pour 3,65v.
ATTENTION, je rappelle que la tension indiquée est une tension "en décharge à 1A", pas la tension à vide...(qui est donc plus haute au voltmêtre, par exemple 3,65v à vide devient 3,55v en décharge à 1A sur 1 seconde).
; Programme prévu pour un PicAxe 08M2.
; Langage = BASIC standardisé à la norme PicAxe.
;
; Notes
; =====
;
;
;
; Créateur : Meuh sur cyclurba.fr (2012-BMS ver.28)
; --------
init:
; Définition des sorties utilisées
low C.2 ; décharge = composé de :
; - Transitor en boitier TO92 Extended du modèle BCU83F
; - R de base de 68 Ohms métal
; - R de décharge de 3,3 Ohms Céramique/Cément de 5w
; - la R de décharge atteint 100-130°C à 25°C
; - C.2 supporte le PWM (signal carré en arrière plan)
low C.1 ; rouge
low C.4 ; vert
; Ces 2 sorties pilotent 1 seul LED bi-couleur 3v + R de 1k
; On ne peut donc pas les activer en même temps
; Si on le fait, la LED reste éteinte
low C.0 ; Buzzer : composé de :
; - Transitor en boitier TO92 Extended du modèle BCU83F
; - R de base de 68 Ohms métal
; - Buzzer de 3-6v DC à 82dB (équivalent aux Lipo-Alarm)
; Variables utilisées dans le programme
let w13 = 0 ; tension brute (CalibADC10)
let w12 = 0 ; tension en mV (calculée)
let w11 = 0 ; tension en mV durant le cycle dodo
let w10 = 0 ; Consigne PWM variable
let w9 = 0 ; variable d'opération mathématique
let w8 = 0 ; variable d'opération mathématique
let b0 = 0 ; Signalisation seuil trophaut
let b1 = 0 ; Comptage pour applanir
let b2 = 0 ; Comptage cycle dodo
let b3 = 0 ; Signalisation tension
let b4 = 0 ; Comptage indication mesure tension
let b5 = 0 ; Filtrage seuil haut
let b6 = 0 ; Signalisation seuil tropbas
let b7 = 0 ; millier de mV
let b8 = 0 ; centaine de mV
let b9 = 0 ; dizaine de mV
; ATTENTION : dans le programme, les b0-b1-b2 ... ne peuvent
; pas avoir plus que 255 puis ils repassent à 0 sans votre
; accord.
; PAREIL pour les w0-w1-w2 ... qui ne peuvent pas avoir plus
; de 65535 puis ils repassent à 0 sans votre accord.
pause 4000 ; pause de démarrage pour le séquençage de multiples picaxes
; 0 = pic1, 500 = pic2, 1000 = pic3 ... etcs ...
; contrôle des signalisations du BMS
High C.0 : pause 200 : low C.0 : pause 200 ; Test Buzzer
High C.4 : pause 500 : low C.4 : pause 200 ; Test LED verte
High C.1 : pause 500 : low C.1 : pause 200 ; Test LED rouge
do ; Test R décharge en PWM
inc w10 : pwmout C.2, 49, w10
loop until w10=200
do
dec w10 : pwmout C.2, 49, w10
loop until w10=0
pwmout C.2, OFF
main: ; Démarrage du BMS mono-cellule
calibadc10 w13 ; lecture de la tension interne du PicAxe
let w12 = 52429/w13*20+10 ; calcul de la tension réelle en mV
if w12>=3800 then ; tension seuil trop haut (Lipo:4,22v LifePO4:3,8v)
goto trophaut
endif
if w12=<2700 then ; tension seuil trop bas (Lipo:3,0v LifePO4:2,5v)
goto tropbas
endif
if w12>=3650 then ; tension d'équilibrage (Lipo:4.20v LifePO4:3,65v)
goto volthaut
endif
if w12<3650 then ; tension d'équilibrage à l'identique du dessus
goto voltbas
endif
goto main
trophaut: ; décharge, clignotement rapide rouge et Buzzer
inc b5
let w10=200
pwmout C.2, OFF
High C.2
low C.4
if b5>5 then
let b0=6
do
High C.1 : toggle C.0 : pause 100 : low C.1 : pause 100
dec b0
loop until b0=0
endif
pause 1000
low C.2
goto main
tropbas: ; clignotement rouge et vert + Buzzer (long)
let b2=0
let b4=0
let b5=0
let w10=0
pwmout C.2, OFF
let b6=5
do
High C.1 : High C.0 : pause 300 : low C.1 : pause 300
High C.4 : pause 300 : low C.4 : low C.0 : pause 300
dec b6
loop until b6=0
goto main
volthaut:
let b2=0 ; Reset cycle dodo
let b4=0 ; Reset indicateur de niveau
let b5=0
inc b1
If w10=>60 then ; Indiquer un niveau haut en rouge fixe
High C.1
low C.4
endif
If b1=200 then ; Applani plus vite la tension
pwmout C.2, OFF
High C.2
pause 5000
low C.2
let b1=0
goto main
endif
pwmout C.2, 49, w10
if w10=200 then
goto main
endif
inc w10 ; Augmenter la puissance de décharge
goto main
voltbas:
let b5=0
if w10=0 then ; si la décharge est déjà arrêtée, aller en dodo
goto dodo
endif
If w10=<40 then ; Indiquer un niveau normal en vert fixe
High C.4
low C.1
endif
pwmout C.2, 49, w10
dec w10 ; Diminuer la puissance de décharge
goto main
dodo:
low C.4 ; Tout éteindre et compter le cycle dodo
low C.1
low C.0
let b1=0
pwmout C.2,OFF
inc b2
sleep 4 ; Ralentir le pic
If b2=7 then ; Niveau que après 1 minute d'hibernation
If b4=0 or b4=10 then ; Donner une tension non-fantôme (après 10 min)
let w10=0
do
inc w10 : pwmout C.2, 49, w10 ; Suppression tension fantôme pour une lecture
loop until w10=200 ; Montée graduelle pour éviter les EMI sur les
pause 1000 ; autres PIC lorsqu'ils sont à coté
calibadc10 w13 ; lecture de la tension interne du PicAxe
let w11 = 52429/w13*20+10 ; calcul de la tension réelle en mV
let b4=0
let w10=0
pwmout C.2,OFF
endif
inc b4
If w12<w11 then ; Si la tension descend, indiquer la vrai tension
let w11=w12 ; mesurée toutes les 10s au lieu de celle toutes
endif ; les 10 min
pause 2000
; Indication niveau batterie stable
let b7=w11/1000 ; calcul du millier de mV
let w9=b7*1000
let b8=w11-w9/100 ; calcul du centaine de mV
if b8>9 then : let b8=0 : endif
let w8=b8*100
let b9=w11-w9-w8/10 ; calcul du dizaine de mV
if b9>9 then : let b9=0 : endif
do
High C.4 : pause 150 : low C.4 : pause 500
dec b7
loop until b7=0
pause 1000
if b8=0 then
High C.4 : pause 500 : low C.4 : pause 500
goto diz
endif
do
High C.4 : pause 150 : low C.4 : pause 500
dec b8
loop until b8=0
pause 1000
diz:
if b9=0 then
High C.4 : pause 500 : low C.4 : pause 500
goto unit
endif
do
High C.4 : pause 150 : low C.4 : pause 500
dec b9
loop until b9=0
unit:
let b2=0
endif
goto main
Nikola (tesla), 15299 msg, 63 ans. Zurich (CH-01). [mon blog] ----- Eclateur d'arc électrique par air dans le 400kV ... Discussion déplacée depuis la rubrique Chargeurs et batteries au Lithium, le 2012-05-17 17:05:26 par Meuh. |
Gob33
10-08-2012 à 01h54
|
Articles en relation avec Picaxe-BMS:
Old BMS General Thread
A PIC based Battery Management System
J'ai pas lu, juste parcouru, c'est trop long.
Gobinus, 561 msg, 50 ans. Bordeaux (FR-33). |
publicité 10-08-2012 à 01h54
|
|
Meuh
10-08-2012 à 02h08
|
déjà posté dans le sujet de 3615jmd (bms pic12F) 
les sujets utilisent des ponts diviseurs de tension ou des ADC multiples sur un seul chip pour plusieurs cellules.
principe que je me refuse à utiliser vu les mesures indirectes utilisées et la nécessité de maitriser les grandeurs et les principes électroniques.
sur le bms picaxe du sujet, la puce mesure son canal, est isolée du reste et réagit sans contrainte extérieure...
le remplacement en cas d'inverson de polarité est maitrisé ainsi que les débordements de tension en seuil haut et bas.
Nikola (tesla), 15299 msg, 63 ans. Zurich (CH-01). [mon blog] ----- Eclateur d'arc électrique par air dans le 400kV ... |
Superjc
10-08-2012 à 14h53
|
Meuh a écrit :
déjà posté dans le sujet de 3615jmd (bms pic12F) les sujets utilisent des ponts diviseurs de tension ou des ADC multiples sur un seul chip pour plusieurs cellules. principe que je me refuse à utiliser vu les mesures indirectes utilisées et la nécessité de maitriser les grandeurs et les principes...
Tu as fait la partie ‘slave’ qui gère la dérivation courant et les alarmes visuelles et sonores.
Pour mériter le nom de BMS reste la partie essentielle à faire : le ‘master’ qui vas véritablement protéger la batterie.
Surtout en cas d’absence de personne pour surveiller…
Christophe, 590 msg, 52 ans. Guyancourt (FR-78). [mon blog] VTT Taff with bafang 36V swxk 185R |
Meuh
10-08-2012 à 15h13
|
C'est pour ça que je le vends pas tout fait... il faut que l'utilisateur accepte une part de responsabilité. (un BMS commercial, c'est très austère ... ça donne rien comme indication)
C'est mon cas, j'accepte d'aller voir toutes les heures (ou moins) quand la batterie est en charge et vérifier le suivi de tension en clignotement et une différence visuellement possible (genre une batterie clignote à 3,13v alors que la suivant est déjà en équilibrage (3,65v)...ça veut dire que je dois surveiller celle en équilibrage à la prochaine recharge car elle commence à être "trop" morte.
l'idée du master/slave ne me plaît pas ... elle met en sécurité sans savoir vraiment pourquoi.
biensûr, on peut sortir un log de recharge mais c'est trop compliqué (pour mon niveau).
un déséquilibre de cellule se repère bien mieux en charge qu'en utilisation (voir sujet "démarrer voiture lifepo4")...d'où ma nécessité d'un Buzzer sur chaque voie...ainsi qu'un clignotement pour indiquer la tension de l'élément surveillé.
mais comme dit, c'est ma vision des choses (d'où le fait de 2 sujet sur 2 BMS bien différents).
Nikola (tesla), 15299 msg, 63 ans. Zurich (CH-01). [mon blog] ----- Eclateur d'arc électrique par air dans le 400kV ... |
Superjc
10-08-2012 à 15h26
|
Meuh a écrit :
biensûr, on peut sortir un log de recharge mais c'est trop compliqué (pour mon niveau)...
C’est simple :
Tu branches le PC sur un des picaxes
Et tu ajoutes dans le programme l'instruction: sertxd("[V= ", #w13,cr,lf)
Sans PC, c'est effectivement moins facile...
Christophe, 590 msg, 52 ans. Guyancourt (FR-78). [mon blog] VTT Taff with bafang 36V swxk 185R |
Meuh
10-08-2012 à 15h31
|
ouais, mais ça sous-entend que l'étage maitre-esclave est déjà en place pour récupérer la tension de tous les canaux.
je donnais ma remarque dans son ensemble, point de vue électronique, conception et isolation ... c'est pour que le sujet 3615jmd est plus calé là-dessus (et que je gicle donc toute discussion là-bas puisque c'est souvent déjà abordé sur son sujet).
Nikola (tesla), 15299 msg, 63 ans. Zurich (CH-01). [mon blog] ----- Eclateur d'arc électrique par air dans le 400kV ... |
Meuh
30-08-2012 à 01h35
|
Application du BMS Picaxe sur un montage de batteries servant à réguler une production solaire (permet de palier les nuages et ombres portées alors que la demande derrière est constante).
Le bloc est composé de 4S14P 18650 LifePO4 20Ah 14,6v.
Le programme est le même que celui appliqué à la batterie 4S3P Headway+Zippy LifePO4 -le v28-.
Un autre bloc de 4S28P (40Ah 14,6v) est en cours de montage et contiendra le même BMS...néanmoins, les données des résistances de décharge ne varient pas soit 1,1Ah max sur ce BMS.
Généralement, ce "Tampon Solaire" travaillera toujours entre 70% et 100% de charge (un peu comme dans une voiture en hiver).
Avant, dû à la faible production solaire, ce tampon tournait entre 0 et 40% de charge moyenne.
Nikola (tesla), 15299 msg, 63 ans. Zurich (CH-01). [mon blog] ----- Eclateur d'arc électrique par air dans le 400kV ... |
Meuh
02-09-2012 à 22h44
|
Bien qu'une plaquette 4S tourne actuellement dans ma voiture, la charge de visu. est plus intéressante sur un pack identique en capacité (soit 20Ah).

Je peux bien me rendre compte du travail du programme et du peu de courant d'équilibrage (de décharge mono-cellule) qui est demandé en fin de charge lorsqu'une batterie à bien été déchargée cellule par cellule à 2,5v (LifePO4).
C'est parfait (pour moi), ce type de fonctionnement... j'ai lancé une plaquette 10S qui s'occupera du 8,8Ah Lipo implanté sur le Yikebike.
Donc, le projet est un succès de mon coté, plus besoin de BMS évasif commercial qui n'indique jamais rien.
Sur les clignotements, j'arrive à bien voir les différences de tension "en décharge à 1A" que scrute le programme du Picaxe.
Si bien que :
3,09v = 2Ah
3,25v = 14Ah
3,41v = 18Ah
3,45-3,47v = cellule chargée en passe de franchir le seuil 3,65v à vide
La cellule est rechargée lorsque je vois l'étage de décharge s'allumer irrégulièrement... et même avec une cellule de 20Ah, l'étage fonctionne 5 secondes toutes les minutes en attendant que les autres cellules arrivent au même niveau.
Test réalisé à une tension élevée que le seuil d'équilibrage programmé c'est à dire 14,7v (3,67v par cellule en 4S) et le seuil 1 cellule réglé à 3,65v.
C'est d'ailleurs une bonne idée pour tester un pack, pour voir s'il est très déséquilibré ou pas en capacité...
Le prix des réalisations (plaquette à faire sur-mesure et composants à souder/payer) est complétement oubliée quand on voit la solution totalement communicante du pack de batterie.
Biensûr, je ne me cache pas que ce BMS Picaxe a simplement rassemblé les Cellog, Lipo-Alarm et Battery Medic en un seul système.
Nikola (tesla), 15299 msg, 63 ans. Zurich (CH-01). [mon blog] ----- Eclateur d'arc électrique par air dans le 400kV ... |
publicité 02-09-2012 à 22h44
|  Lien commercial -56- |
Meuh
25-09-2012 à 17h23
|
Câblage de la version 10S (95mm par 185mm).
Je me suis fait piégé par mes projets multiples, il me manque 1 condensateur tantale pour le finir... 
Je dois encore grillager les résistances de décharge... faut vraiment que je trouve du fils étamé souple, ça me simplifiera les prochains.
Pas grâve, je vais commander le matériel pour le prototype "relais picaxe" en même temps... 
Quelques photos, ça reste sans surprise puisque ça tourne ailleurs (3 batteries LifePO4 4S actuellement en régime continu 24h/24...je regarde les voyants de temps en temps pour surveiller que toutes les voies sont actives).

- 
- 
- 

Pourquoi pas 2 plaquettes 5S séparées ?
Parce que tous les BMS picaxe qui sont sortis du sujet n'ont aucun problème... et comme on peut désouder assez facilement
L ' espace minimal entre soudure = 2,54mm
Largeur des pistes = 1,27mm
il n ' y a donc pas à refabriquer le PCB en cas de panne d'un composant.
On le coupe, on chauffe pour enlever les pattes et on ressoude tranquillement.
Les embases 5S ne prennent en compte que un ordre + - + - .... peu importe la liaison série que vous faites derrière en puissance pour le chargeur ou l ' engin électrique (c'est aussi l ' intérêt du BMS picaxe).
Nikola (tesla), 15299 msg, 63 ans. Zurich (CH-01). [mon blog] ----- Eclateur d'arc électrique par air dans le 400kV ... |
|
|