Matériel

Comment programmer un servomoteur avec Arduino pour créer des projets complexes? Guide étape par étape

Programmer un servomoteur avec Arduino n’est pas une tâche difficile, si vous lisez attentivement tous les paragraphes de cet article. Nous allons vous montrer comment créer des projets complexes sans erreur.

Vous aurez besoin de savoir ce qu’est un servomoteur et à quoi servent ces composants matériels . Nous expliquerons également les utilisations de ces appareils et comment programmer un servomoteur avec Arduino .

Mais ce n’est pas tout ce que vous verrez, vous pouvez également trouver les meilleurs projets Arduino avec un servomoteur que vous pouvez faire vous-même pour pratiquer rapidement et facilement. Check-out.

Qu’est-ce qu’un servomoteur et à quoi servent ces composants de développement matériel?

Un servomoteur est un type spécial de moteur qui se caractérise par des mouvements précis à un certain couple. Sa fonction principale est de maintenir la position de l’axe dans une action robotique.

Il est composé d’un boîtier en plastique qui contient une carte Arduino , à laquelle s’ajoutent un moteur de type DC, un potentiomètre et un système d’engrenage . Vous pouvez trouver 2 types de servomoteurs. Il y a ceux à rotation limitée, qui peuvent tourner jusqu’à 180 °, et les servomoteurs à rotation complète ou continue. Ceux-ci peuvent avoir une rotation complète de 360 ​​°.

Utilisations d’un servomoteur Dans quels types d’appareils pouvons-nous les utiliser?

L’ utilisation d’un servomoteur est très large en raison de la fonction principale qu’il offre en robotique, qui est de faire tourner une pièce dans le même axe.

Par conséquent, il est courant de trouver un servomoteur dans:

  • Voitures radiocommandées, dans différents types de jouets et dans des robots pour enfants.
  • Radars incorporés dans différents objets.
  • Dans l’ automatisation des processus de fabrication . Ces robots interviennent notamment dans les processus d’assemblage, de construction automobile et d’autres types de fabrication automatique au niveau industriel.
  • Les servomoteurs peuvent également être trouvés dans les ascenseurs .
  • Alors qu’en informatique, il est courant de trouver un servomoteur dans le plateau des lecteurs de disques DVD .

Apprenez étape par étape à programmer un servomoteur avec Arduino pour vos projets à partir de zéro

Si vous souhaitez programmer un servomoteur avec Arduino, vous devrez suivre les étapes que nous vous montrerons ci-dessous:

Connectez tous les composants physiques

La première étape à faire est d’ assembler tous les composants sur la carte Arduino . Pour ce faire, vous devrez connecter trois types de câbles à la maquette, l’un sera celui qui ira à la terre, l’autre à l’alimentation 5 volts et le dernier à la broche PWM. Une fois que vous avez connecté ce circuit, vous devez incorporer le servomoteur et si vous le souhaitez, vous pouvez ajouter des résistances.

Programmer la rotation du moteur

Ce que vous devrez faire maintenant, c’est entrer dans l’ IDE Arduino et écrire les commandes suivantes afin que le moteur puisse tourner selon trois types d’angles.

Les codes sont:

#include <Servo.h>

Servomoteur servo;

void setup () {

commencer (9600);

attacher (9);

}

boucle void () {

Vous devez maintenant configurer le déplacement en position 0º, pour cela vous devrez entrer:

écrire (0);

retard (1000);

Vous devrez faire de même avec la position 90 ° et avec la position 180 °:

écrire (90);

retard (1000);

écrire (180);

retard (1000);

}

Tournez le moteur degré par degré

Dans cette étape, vous devrez incorporer des mouvements pour que le servomoteur puisse balayer tous les degrés de 0 à 180 .

Pour cela, vous devrez saisir:

#include <Servo.h>

Servomoteur servo;

void setup () {

Ensuite, vous devrez démarrer le moniteur série:

commencer (9600);

Ensuite, vous allez devoir programmer le servomoteur pour qu’il fonctionne depuis le début avec la broche 9:

attacher (9);

écrire (0);

}

Créer des boucles

À ce stade, vous allez devoir générer 2 boucles, une négative et une dans un sens positif:

boucle void () {

pour (int i = 0; i <= 180; i ++)

{

Puis passez à l’angle approprié:

écrire (i);

retard (25);

}

«MISE À JOUR ✅ Voulez-vous utiliser Arduino pour programmer un servomoteur et l’utiliser dans vos projets? ⭐ ENTREZ ICI ⭐ et apprenez tout à partir de zéro!»

Vous devrez faire de même pour le sens négatif:

pour (int i = 179; i> 0; i--)

{

écrire (i);

retard (25);

}

}

Meilleurs projets Arduino avec servomoteur que vous pouvez bricoler

Si vous souhaitez vous entraîner à travailler avec un servomoteur sur une carte Arduino, vous devrez prendre en compte ces projets:

Poubelle avec détecteur de mouvement

Ce projet vous permettra d’ouvrir une poubelle grâce à un détecteur de mouvement. Vous aurez besoin d’une carte Micro Arduino , d’un capteur à ultrasons générique de type HC-SR04, d’un servomoteur et d’une poubelle.

Pour la programmation, vous devrez entrer ces codes:

#include <Servo.h>

Servo myservo;

const int servo_pin = 2;

const int trig_pin = 3;

const int echo_pin = 4;

const int inter_time = 200;

temps int = 0;

paramètre vide ()

{

En série. commencer (9600);

myservo. attacher (servo_pin, 500, 2400);

myservo. écrire (90);

pinMode (trig_pin, OUTPUT);

pinMode (echo_pin, INPUT);

retard (3000);

}

boucle vide ()

{

durée du flotteur, distance;

digitalWrite (trig_pin, HIGH);

delayMicrosecondes (1000);

digitalWrite (trig_pin, LOW);

durée = pulseIn (echo_pin, HIGH);

distance = (durée / 2) / 29;

En série. impression (distance);

En série. println ("cm");

time = time + inter_time;

délai (inter_time);

si (distance <10)

{

pour (int i = 1500; i> = 1100; i- = 25) {

writeMicrosecondes (i);

println ("2");

retard (100);

}

retard (1000);

pour (int i = 1100; i <= 1500; i + = 25) {

myservo. writeMicrosecondes (i);

En série. println ("1");

retard (100);

}

}

}

Bras de robot

Ce dont vous aurez besoin pour construire ce bras robotique une carte Arduino UNO , 3 Servo SparkFun, 1 Module d’un Joystick à deux axes à partir d’une console PlayStation2 et une alimentation. Vous aurez également besoin de câbles, d’un dissipateur de chaleur, d’un condensateur céramique et d’un condensateur électrolytique.

Les codes avec lesquels vous devrez travailler sont:

#include "AnalogReader.h"

#include <Arduino.h>

AnalogReader :: AnalogReader (const int pin): m_pin (pin) {}

/ **

Lire la valeur analogique de la carte ADC

* /

int AnalogReader :: read ()

{

return analogRead (m_pin);

}

#include "Button.h"

#include <Arduino.h>

Button :: Button (const int pin): m_pin (pin)

{

}

Bouton void :: init ()

{

pinMode (m_pin, INPUT);

Pour définir l’état de départ, vous devrez écrire:

m_lastButtonState = lire ();

}

// lire l'état du bouton.

Bouton booléen :: read ()

{

return digitalRead (m_pin);

}

Si le bouton n’est pas enfoncé, il retournera à LOW (0), mais s’il est activé, il fournira la valeur HIGH (1).

Pour cela, vous devez saisir:

Bouton booléen :: onChange ()

