Servo programmation

Les cartes Arduino, les platines

Servo programmation

Message non lude Naissim » Dim 13 Avr 2014 12:57

Bonjours à tous , je viens sur ce forum pour réussir à faire tourner une petite barrière , j'ai acheté un servo retract hitec HS-75BB j'ai utilisé les codes de la librairie arduino sweep que voici :

Code: Tout sélectionner
#include <Servo.h>
 
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()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}
 
 
void loop()
{
  for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 180; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees
  {                               
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}



cependant avec ce servo le code ne fonctionne pas , savez vous pourquoi ? Quel serais le code approprié pour ce genre de servo ? merci pour vos réponses.
Naissim
 
Messages: 5
Inscription: Ven 15 Mar 2013 10:06

Re: Servo programmation

Message non lude Laetitia » Lun 28 Avr 2014 17:00

Bonjour,

Je me suis permise d'éditer votre message avec des balise "code" pour que ce dernier soit plus lisible.

Dans votre loop(), vous définissez plusieurs fois la valeur de la variable "pos", le problème vient peut-être de là. Essayez quelque chose comme :

Code: Tout sélectionner
void loop()
{
  for(int i = 0; i < 181; i += 1)  // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo.write(i);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for(int j = 180; j >= 0; j -= 1)     // goes from 180 degrees to 0 degrees
  {                               
    myservo.write(j);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}

J'ai également modifié les valeurs de début et de fin de boucle, pour que le servo aille vraiment de 0 à 180° et non de 1 à 179 comme c'est le cas actuellement...
"If it's itchy, scratch it !" - "DIY or die"

RTFM (À lire avant de poster) - ANDb (Arduino Noob Database)
Avatar de l’utilisateur
Laetitia
 
Messages: 296
Inscription: Mar 7 Aoû 2012 15:07
Localisation: Toulouse

Re: Servo programmation

Message non lude delhoume » Mar 29 Avr 2014 21:36

A mon humble avis ce n'est pas le code qui ne va pas, je ne vois rien de problématique à réutiliser pos comme variable.
Je dirais un souci de câblage ou d'alimentation du servo, comment est-il alimenté ?
delhoume
 
Messages: 6
Inscription: Sam 29 Mar 2014 18:01

Re: Servo programmation

Message non lude EricDuino » Jeu 1 Mai 2014 18:45

:oops: ce servo n'est pas fait pour se positionner à un angle voulu entre 0 et 180° (servo à positionnement proportionnel) mais destiné à rétracter un train atterrissage d'avion de modélisme >> seulement 2 position 0 et 170° :!:

Alors peut être que pour une barrière c'est jouable, il faut simplement vérifier entre la doc du servo et la ref de la librairie servo si les "pulses" de commandes sont compatibles, avec le peu de connaissance que j'ai, à première vue non, mais je suis presque persuadé qu'avec des séries DigitalWrite 1,0,1,0.... , séparés par le bon délais qui va bien on doit pouvoir faire le truc > de manière de valider le fct des bestiaux.
Si non faut chercher une autre lib, modifier des timers, gérer des interrupts.... du lourd (pour moi).


https://www.servocity.com/html/hs-75bb_ ... 2KFFPl_t8s
Avatar de l’utilisateur
EricDuino
 
Messages: 232
Inscription: Sam 5 Mai 2012 10:10
Localisation: Toulouse


Retourner vers Arduino

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité