#Picaxe 08M2
'########################## configuration ################################
symbol position1 = b1
symbol position2 = b2
symbol inter1 = pinC.4
symbol inter2 = PinC.3
symbol EN1 = b11
symbol EN2 = b12
'########################## Initialisation ################################
setfreq m4
EN1 = 0 ' Au démarrage on met le flag à 0
EN2 = 0
position1 = 75 ' On rentre la position d'origine
position2 = 150
servo C.1,position1' On place le servo
servo C.2, position2
pause 100
servo C.1, off
servo C.2, off
'#################################################################################
'########################## Programme Principal ############################
'#################################################################################
do
if inter1 = 1 and EN1 = 0 then gosub servo1up ' Si l'inter est à 1 et que le flag à 0 cela signifie que c'est la premiere fois qu'on bascile l'inter
if inter1 = 0 and EN1 = 1 then gosub servo1down ' Si l'inter est à 0 et que le flag à 1 cela signifie que c'est la premiere fois qu'on bascile l'inter
if inter2 = 1 and EN2 = 0 then gosub servo2up
if inter2 = 0 and EN2 = 1 then gosub servo2down
pulsout C.1, position1 ' on positionne le servo avec pulssout pour la stabilité
pulsout C.2, position2
pause 18 ' pour ralentir la Mise à Jour
loop
'#################################################################################
'########################## Programme Secondaire ###########################
'#################################################################################
servo1up:
servo C.1,position1
do
if inter1 = 0 then exit ' si On rappuie sur l'inter pendant le mouvement on sort
inc position1 ' On augmente de 1 la position
pause 10 ' on fais une pause pour ralentir
servopos C.1,position1 ' On place le servo a sa nouvelle place
loop while position1 < 100 ' Tant qu'on a pas atteint la valeur on continue
servo C.1, off
EN1 = 1 ' Une fois le servo à sa position On met le flag a 1
return ' On retourne au programme principal
'--------------------------
servo1down:
servo C.1,position1
do
if inter1 = 1 then exit ' si On rappuie sur l'inter pendant le mouvement on sort
dec position1 ' On descend de 1 la position
pause 10 ' on fais une pause pour ralentir
servopos C.1,position1 ' On place le servo a sa nouvelle place
loop while position1 > 75 ' Tant qu'on a pas atteint la valeur on continue
servo C.1, off
EN1 = 0 ' Une fois le servo à sa position On met le flag a 0
return ' On retourne au programme principal
'--------------------------
servo2up:
servo C.2,position2
do
if inter2 = 0 then exit ' si On rappuie sur l'inter pendant le mouvement on sort
dec position2 ' On diminue de 1 la position
pause 10 ' on fais une pause pour ralentir
servopos C.2,position2 ' On place le servo a sa nouvelle place
loop while position2 > 125 ' Tant qu'on a pas atteint la valeur on continue
servo C.2, off
EN2 = 1 ' Une fois le servo à sa position On met le flag a 1
return ' On retourne au programme principal
'--------------------------
servo2down:
servo C.2,position2
do
if inter2 = 1 then exit ' si On rappuie sur l'inter pendant le mouvement on sort
inc position2 ' On augmente de 1 la position
pause 10 ' on fais une pause pour ralentir
servopos C.2,position2 ' On place le servo a sa nouvelle place
loop while position2 < 150 ' Tant qu'on a pas atteint la valeur on continue
servo C.2, off
EN2 = 0 ' Une fois le servo à sa position On met le flag a 0
return ' On retourne au programme principal