'5aigIR20m2potv4b.bas 'reception type telecommande code=n°touche-1 #picaxe 20M2 'c.6 toujours en entrée 'recepteur IR commande servo et relais 'configuration 1=sortie 0=entrée dirsb=%11111000 'port b dirsc=%00011111 'port c 'c.7 connection TSOP symbol servoa = pinb.7 'sortie vers servoa pin 11 symbol servob = pinb.6 symbol servoc = pinb.5 symbol servod = pinb.4 symbol servoe = pinb.3 symbol relaisa = pinc.0 'cd relais symbol relaisb = pinc.1 symbol relaisc = pinc.2 symbol relaisd = pinc.3 symbol relaise = pinc.4 symbol temps = b1 symbol cpt = b3 symbol code = b4 symbol code1 = b5 symbol code2 = b6 symbol pot1=b7 'en b.1 position1 des servo symbol pot2=b8'en b.2 position2 des servo symbol pot0=b9 'en b.0 pvitesse servo symbol tempo=b10'en b.0 pvitesse servo symbol pas=b11'variable vitesse symbol posa=b12 'position servo a symbol posb=b13 'position servo b symbol posc=b14 'position servo c symbol posd=b15 'position servo d symbol pose=b16 'position servo e posa=150 'position milieu posb=150 'position milieu posc=150 'position milieu posd=150 'position milieu pose=150 'position milieu pullup %1111111111111111 relaisa=1 relaisb=1 relaisc=1 relaisd=1 relaise=1 debut: code=0 code1=0 code2=0 pas=1 'attente d'un signal infrarouge 'si pas de signal apres 100 ms 'retouner au debut 'le code reçu est stocké dans code irin [100,debut],c.7,code readadc b.1,pot1'lecture entre 0 et 255 pot1=pot1/10'variation de 0 à 25ms pot1=150-pot1'entre 1,3 et 1,72ms 'si on souhaite gérer une amplitude ' plus grande on modifie le calcul 'par exemple 'pot1=pot1/3 'variation 0,85ms 'pot1=100+pot1'variation entre 1 et 1,85ms 'attention de restez entre 1 et 2ms readadc b.2,pot2 pot2=pot2/10 pot2=150+pot2 'en fonction du code reçu on 'execute le sous programme 'correspondant readadc b.0,pot0'lecture entre 0 et 255 tempo=pot0 'vitesse de deplacement servo 'aiguillage a if code=1 then relaisa=0 gosub agad endif if code=2 then relaisa=1 gosub agag endif 'aiguillage b if code=3 then relaisb=0 gosub agbd endif if code=4 then relaisb=1 gosub agbg endif 'aiguillage c if code=5 then relaisc=0 gosub agcd endif if code=6 then relaisc=1 gosub agcg endif 'aiguillage d if code=7 then relaisd=0 gosub agdd endif if code=8 then relaisd=1 gosub agdg endif 'aiguillage e if code=9 then relaise=0 gosub aged endif if code=10 then relaise=1 gosub ageg endif goto debut end agad: do while posapot1 posa=posa-pas pause tempo for cpt=1 to 3 pulsout b.7,posa pause 17 '19,9ms réel next cpt loop return agbd: do while posbpot1 posb=posb-pas pause tempo for cpt=1 to 3 pulsout b.6,posb pause 17 '19,9ms réel next cpt loop return agcd: do while poscpot1 posc=posc-pas pause tempo for cpt=1 to 10 pulsout b.5,posc pause 15 '19,9ms réel next cpt loop return agdd: do while posdpot1 posd=posd-pas for cpt=1 to 10 pulsout b.4,posd pause 15 '19,9ms réel next cpt loop return aged: do while posepot1 pose=pose-pas for cpt=1 to 10 pulsout b.3,pose pause 17 '19,9ms réel next cpt loop return