Utiliser le 0 pour sortir signifie , qu'il n'ai pas utilisable pour les chiffres. donc impossible d'écrire 100 ou 30 ou 1000.
Ben oui c'est pas génial !!!
Soit on fait un autre s/prog clavier pour les 4 chiffres
Gag ....?
Autre chose:
le systeme pour actionner ce moteur avec le "tout clavier" devient une usine à gaz !
mettez un potard (qui servira à autre chose ensuite, d'ailleurs) entre 0V et 5V sur une entrée A.1 par exemple.
ensuite ce programme :
Code:
[color=Black]commande_pont: [/color][color=Green]' cde manuelle du pont - vitesse et sens fonction du potard
'avec zone neutre entre 480 et 550
'---------------------------------------
[/color][color=Blue]do [/color][color=Green]'boucle d'attente potard au neutre
[/color][color=Blue]readadc10 A.1[/color][color=Black], var_temp
[/color][color=Blue]serout B.7[/color][color=Black],[/color][color=Blue]N2400_16[/color][color=Black],[/color][color=Blue]([/color][color=Navy]254[/color][color=Black],[/color][color=Navy]139[/color][color=Black],[/color][color=Red]"attente 0"[/color][color=Blue])
loop while [/color][color=Black]var_temp [/color][color=DarkCyan]> [/color][color=Navy]550 [/color][color=DarkCyan]or [/color][color=Black]var_temp [/color][color=DarkCyan]< [/color][color=Navy]480
[/color][color=Green]'-----------------------------------------[/color]
[color=Blue]do
readadc10 A.1[/color][color=Black], var_temp
[/color][color=Blue]select [/color][color=Black]var_temp
[/color][color=Blue]case [/color][color=DarkCyan]> [/color][color=Navy]550
[/color][color=Black]var_temp [/color][color=DarkCyan]= [/color][color=Navy]1024[/color][color=DarkCyan]- [/color][color=Black]var_temp
dir [/color][color=DarkCyan]= [/color][color=Navy]1
[/color][color=Blue]pulsout [/color][color=Black]pas,[/color][color=Navy]1 [/color][color=Black]: [/color][color=Blue]inc [/color][color=Black]Pos_actuelle: [/color][color=Blue]pause [/color][color=Black]var_temp
[/color][color=Blue]serout B.7[/color][color=Black],[/color][color=Blue]N2400_16[/color][color=Black],[/color][color=Blue]([/color][color=Navy]254[/color][color=Black],[/color][color=Navy]139[/color][color=Black],[/color][color=Red]">>>>> "[/color][color=Blue])
case [/color][color=DarkCyan]< [/color][color=Navy]480
[/color][color=Black]dir [/color][color=DarkCyan]= [/color][color=Navy]0
[/color][color=Blue]serout B.7[/color][color=Black],[/color][color=Blue]N2400_16[/color][color=Black],[/color][color=Blue]([/color][color=Navy]254[/color][color=Black],[/color][color=Navy]139[/color][color=Black],[/color][color=Red]"<<<<< "[/color][color=Blue])
pulsout [/color][color=Black]pas,[/color][color=Navy]1 [/color][color=Black]: [/color][color=Blue]dec [/color][color=Black]Pos_actuelle: [/color][color=Blue]pause [/color][color=Black]var_temp
[/color][color=Blue]case else
serout B.7[/color][color=Black],[/color][color=Blue]N2400_16[/color][color=Black],[/color][color=Blue]([/color][color=Navy]254[/color][color=Black],[/color][color=Navy]139[/color][color=Black],[/color][color=Red]"Stop "[/color][color=Blue])
end select
readadc A.0[/color][color=Black], touche[/color]
[color=Blue]loop while [/color][color=Black]touche [/color][color=DarkCyan]>[/color][color=Navy]240[/color]
Principe: on appelle ce sous prog:
si le potard n'est pas à peu près en zone centrale (arrêt) on attend qu'il le soit, pour éviter toute manœuvre intempestive.
dès qu'on le tourne dans un sens ou dans l'autre , le moteur suit, avec une vitesse variable.
un appui sur n'importe quelle touche du clavier renvoie au programme appelant.
là, décision de ce qui est fait de la nouvelle valeur Pos_actuelle.
J'utilise uniquement la variable temporaire que j'avais défini dès mon premier programme.
Ce principe (et ce même potard) pourra être utilisé pour définir certains paramètres de vitesses maxi dans un sens ou dans l'autre, de commande manuelle d'une loco etc...
Encore autre chose:
Il ne faut pas oublier que la mémoire EEPROM du picaxe est effacée à chaque chargement de programme.
C'est à dire qu'il faut impérativement mettre les valeurs d'initialisation des voies en EEprom lors du chargement.
d'où ma ligne EEPROM (.....) au début de mon programme initial.
ça veut dire qu'il faut les relever à la main après une initialisation des voies !
Autre solution qui serait préférable:
il y a ces valeurs à rentrer (sans se gourer puisque vous ne voulez pas que le N° de voie corresponde exactement à l'adresse mémoire), mais aussi les valeurs liées au paramètre des "trimmers" qui seront numériques.
Donc la meilleure solution serait de stocker tout ça sur une EEprom externe.
Les entrées analogique sur X2 sont à configurer avec adcsetup.
pour A.0 et A.1 : adcsetup $03