Go Down

Topic: Arduino et servo "continu" (Read 127 times) previous topic - next topic

sylo

Nov 22, 2020, 04:13 pm Last Edit: Nov 22, 2020, 04:48 pm by sylo Reason: balise
Bonjour,

Je deviens un peu dingue en tentant d'utiliser un servo "continu" (sans butée à 180°).
En effet j'ai plus ou moins déjà tenté une trentaine de sketchs et...rien n'y fait.
Il tourne toujours à fond dans le même sens dès qu'une valeur angulaire lui est soumise.
Pas de stop à 90°, pas de changement de sens de rotation en 0° ou 180°....c'est tout dans un seul sens ou rien.

Je propose de partir d'un exemple récolté sur ce forum .... super basique:
Code: [Select]
#include <Servo.h>

Servo myservo;

void setup()
{ }

void loop() {{
myservo.attach(9);
myservo.write(40);
delay(10000);}

{myservo.write(90);
delay(10000);}
{
  myservo.write(120);
delay(10000);}

 {myservo.write(90);
delay(5000);}
}



Résultat....il tourne non-stop.

L'un d'entre-vous pourrait-il me sortir de mon enfer rotationnel ?   ;-)
Merci

kamill

#1
Nov 22, 2020, 04:38 pm Last Edit: Nov 22, 2020, 04:38 pm by kamill
Bonjour,

Mets ton code entre balises de code.
Les servos continu ne sont pas des servos classiques ou on commande la position. Ce sont des moteurs ou la valeur envoyée commande la vitesse.

sylo

C'est chose faite.
Mais il est bien sûr entendu que je n'en attends pas un fonctionnement classique....

al1fch

#3
Nov 22, 2020, 04:50 pm Last Edit: Nov 22, 2020, 05:15 pm by al1fch
Bonsoir

les 'servos continus'  sont des servos modifiés de manière  à faire disparaître l'asservissement de position (le terme servo  perd alors sa signification initiale, un 'servo continu' n'est plus un servo, c'est un moteur à courant continu dont on gère la vitesse !!!)

autre 'fonctionnement classique' donc avec comme particularité de gérer la vitesse par un signal de type 'commande de servo'





sylo

Oui en effet.
Mais ce n'est toujours pas ma question  :)

al1fch

#5
Nov 22, 2020, 05:07 pm Last Edit: Nov 22, 2020, 05:11 pm by al1fch
En effet !
Quote
Résultat....il tourne non-stop.

L'un d'entre-vous pourrait-il me sortir de mon enfer rotationnel ?   ;-)
la réponse est : OUI.
En général  Il faut envoyer une commande servo 90° qui arrête la rotation

68tjs

#6
Nov 22, 2020, 05:11 pm Last Edit: Nov 22, 2020, 05:12 pm by 68tjs
Oui en effet.
Mais ce n'est toujours pas ma question  :)
Bon j'avais préparé une réponse je l'a poste quand même parce qu'elle peut servir à d'autres un peu plus diplomates, il n'y a pas qu'en matière de servo que tu as des progrès à faire.
Nb la réponse que je fais peut s'obtenir très facilement avec un moteur de recherche.


Tu t'es fais avoir mais si cela peut te consoler tu ne sera ni le premier ni le dernier.
Sous ce double terme imbécile il y a deux abus de langage :
servo : ces produits n'ont rien avoir avec un servo moteur
360  :  heureusement qu'ils peuvent faire plus d'un tour puisqu'ils sont utilisé pour mouvoir des robots.

Comme Kamill l'a dit ce sont des moteur à courant continu "presque" classiques.

Le "presque" signifie que la norme de commande des vrais servo moteur a été adaptée pour leur commande sauf que la signification des temps n'est pas la même.

largeur impulsionVrai servoFaux servo
1,5 msposition centrale 90 °moteur arrêté
tminposition 0°pleine vitesse dans un sens
tmaxposition 180°pleine vitesse dans l'autre sens
tmin <= t <=1,5 msposition intermédiaire entre 0 et 90°vitesse intermédiaire entre  Vmax et  arrêt
1,5 ms<= tmaxposition intermédiaire entre 90 et 180°vitesse intermédiaire entre arrêt et Vmax mais dans l'autre sens




Les Shadocks : L'ignorance ne s'apprend pas.

fdufnews

#7
Nov 22, 2020, 05:44 pm Last Edit: Nov 22, 2020, 05:47 pm by fdufnews
Vous avez mal lu la demande, Sylo précise bien
Quote
Pas de stop à 90°, pas de changement de sens de rotation en 0° ou 180°...
Donc il sait ce qu'il utilise.

Par contre, ce serait bien de savoir sur quelle carte Sylo essaie de faire tourner son code

sylo

Vous avez mal lu la demande, Sylo précise bien  Donc il sait ce qu'il utilise.

Par contre, ce serait bien de savoir sur quelle carte Sylo essaie de faire tourner son code
Merci d'avoir pris la peine d'en effet consulter ma demande réelle.
Ceci dit, et pour être diplomate ce qui pourrait être utile (j'ajoute un LOL, merci d'en tenir compte) je remercie tout de même les intervenants ! Aider n'est pas toujours dans le nature humaine.
Donc, oui, mon soucis est bien, comme relu par fdufnews que mon moteur ne réagit pas comme il le devrait.
Je tourne sur un Arduino Pro Mini.
- alimentation régulée 3.3v pour lui
- alimentation 5v 3A pour le moteur
- toutes les masses misent en commun

fdufnews

#9
Nov 22, 2020, 06:26 pm Last Edit: Nov 22, 2020, 06:29 pm by fdufnews
Je ne suis pas certain qu'un signal de commande 3,3V soit compatible d'une commande servo.
Je dois avouer que je n'ai jamais essayé de faire fonctionner un servo avec une carte en 3,3V. Est-ce que quelqu'un a déjà fait l'essai?
Aurais-tu une carte arduino qui fonctionne en 5V pour tester le même code dessus?

sylo

Bonne piste en effet!
J'essaierai!
Merci

Go Up