Comment créer des mouvements de balayage avec l'Arduino

Vous pouvez créer des mouvements de balayage sur un servomoteur avec l'Arduino. A balayages de servomoteurs de 0 # 186- 186- 179 #, puis de nouveau, d'une manière semblable au mouvement d'une vieille horloge rotative.

Sommaire

L'esquisse de balayage

Tu as besoin:

  • Un Arduino Uno

  • Un servo

  • Fils de saut

Le câblage pour un servo est extrêmement simple, car il est livré avec une prise à trois broches soignée. Pour le connecter à votre Arduino, il suffit d'utiliser des fils de saut entre les broches Arduino et les prises de servo directement ou utiliser un ensemble de tête broches pour connecter la prise à votre maquette. Le servo dispose d'un ensemble de trois prises avec des fils reliés à eux, habituellement rouge, noir, et blanc.

image0.jpg

Tous les calculs et des lectures de déplacer le moteur sont effectués sur le circuit à l'intérieur du servo lui-même, donc tout ce qui est nécessaire est le pouvoir et un signal de l'Arduino. Rouge est connecté à 5V sur l'Arduino pour alimenter le moteur et le circuit intérieur de it- noir est connecté à GND à la masse du servo et blanc est relié à la broche 9 pour contrôler le mouvement de servos.

Les couleurs de ces fils peuvent varier, afin de vérifier toujours la fiche ou de toute la documentation disponible pour votre moteur spécifique. Autres couleurs communes sont de couleur rouge (5V), brun (GND), et jaune (signal).

image1.jpg

Remplissez le circuit tel que décrit et ouvrir l'esquisse de balayage en choisissant File-exemples-Servo-balayage. L'esquisse de balayage est comme suit:




// // Balayage par BARRAGAN // Cet exemple de code est dans le domaine public. # Include lt;Servo.h>Servo myservo- // créer objet asservi pour contrôler un servo // un maximum de huit objets d'asservissement peut être crééint pos = 0- // variable pour stocker la configuration servo positionvoid () {de myservo.joindre(9) - // attache le servo sur la broche 9 à l'objet de servo} void loop de () {pour(pos = 0- pos lt; 180- pos = + 1) // va de 0 degrés à 180 degrés {// pas de 1 degreemyservo.écrire(POS) - // dire servo pour aller à la position de // 'pos «variableretard(15) - // attend 15ms pour le servo d'atteindre la position} //pour(pos = 180- pos> = 1- possession = 1) // va de 180 degrés à 0 degrés {myservo.écrire(POS) - // dire servo pour aller à la position de // 'pos «variableretard(15) - // attend 15ms pour le servo d'atteindre la position //}}

Après avoir trouvé le croquis, appuyez sur le bouton de compilation pour vérifier le code. Le compilateur devrait, comme toujours, mettre en évidence les erreurs grammaticales en rouge dans la zone message quand ils sont découverts.

Si l'esquisse compile correctement, cliquez sur Télécharger pour télécharger l'esquisse à votre conseil. Lorsque l'esquisse a fini le téléchargement, votre moteur doit commencer à tourner avant et en arrière de 180 degress, faisant une danse sur la table.

Si rien ne se passe, vous devriez vérifier votre câblage:

  • Assurez-vous que vous utilisez la broche 9 pour les données (blanc / jaune) en ligne.

  • Vérifiez que vous avez les autres fils d'asservissement connectés aux broches correctes.

La répartition de balayage de croquis

Au début de cette esquisse, une bibliothèque est inclus. Ceci est la bibliothèque d'asservissement et vous aidera à obtenir beaucoup de votre servo avec très peu de code complexe.

#comprendre lt;Servo.h>

La ligne suivante fait un objet d'asservissement. La bibliothèque sait comment utiliser servos, mais a besoin de vous donner à chacun un nom afin qu'il puisse parler à chaque servo. Dans ce cas, le nouvel objet est appelé Servo myservo.

L'utilisation d'un nom est similaire à nommer votre variables- qui est, ils peuvent être un nom aussi longtemps qu'ils sont cohérents dans votre code et vous ne pas utiliser des noms qui sont réservés par le langage Arduino, comme int ou retard.

Servo myservo- // créer un objet d'asservissement pour contrôler un servo // un maximum de huit objets d'asservissement peut être créé

La dernière ligne dans les déclarations est une variable pour stocker la position de l'asservissement.

int pos = 0- // variable pour stocker la position d'asservissement

Dans la configuration, le seul élément à régler est le nombre de broches de la broche Arduino qui communique avec le servo. Dans ce cas, vous utilisez la broche 9, mais il pourrait y avoir de broches PWM.

void setup () {myservo.joindre(9) - // attache le servo sur la broche 9 à l'objet de servo}

La boucle exécute deux actions simples, et les deux sont pour boucles. La première pour la boucle augmente progressivement pos variable de 0 à 180. En raison de la bibliothèque, vous pouvez écrire des valeurs en degrés plutôt que la normale 0 à 255 utilisé pour le contrôle PWM. A chaque boucle, la valeur est augmentée de 1 et envoyé à l'asservissement en utilisant une fonction spécifique à la bibliothèque d'asservissement, .écrire().

Après la boucle à jour la valeur, un court délai de 15 millisecondes survient alors que le servo atteigne son nouvel emplacement. Contrairement à d'autres sorties, après un servo est mis à jour, il commence à se déplacer vers sa nouvelle position au lieu de devoir être constamment dit.

void loop () {pour(pos = 0- pos lt; 180- pos = + 1) // va de 0 degrés à 180 degrés {// pas de 1 degreemyservo.écrire(POS) - // dire servo pour aller à la position de // 'pos «variableretard(15) - // attend 15ms pour le servo d'atteindre la position} //

Le second pour boucle fait de même dans le sens inverse, en revenant à la servo sa position de départ.

 pour(pos = 180- pos> = 1- possession = 1) // va de 180 degrés à 0 degrés {myservo.écrire(POS) - // dire servo pour aller à la position de // 'pos «variableretard(15) - // attend 15ms pour le servo d'atteindre la position //}}

Ceci est par exemple le servo le plus simple, et il est une bonne idée de tester si le servo fonctionne correctement.


» » » » Comment créer des mouvements de balayage avec l'Arduino