Bonjour à tous ,
Merci PieM, tu m'as encore une fois de plus bien aidé a comprendre ;
j'ai donc réfléchis encore un peu afin d'améliorer le truc .
Déjà en travaillant dessus, je me suis rendu compte que je n'avais pas besoin d'un vrai hystérésis , car dans la vraie vie , la tension de la batterie ne va jamais remontée . Une fois quelle est descendu , il suffisait donc de lui donner un seuil inférieur et pas de limite haute . Une fois qu'un palier a été franchis, et une led eteinte , impossible de la rallumée.
Comme j'avais déjà fais la fonction hystérésis, je l'ai garder pour éviter éventuellement certains problèmes mais ça ne sert a rien en pratique je pense . Le seul bug que je pense qu'il peut se produire , c'est si jamais la tension remonte ( on ne sait pas comment) , il y aurait une série de BIP par palier franchis .
Sinon le principe est simple, mais long . Chaque niveau de batterie correspond à une boucle ( donc 5 dans mon cas) . Ainsi on peut varier les seuils pour sortir de cette boucle , et entrée dans la suivante et ainsi de suite .
L'utilisation de outpinsB est génial est bien plus pratique . j'étais partis au début pour travailler avec les bit plutôt afin de simplifier, mais sa reviens pratiquement au même que outpins.
Voila le code pour la partie gestion des options si cela peut donner des idées à d'autres .
L'effet animation du début est optionnel , mais je trouve que ça fais quand même sympa .
J'ai rajouté un palier qui éteint toutes les leds et qui sonne en permanence quand la tension de la batterie atteins un seuil critique, qui pourrait l'endommagée. Je n'ai pas encore la fonction extinction .
Avec un peu de retard je vous mets aussi photo et vidéo ( à regarder avec le son pour étendre les bips)
Comme d'habitude n'hésitez pas a faire des remarques .
Code:
#PICAXE 14M2
'################################################# ################################
'######################## Programme Option ###########################
'################################################# ################################
'########################## configuration ################################
' B_ pour Broche, c'est le nom ou est branché le composant
' E_ pour Etat, c'est la valeur de la broche
' V_ pour variable, ou est enregistrée l'Etat de la broche
'b0 vuemetre
'b1 V_tension
'b2 for next animation
symbol B_LED_R =bit3
symbol B_LED_O =bit2
symbol B_LED_J =bit1
symbol B_LED_V =bit0
symbol B_Beep =C.4
symbol B_tension =C.0
symbol vuemetre = b0
symbol V_tension = b1
dirsB = %00111110 'declare B.1,2,3,4,5 en sortie
dirsC = %00010000 'declare C.4 en sortie
'########################## Initialisation ################################
'################################################# ################################
'########################## Programme Principal ############################
'################################################# ################################
Gosub animation ' On fais l'animation à l'allumage de la télécommande
do ' Boucle principale qui comprends 5 petites boucles
'####### Premiere boucle 4 Leds allumées
do
readadc B_tension,V_tension ' Lecture de la tension
if V_tension > 203 then ' donc 204 ou plus
outpinsB=60 ' On allume les leds correspondantes
else
if time>3 then
gosub Buzzer ' Bip pour signaler un changement de boucle donc d'etat de la batterie sauf au demarrage time > 3 secondes
endif
exit ' Si on remplit pas les conditions on sort de la boucle
endif
loop
'####### deuxiéme boucle : 3 Leds allumées
do
readadc B_tension,V_tension ' Lecture de la tension
if V_tension >190 and V_tension<205 then ' Compris entre 191 et 204 , pour repasser au dessus il faut depassé 204
outpinsB=28 ' On allume les leds correspondantes
else
if time>3 then
gosub Buzzer ' Bip pour signaler un changement de boucle donc d'etat de la batterie sauf au demarrage time > 3 secondes
endif
exit ' Si on remplit pas les conditions on sort de la boucle
endif
loop
'####### troisieme boucle : 2 Leds allumées
do
readadc B_tension,V_tension ' Lecture de la tension
if V_tension >176 and V_tension<192 then ' Compris entre 177 et 191 , pour repasser au dessus il faut depassé 191
outpinsB=12 ' On allume les leds correspondantes
else
if time>3 then
gosub Buzzer ' Bip pour signaler un changement de boucle donc d'etat de la batterie sauf au demarrage time > 3 secondes
endif
exit ' Si on remplit pas les conditions on sort de la boucle
endif
loop
'####### Quatriéme boucle : 1 Led allumée
do
readadc B_tension,V_tension ' Lecture de la tension
if V_tension > 165 and V_tension < 178 then ' Compris entre 166 et 177 pour repasse au dessus il faut dépassé 177
outpinsB=4 ' On allume les leds correspondantes
else
if time>3 then
gosub Buzzer ' Bip pour signaler un changement de boucle donc d'etat de la batterie sauf au demarrage time > 3 secondes
endif
exit ' Si on remplit pas les conditions on sort de la boucle
endif
loop
'####### cinquiéme boucle : 0 Led allumée + bip permanent pour proteger la batterie
do
readadc B_tension,V_tension ' Lecture de la tension
if V_tension <166 and time>3 then ' 165 ou moins
outpinsB = 0 ' Exticntion des led
gosub Buzzer ' On buzz
endif
loop
loop ' Retour boucle principale
'################################################# ################################
'######################### Programme Subsidiaire ###########################
'################################################# ################################
animation: 'fontion qui fais des aller-retours des leds avec bip pour signaler la fin
for b2= 0 to 1
outpinsB = 4
pause 80
outpinsB= 8
pause 80
outpinsB= 16
pause 80
outpinsB= 32
pause 80
outpinsB= 16
pause 80
outpinsB= 8
pause 80
next
outpinsB = 60
gosub Buzzer
return
'####### sub Buzzer ######
Buzzer:
for b3 = 0 to 2 ' Emet 3 petits bip
high B_beep
pause 50
low B_beep
pause 100
next
return
[video=dailymotion;x21snlh]http://www.dailymotion.com/video/x21snlh_telecommande-rc-avec-picaxe_tech[/video]
Plein ecran