bonjour à la communauté,
Pour synchroniser 4 aiguillages j'ai utilisé un picaxe 18m2, avec 4 capteurs de position. le programme fonctionne très bien à condition de mettre les 4 sorties au niveau bas et écrire "reset" pour relancer le programme en fin de boucle. Ceci est-il conforme ou y a t'il une meilleure écriture de ce programme?
Merci, bonne journée
JCD
Pour synchroniser 4 aiguillages j'ai utilisé un picaxe 18m2, avec 4 capteurs de position. le programme fonctionne très bien à condition de mettre les 4 sorties au niveau bas et écrire "reset" pour relancer le programme en fin de boucle. Ceci est-il conforme ou y a t'il une meilleure écriture de ce programme?
Merci, bonne journée
JCD
Code:
#picaxe 18m2
#no_data
symbol ac11=pinc.1 'capteur position a11
symbol ac12=pinc.7 'capteur position a12
symbol ac13=pinb.7 'capteur position a13
symbol ac14=pinb.5 'capteur position a14
symbol a11=pinc.0 'touche aiguillage a11
symbol a12=pinc.6 'touche aiguillage a12
symbol a13=pinb.6 'touche aiguillage a13
symbol a14=pinb.4 'touche aiguillage a14
symbol cde11=b.0 'command aiguillage a11
symbol cde12=b.1 'command aiguillage a12
symbol cde13=b.3 'command aiguillage a13
symbol cde14=b.2 'command aiguillage a14
symbol ac11_p=b2 'position aiguillage a11
symbol ac12_p=b3 'position aiguillage a12
symbol ac13_p=b4 'position aiguillage a13
symbol ac14_p=b5 'position aiguillage a14
symbol a11_t=b6 'touche aiguillage a11
symbol a12_t=b7 'touche aiguillage a12
symbol a13_t=b8 'touche aiguillage a13
symbol a14_t=b9 'touche aiguillage a14
do
low cde11:low cde12:low cde13:low cde14
'position aiguillage a11
if ac11=1 then
ac11_p=1:a11_t=1
' sertxd("11 - capteur position = ",#ac11_p," - touche aiguillage = ",#a11_t,cr,lf)
elseif ac11=0 then
ac11_p=0:a11_t=0
' sertxd("11/2 - capteur position = ",#ac11_p," - touche aiguillage = ",#a11_t,cr,lf,cr,lf)
end if
'position aiguillage a12
if ac12=1 then
ac12_p=1:a12_t=1
' sertxd("12 - capteur position = ",#ac12_p," - touche aiguillage = ",#a12_t,cr,lf)
elseif ac12=0 then
ac12_p=0: a12_t=0
' sertxd("12/2 - capteur position = ",#ac12_p," - touche aiguillage = ",#a12_t,cr,lf,cr,lf)
end if
'position aiguillage a13
if ac13=1 then
ac13_p=1:a13_t=1
'sertxd("13 - capteur position = ",#ac13_p," - touche aiguillage = ",#a13_t,cr,lf)
elseif ac13=0 then
ac13_p=0: a13_t=0
'sertxd("13/2 - capteur position = ",#ac13_p," - touche aiguillage = ",#a13_t,cr,lf,cr,lf)
end if
'position aiguillage a14
if ac14=1 then
ac14_p=1:a14_t=1
'sertxd("14 - capteur position = ",#ac14_p," - touche aiguillage = ",#a14_t,cr,lf)
elseif ac14=0 then
ac14_p=0: a14_t=0
'sertxd("14/2 - capteur position = ",#ac14_p," - touche aiguillage = ",#a14_t,cr,lf,cr,lf)
end if
'trajet a13-------->a12
if a13=0 and ac13_p=1 and ac12_p=1 then
toggle cde12
elseif a13=1 and ac13_p=0 and ac12_p=0 then
toggle cde12
end if
'trajet a12-------->a13
if a12=1 and ac12_p=0 and ac13_p=0 then
toggle cde13
elseif a12=0 and ac12_p=1 and ac13_p=1 then
toggle cde13
end if
'trajet a13-------->a11
if a13=1 and ac13_p=0 and ac11_p=0 then
toggle cde11
elseif a13=0 and ac13_p=1 and ac11_p=1 then
toggle cde11
end if
'trajet a11-------->a13
if a11=1 and ac11_p=0 and ac13_p=1 then
toggle cde13
elseif a11=0 and ac11_p=1 and ac13_p=0 then
toggle cde13
end if
'trajet a12-------->a14
if a12=1 and ac12_p=1 and ac14_p=1 then
toggle cde14
elseif a12=0 and ac12_p=0 and ac14_p=0 then
toggle cde14
end if
'trajet a14-------->a12
if a14=0 and ac14_p=1 and ac12_p=0 then
toggle cde12
elseif a14=1 and ac14_p=0 and ac12_p=1 then
toggle cde12
end if
loop
reset