[Résolu] Problème de variable.
Salut,
Je modifie actuellement une lampe de poche, en lui ajoutant une batterie au lithium (donc avec gestion de la charge) et également une led de puissance de marque Cree. Le tout commandé avec un picaxe évidemment.
J'ai donc créer un circuit en cms, mon premier en fait avec le Picaxe en haut. L'autre partie réservé a la charge.
Et donc le programme qui permet de régler la lampe à trois puissances, un mode "SOS", et extinction de la lampe et mise en veille si batterie déchargé ou chargeur branché. Un seul interrupteur pour commander le tout.
Lorsque j'utilise la variable "b4" à la place de "b10", cette dernière change de valeur toute seule. J'ai mis du temps à comprendre que cela venait de là, car une fois que j'ai mis b10 a la place, tous est revenu à la normal.
Je suppose donc que le Picaxe à un défaut de conception, est ce que cela vous est déjà arrivé?
Ou bien un truc m'a peu être échappé dans le programme!
Salut,
Je modifie actuellement une lampe de poche, en lui ajoutant une batterie au lithium (donc avec gestion de la charge) et également une led de puissance de marque Cree. Le tout commandé avec un picaxe évidemment.
J'ai donc créer un circuit en cms, mon premier en fait avec le Picaxe en haut. L'autre partie réservé a la charge.
Et donc le programme qui permet de régler la lampe à trois puissances, un mode "SOS", et extinction de la lampe et mise en veille si batterie déchargé ou chargeur branché. Un seul interrupteur pour commander le tout.
Code:
#picaxe 08m2
init:
high 4 : pause 100 : low 4
main:
if b12=0 or b12=85 or b12=170 then : gosub calcul : endif
if pin1=1 then : gosub mode : gosub calcul : endif
pause 25
inc b12
goto main
calcul:
w0=0
for b5=1 to 10
calibadc10 w1 ; lecture de la tension interne du PicAxe
w0=w0+w1
next b5
w0=w0+10/10
w1=53429/w0*20+30 ; calcul de la tension réelle en mV
w4=w1-3400/2
w4=900-w4
if w1<=3400 or pin3=1 then goto bip
sortie:
if b10=1 then : w4=w4/15 : pwmout pwmdiv4, 2, 249, w4 : endif
if b10=2 then : w4=w4/4 : pwmout pwmdiv4, 2, 249, w4 : endif
if b10=3 then : pwmout pwmdiv4, 2, 249, w4 : endif
return
mode:
b12=0 : b6=0
high 4 : pause 50 : low 4
do while pin1=1
inc b6
pause 100
if b6>=10 then : goto sos : endif
loop
inc b10
if b10>3 then : b10=1 : endif
return
sos:
b10=0 : b7=127
for b13= 1 to 3
for b11= 1 to 3
pwmout pwmdiv4, 2, 249, 100 : pause b7
pwmout 2,off : pause 127
next b11
b7=b7+128
pause 400
if pin1=0 then goto main
next b13
pause 400
if pin1=0 then goto main
goto sos
bip:
if pin3=0 then
for b5= 1 to 12
Toggle 4 : pause 50
next b5
endif
b10=0
att_charge:
pwmout 2,off
disablebod
sleep 4
enablebod
calibadc10 w1 ; lecture de la tension interne du PicAxe
w1=53429/w1*20+30 ; calcul de la tension réelle en mV
if w1>= 3600 and pin3=0 then goto main
goto att_charge
Je suppose donc que le Picaxe à un défaut de conception, est ce que cela vous est déjà arrivé?
Ou bien un truc m'a peu être échappé dans le programme!
Last edited: