Bonjour à tous !
(ca fait longtemps)
je dois dépanner rapidement un spectacle cette semaine, et j'ai besoin d'occulter le faisceau d un video projecteur avec une pale légere.
j utilise un jeenode et un servo hs 422.
j ai le même souci avec les servos que j ai à la maison( hs 422, gws NARO*F H/BB):
le moteur vibrillonne en continu. le bruit et le mouvement sont très embêtants.
j ai essayer de bouger le moteur en write et en writemicroseconds, avec les memes resultats. ca fait du jitter....
que je touche au delay dans la boucle ou pas, même résultat, que j'écrive le moteur à réception de paquet ou hors réception (comme ici):
karistouf:
Merci infoembarquee, mais c est ce que je disais dans mon post: que ce soit a reception ou hors reception c est le meme probleme.
:o
bonjour Christoph
a tu essayé la lib VarSpeedServo ?
si ça vibre en position "stable" , une methode bourrin mais efficace (si tu dispose d'un pin en sortie)
tu colle un mosfet dans la ligne d'alim que tu gere en complement (position stable = servo OFF)
evidemment il faut que la charge sur le servo soit faible pour ne pas entrainer de rotation.
Merci artouste, je vais essayer cette lib ce soir.
J avais tenté une alimentation/desalimentation en utilisant un digital write et en prenant un digital pour alimenter mais ca ne marchait pas.
Mais est ce normal? J avais rencontre ces meme problemes sur une uno il y a quelques annees et du coup je m etonnes: cette vibration est habituelle?
karistouf:
J avais tenté une alimentation/desalimentation en utilisant un digital write et en prenant un digital pour alimenter mais ca ne marchait pas.
karistouf:
Par le port power du jeenode, le tout en sortie usb ordi. Si je passe par un transfo cc 5v c est la memz chose
ok
à ce niveau teste déjà la lib
et teste aussi la coupure d'alim par mosfet (si tu avais essayé d'alimenter le servo directement par un pin en sortie, tu a du bol de pas avoir cuit ta sortie 8) )
Le servo peut vibrer si la valeur passée en argument à writemicroseconds() est trop grande ou trop petite pour le servo. Le servo n'arrive pas à atteindre la consigne et il vibre.
La plage 1000 à 2000 est une plage théorique.
ok, étape N°2, avec la lib qu'Artouste a conseillé, çà marche nettement mieux ( bravo et merci )
l'écriture servo doit impérativement être hors de la condition de réception de paquets.
il faut après l'exécution du write un temps de delay
la stabilité du moteur dépend de la durée du temps de delay le temps que le servo se place
A noter que la fonction write dans VarSpeedServo ne fonctionne pas en angles, mais sur la plage 1000 - 2000.
Cependant:
Je continues d'avoir un petit frétillement, mais discret et par intermittence (on est loin de la cata qu'il y avait avant de changer de lib).
Je n'arrive pas à trouver la solution en changeant les valeurs de map. Faut il ajouter un tore autour du cable du servo pour éviter d'éventuelles interférences ?
#include <JeeLib.h>
#include <VarSpeedServo.h>
VarSpeedServo myservo;
int val_servo=0;
int old_val_servo=-1;
void setup () {
rf12_initialize(2,RF12_868MHZ, 212);//initialisation jeenode
//P1
//pinMode(4,OUTPUT);
//pinMode(14,OUTPUT);
//P2
//pinMode(5,OUTPUT);
myservo.attach(5);
pinMode(15,OUTPUT);
//P3
//pinMode(6,OUTPUT);
//pinMode(16,OUTPUT);
//P4
//pinMode(7,OUTPUT);
//pinMode(17,OUTPUT);
}
void loop ()
{
if (rf12_recvDone() && rf12_crc == 0)
{
//Shutter sur Jee_P2_D = pin 5
val_servo=rf12_data[2]-1;
if(val_servo!=old_val_servo)
{
digitalWrite(15,HIGH); //temoin led
old_val_servo=val_servo;
delay(15);
digitalWrite(15,LOW);
}
}
//l'écriture servo doit être hors de la boucle
int val = map(val_servo, 254, 0, 1000, 1990);
myservo.writeMicroseconds(val);
delay(30);//jouer sur le temps de délai pour enlever le fértillement
//attention le délay dans la réception de donnée joue aussi
}
karistouf:
...
Je n'arrive pas à trouver la solution en changeant les valeurs de map. Faut il ajouter un tore autour du cable du servo pour éviter d'éventuelles interférences ?
je ne pense pas qu'un tore soit là tres utile (mais bon ça ne peut pas nuire)
je mettrais pour test au plus pres du servo plutot un bon gros condo chimique avec en // un non polarisé
(dans l'ideal le NP devrait etre soudé sur les bornes du moteur DC du servo )
bonjour !
non je n'ai pas la place en termes d'espaces. il faudrait que je change de boite et je n'en ai plus sous le coude ici.
les tréssautements sont en effet toujours pale à vide, et un petit peu moins qu avant les condos. mais c est assez aléatoire... je vais essayer le détach, bonne idée !