mais j’espère que mon cerveau fonctionne...
Quelqu’un as-il déjà utilisé ces servos, les exemples de la librairie servo standard ne fonctionnent pas...
Une idée ?
Merci d'avance,
Jacques
mais j’espère que mon cerveau fonctionne...
Quelqu’un as-il déjà utilisé ces servos, les exemples de la librairie servo standard ne fonctionnent pas...
Une idée ?
Merci d'avance,
Jacques
Bonsoir Jacques
NB : je ne connais pas ton servo ,
Tu n'a strictement aucune reaction du servo ?
Il semble assez gourmand en energie
tu l'alimente avec quoi ?
il a une course possible sur 270°
les 2 exemples de la lib servo utilisent l'instruction servo.write pour positionner le servo , mais c'est pour faire du positionnement entr 0 et 180°
Il est fort probable que dans ton cas il faille utiliser l'instruction servo.writeMicroseconds pour gerer correctement l'amplitude 0/270°
Bonsoir Artouste,
ça faisait longtemps qu'on avait pas échangé, j’espère que tu vas bien.
Le servo est alimenté en 7v avec une alim surdimensionnée en terme d'intensité donc pas de souci de ce côté là je crois.
Le servo vibre mais ne fait pas de réel mouvement. Il y a deux modèles, un avec un débatement de 270°,
un autre 180°, les deux ont le même comportement...
On a aussi testé un code sans lib :
uint8_t servo1=9;
void setup() {
pinMode (servo1,OUTPUT);
}
void loop() {
for(int i=500 ;i<=2500;i=i+5)
{
digitalWrite(servo1,HIGH);
delayMicroseconds(i);
digitalWrite(servo1,LOW);
delayMicroseconds(2500-i);
}
delay(15);
}
Pareil !
bouault:
Bonsoir Artouste,
ça faisait longtemps qu'on avait pas échangé, j’espère que tu vas bien.
Le servo est alimenté en 7v avec une alim surdimensionnée en terme d'intensité donc pas de souci de ce côté là je crois.
Le servo vibre mais ne fait pas de réel mouvement. Il y a deux modèles, un avec un débatement de 270°,
un autre 180°, les deux ont le même comportement...
Bonjour Jacques
hé oui , le temps passe vite à son rythme ![]()
ok pour l'alim
juste pour une verif rapide
test ce code dérivé de l'exemple sweep
servo 180° ou 270° peu importe
tu devrais obtenir du "plus franc" et soutenu en positionnement entre les positions extremes
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
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 += 10) { // goes from 0 degrees to degrees max
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(300); // waits for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 10) { // goes from max degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(300); // waits for the servo to reach the position
}
}
bouault:
Le servo vibre mais ne fait pas de réel mouvement.
Bonjour,
Dans ton programme la période du signal est de 2.5 ms au lieu de 20 ms généralement utilisée pour les servos. Ne serait ce pas la cause du problème?
Essayes avec une période de 20 ms
void loop() {
for (int i = 500 ; i <= 2500; i = i + 5)
{
digitalWrite(servo1, HIGH);
delayMicroseconds(i);
digitalWrite(servo1, LOW);
delayMicroseconds(20000 - i);
}
}
Kamill :en effet c'est une erreur !
On corrige et on essaie cet après midi. Ainsi que le code d'Artouste.
Bon désolé, j'ai tardé à répondre...
Pour conclure : Les servos Hiwonder LDX227 ne doivent pas être pilotés avec la commande myservo.write(pos); , mais avec servo.writeMicroseconds(uS) , avec 500<=uS<=2500.
Avec la commande myservo.write(pos); , ces valeus sont comprises entre 1000 et 2000.
Merci pour votre aide.
Jacques
bouault:
Bon désolé, j'ai tardé à répondre...
Pour conclure : Les servos Hiwonder LDX227 ne doivent pas être pilotés avec la commande myservo.write(pos); , mais avec servo.writeMicroseconds(uS) , avec 500<=uS<=2500.
Avec la commande myservo.write(pos); , ces valeus sont comprises entre 1000 et 2000.
Merci pour votre aide.
Jacques
Bonjour Jacques
Comme je l'avais "subodoré"
à ma réponse en #2
la solution avec la lib servo standard viens souvent dés que l'on sort du basique 0/180° de passer par du
servo.writeMicroseconds(uS)
çà permet déjà une "finesse" plus importante dans le positionnement
Par curiosité (saine) 8) parfaitement assumée , je suppose que tu motorise de l'éclairage avec ton servo ?
Non c'est pour des trappes à fumée !
C'est pour un projet avec l'artiste Guillaume Cousin qui fait des installations avec de la fumée.