Angle du servo via le port série
Fait partie de la section Sorties du Journey Arduino de Coddy. Leçon 23 sur 24.
Le bras peut également recevoir des commandes depuis le moniteur série. Saisissez un angle et appuyez sur Entrée ; Serial.parseInt() lit le nombre :
if (Serial.available() > 0) {
int angle = Serial.parseInt();
Serial.read(); // le saut de ligne après le nombre
// utiliser angle
}Le saut de ligne après le nombre reste en attente. Lors de l’exécution suivante de loop(), parseInt() ne trouverait aucun chiffre, attendrait une seconde et renverrait 0. Ignorer ce 0 fonctionnait pour une vitesse de clignotement, mais 0 est un angle valide. Il faut donc supprimer le saut de ligne avec un seul Serial.read() juste après le nombre.
On peut également saisir un nombre qui ne correspond pas à un angle. arm.write() interprète tout nombre à partir de 544 comme une durée d’impulsion en microsecondes ; 1000 placerait donc le bras près de 45 degrés. constrain() maintient d’abord l’angle entre 0 et 180 :
angle = constrain(angle, 0, 180); // passe-lui la variable, pas parseInt()Défi
MoyenDéplace le servomoteur à l’angle saisi dans le moniteur série :
- lorsqu’un nombre arrive, lis-le avec
Serial.parseInt(), puis lis le caractère de nouvelle ligne (0 est aussi un angle) - garde-le entre 0 et 180 avec
constrain() - déplace le bras et affiche l’angle sous la forme
Angle: 45
Appuie sur Run, envoie 45 depuis le moniteur série, puis appuie sur Check.
Essayez vous-même
#include <Servo.h>
Servo arm;
void setup() {
arm.attach(9);
arm.write(90);
Serial.begin(9600);
}
void loop() {
// lorsqu’un nombre arrive : le lire, puis lire le caractère de fin de ligne pour l’écarter,
// le maintenir entre 0 et 180, déplacer le bras et afficher le nombre
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Sorties
2Couleurs
Allumer une LED RGBMélanger les couleurs de la lumièreCycle des couleurs de l’arc-en-cielCouleurs intermédiaires5Mouvement
Déplacer un bras servoBalayer avec un servoServo et boutonAngle du servo via le port sérieJauge lumineuse à servoEntraînez-vous par vous-même : Playground Arduino