Servomoteur et serial port

Salut à tous. Je cherche à faire un montage qui quand j'appuie sur une touche de mon clavier, actionne le servomoteur. Mais j'aimerais que le servomoteur ne tourne seulement que quand la touche est apouyée, et qu'il s'arrête quand je relâche la touche. Pour cela, j'utilise le visual basic sous va studio 2010. J'utilise l'event keydown pour quand la touche est appuyée et keyup pour quand la touche est relâchée. Tout marche correctement avec une led, mais lorsque je met mon servomoteur, tout de suite sa ne marche plus. Mon servomoteur est un servo 180° donc j'aimerais qu'une fois qu'il arrive à 180°,il se mette à tourner dans l'autre sens jusqu'à 0° et ainsi de suite (ce programme est déjà dans les exemples sweep). Mon programme fait tourner le servomoteur quand j'appuie sur une touche mais, mon servomoteur continue de tourner après que j'ai relâché ma touche. Merci de votre aide . a+ :)

Ma boule de cristal m'a dit qu'il manque le code.

voici mon code

#include <Servo.h>

int ledState = LOW;
Servo myservo;
int pos = 50;
int retour = 0;

void setup()
{
Serial.begin(9600);
myservo.attach(9);
myservo.write(pos);
}

void loop()
{
int descent = 0;
char touche;
if(Serial.available()>0){
touche = Serial.read();
if(touche == ‘a’){
myservo.write(pos);
delay(50);
if(descent = 0){
pos++;
}
else
{
pos–;
}
}
}
if(pos == 180){
descent = 1;
}
else if(pos == 0){
descent = 0;
}
}

en définissant “descent” dans la boucle “loop”
tu le recréé à chaque passage. donc si tu le mets à 1 en fin de boucle “loop”, il est recréé et remis à 0 au début de la boucle “loop”
peux tu tester ça

#include <Servo.h>

int ledState = LOW;
Servo myservo;
int pos = 50;
int retour = 0;
int descent = 0;
char touche;
void setup()
{
Serial.begin(9600);
myservo.attach(9);
myservo.write(pos);
}

void loop()
{

if (Serial.available() > 0)
{
touche = Serial.read();
if (touche == ‘a’) //si appui sur touche “a” du clavier PC
{
myservo.write(pos); //le servo va à position 50 au premier passage
delay(50); // (ensuite la consigne de position s’incrémente ou se décrémente)
switch (descent) //puis après la tempo
{
case 0: pos++; break;//si “descent” est = à 0 on incrémente la consigne position
case 1: pos–; break;//si “descent” est = à 1 on décrémente la consigne position
default: break;
}
}
if (pos >= 180) //si la consigne de position est =ou sup à 180
{
descent = 1; //on inverse le case du switch précédent et la prochaine consigne sera 179
}
else if (pos <= 0) //ou si la consigne de position est = ou inf à 0
{
descent = 0; //on inverse le case du switch précédent et la prochaine consigne sera 1
}
} //on boucle pour voir s’il y a toujours appui sur la touche “a” du clavier PC
}

Ça marche à merveille. Merci bcp. A+ :)