Bonjour,
Débutant, je souhaite arrêter un servomoteur durant 10 secondes puis le relancer par la suite dans la même loop. Avec un moteur cc il suffit d'un delay, mais pour le servo le delay ne sert qu'a temporiser la rotation...j'ai du mal à saisir...
//Début de ma séquence
digitalWrite(ETOILES, LOW);
delay(5000);
//le servo s'actionne
for (pos = 180; pos >= 0; pos -= 1) {
myservo.write(pos);
delay(30);
// le servo s'arrête 10 sec
}
//puis suite de ma séquence...
digitalWrite(FLASH, LOW);//allumer FLASH
delay(300);
digitalWrite(FLASH, HIGH);//eteindre FLASH
delay(6000);
for (pos = 180; pos >= 0; pos -= 1) { //
myservo.write(pos);
delay(30);
// le servo s'arrête 10 sec
}
// puis suite de ma séquence...
kroust:
Bonjour,
Débutant, je souhaite arrêter un servomoteur durant 10 secondes puis le relancer par la suite dans la même loop. Avec un moteur cc il suffit d'un delay, mais pour le servo le delay ne sert qu'a temporiser la rotation...j'ai du mal à saisir...
bonjour
un "servo" est un actuateur commandé (par un signal "servo") , il prend et reste à la derniere position angulaire assignée
en l'absence d'un signal servo , un effort mecanique suffisant peut le faire ""bouger"
en presence d'un signal servo , le servo va agir pour compenser les efforts mecaniques externes
Merci pour ces infos, donc dans mon cas d'un servo 360 avec une roue, je ne peux pas lui dire de parcourir 30 cm, s'arrêter 10 secondes puis repartir? peut être en utilisant la méthode .detach() ?
kroust:
Merci pour ces infos, donc dans mon cas d'un servo 360 avec une roue, je ne peux pas lui dire de parcourir 30 cm, s'arrêter 10 secondes puis repartir? peut être en utilisant la méthode .detach() ?
expose mieux ton probleme, ce que tu a sous la main , ce que tu souhaite faire exactement
les "servo 360" sont generalement des servos modifiés (suppression de butées) pour faire de la variation de vitesse et plus du positionnement.
Voila un schéma. J'ai fais un montage avec un moteur cc qui fonctionne, seulement je n'ai pas assez de contrôle sur la vitesse c'est pourquoi le servo moteur serait plus adapté pour mon projet.
kroust:
Voila un schéma. J'ai fais un montage avec un moteur cc qui fonctionne, seulement je n'ai pas assez de contrôle sur la vitesse c'est pourquoi le servo moteur serait plus adapté pour mon projet.
moteur cc, servo , ou autre
il manque là retour de l'info "fiable" de deplacement (déplacement effectivement effectué)
generalement là , l'info de deplacement est recupérée/reprise au travers d'encodeurs
Pour un tour de roue (circonference) = X impulsions
Bonjour,
Voia j'ai réussi à modifier mon servo 180° pour en faire un rotation continue. Mon code
#include <Servo.h>
//#define writeSpeed(v) write(v+90)
int vit;
Servo monServomoteur;
void setup() {
monServomoteur.attach(9, 1000, 2000);
monServomoteur.write(84);
}
void loop() {
for (vit = 84; vit <= 180; vit += 2) {
// marche avant
monServomoteur.write(vit);
delay(100);
}
//monServomoteur.detach();
}
Le servo tourne bien, mais lorsque je tente un retour avec la valeur 0 (for (vit = 84; vit <= 0; vit += 2), ça ne fonctionne pas. De plus, je me demande si il est possible de conserver une vitesse fixe? (car c'est pour cette raison l'utilisation du servo).