{

// lire l'état du bouton. «1» est poussé, «0» n'est pas poussé.

lecture booléenne = lecture ();

// Si le commutateur a changé, à cause du bruit ou en appuyant sur:

if (lecture! = m_lastButtonState) {

// réinitialise le chronomètre anti-rebond

m_lastDebounceTime = millis ();

m_pressFlag = 1;

}

if ((millis () - m_lastDebounceTime)> m_debounceDelay) {

// quelle que soit la lecture, elle est là depuis plus longtemps

// que le délai anti-rebond, alors prenez-le comme état actuel réel:

// si l'état du bouton a changé:

if (m_pressFlag) {// lecture! = m_lastButtonState) {

// mettre à jour l'état du bouton

m_pressFlag = 0;

// sauvegarde la lecture. La prochaine fois dans la boucle,

m_lastButtonState = lecture;

return 1;

}

}

m_lastButtonState = lecture;

return 0;

}

Bouton booléen :: onPress ()

{

// lire l'état du bouton. «1» est poussé, «0» n'est pas poussé.

lecture booléenne = lecture ();

// Si le commutateur a changé, à cause du bruit ou en appuyant sur:

if (lecture == HIGH && m_lastButtonState == LOW) {

// réinitialise le chronomètre anti-rebond

m_lastDebounceTime = millis ();

m_pressFlag = 1;

}

if ((millis () - m_lastDebounceTime)> m_debounceDelay) {

if (m_pressFlag) {

Après cela, nous devrons le faire à travers la boucle:

m_pressFlag = 0;

m_lastButtonState = lecture;

return 1;

}

}

m_lastButtonState = lecture;

return 0;

}

Bouton booléen :: onRelease ()

{

// lire l'état du bouton. «1» est poussé, «0» n'est pas poussé.

lecture booléenne = lecture ();

// Si le commutateur a changé, à cause du bruit ou en appuyant sur:

if (lecture == LOW && m_lastButtonState == HIGH) {

// réinitialise le chronomètre anti-rebond

m_lastDebounceTime = millis ();

m_pressFlag = 1;

}

if ((millis () - m_lastDebounceTime)> m_debounceDelay) {

// quelle que soit la lecture, elle est là depuis plus longtemps

// que le délai anti-rebond, alors prenez-le comme état actuel réel:

// si l'état du bouton a changé:

if (m_pressFlag) {// lecture == LOW && m_lastButtonState == HIGH) {

// sauvegarde la lecture. La prochaine fois dans la boucle,

m_lastButtonState = lecture;

m_pressFlag = 0;

return 1;

}

}

m_lastButtonState = lecture;

return 0;

}

#ifndef _BUTTON_H_

#define _BUTTON_H_

// classe de bouton:

Bouton de classe {

Publique:

Bouton (const int pin);

// initialiser l'instance de bouton

void init ();

// Lire l'état du bouton - sans anti-rebond

booléen read ();

// retourne True sur les deux événements de bouton, appuyez ou relâchez

booléen onChange ();

// retourne True uniquement sur Press

booléen onPress ();

// retourne True uniquement à la sortie

booléen onRelease ();

privé:

const int m_pin;

bool m_lastButtonState; // variables d'état

long m_lastDebounceTime = 0;

const int m_debounceDelay = 50;

booléen m_pressFlag = 0;

};

#endif // _ BUTTON_H_

Insecte

Pour ce projet, vous aurez besoin d’ une carte Arduino 3,3 V 8 MHz, d’un servomoteur, d’un interrupteur, d’une batterie au lithium de 1000 mAh, de câbles, de fils et de colle. L’assemblage doit être fait en tenant tous les éléments aussi fermement que possible au moyen des fils et de la colle.

Ensuite, vous devez entrer ces codes dans l’IDE:

#include <Servo.h>

int FRONT = 4;

int BACK = 5;

Servo avantLegs, backLegs;

paramètre vide () {

pinMode (13, SORTIE);

attacher (AVANT);

attacher (RETOUR);

écrire (90);

écrire (90);

retard (5000);

} boucle vide () {

digitalWrite (13, HAUT);

écrire (70);

écrire (70);

digitalWrite (13, FAIBLE);

retard (200);

écrire (110);

retard (200);

écrire (110);

}

Si vous avez des questions, laissez-les dans les commentaires, nous vous répondrons dans les plus brefs délais, et cela sera également d’une grande aide pour plus de membres de la communauté. Je vous remercie!

Articles Similaires

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba