désolé il manquait un bout du programme, le voilà complet
bonjour à toutes et tous
je reprends un projet mené par mon fils et pour lequel il n'a plus le temps pour l'instant il s'agit de motorisé la visière du casque d'iron man le casque est fini, toute l'installation aussi, ne reste plus que le programme. voici un petit bout du programme qui ne donne pas satisfaction. Le servo est commandé par télécommande, mais en position 0 (visière fermé) il continue à fonctionner (bruit de grésillement) et chauffe (accessoirement il use la pile). Par contre le fait qu'il continue à maintenir la position à 180 (visière ouverte) est primordial sinon la visière se referme sous son poids. j'ai trouvé sur le net des fonctions int myServo_Repos = 0 ou servo.detach()mais rien ne fonctionne.
voici le programme:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #include <Servo.h> #include <IRremote.h> #include <IRremoteInt.h> int RECV_PIN = 11; IRrecv irrecv(RECV_PIN); decode_results results; Servo myservo; // create servo object to control a servo // a maximum of eight servo objects can be created int pos = 0; // variable to store the servo position void setup() { Serial.begin(9600); irrecv.enableIRIn(); myservo.attach(2); // attaches the servo on pin 9 to the servo object } void loop() { if (irrecv.decode(&results)) { switch (results.value) { case (0xFD807F)://touche vol + for(pos = 0; pos < 180; pos += 1) { myservo.write(pos); delay(15); } break; case (0xFD906F)://touche vol - for(pos = 180; pos>=1; pos-=1) { myservo.write(pos); delay(15); } break; } irrecv.resume(); } } |
d'avance merci pour votre aide.