Archives

Arduino et moteurs pas à pas : Découverte de la bibliothèque AccelStepper

.

Dans ce tutoriel, nous présentons comment contrôler un moteur pas à pas à l’aide des drivers TB6600, DM542 ou DM860, en association avec une carte Arduino, en mettant en avant quelques fonctions spécifiques de la librairie AccelStepper. Grâce à cette dernière, notre code permet à l’utilisateur d’ajuster la vitesse du moteur via un potentiomètre, de démarrer ou arrêter le moteur via des boutons, et d’obtenir des retours visuels grâce à deux LEDs, illustrant l’état de fonctionnement du moteur et sa phase d’accélération.

Découverte et utilité de la librairie AccelStepper :

La librairie AccelStepper dépasse la simple commande d’un moteur pas à pas. Elle propose une gamme étendue de fonctionnalités, mais ce tutoriel n’en aborde certaines que superficiellement. Par exemple, cette librairie autorise un contrôle précis de l’accélération, elle gère minutieusement les mouvements et elle est compatible avec de nombreux pilotes de moteurs. Nous démontrons dans ce tutoriel comment utiliser AccelStepper pour simplifier et enrichir le pilotage d’un moteur pas à pas, en modifiant sa vitesse selon la position d’un potentiomètre ou en lançant une série de mouvements avec une seule commande.

Pour aller plus loin dans la découverte de cette librairie et explorer ses nombreuses autres fonctionnalités, nous vous recommandons vivement de consulter notre chaîne YouTube. Vous y trouverez une multitude de tutoriels et d’applications diverses centrées sur la librairie AccelStepper, vous offrant une compréhension approfondie et des idées pour vos futurs projets.

Bonus : Sur cette page, vous avez également la possibilité de télécharger directement le code présenté dans ce tutoriel. N’hésitez pas à le récupérer pour vous familiariser avec sa structure et ses commandes.

Ces fonctions sont les principales méthodes de la bibliothèque AccelStepper utilisées dans notre code pour contrôler le moteur pas à pas.

  • AccelStepper::DRIVER: Il s’agit d’un mode de fonctionnement pour le pilote du moteur pas à pas. Cela indique à la bibliothèque qu’on utilise un pilote externe (comme le TB6600) pour contrôler le moteur, et qu’on ne fait que lui fournir des signaux de step et de direction.

  • stepper(AccelStepper::DRIVER, pinPULS, pinDIR) : Ceci est le constructeur de la classe AccelStepper qui initialise un nouvel objet pour contrôler un moteur pas à pas. Ici, on lui indique le mode de fonctionnement et les pins pour les signaux de step et de direction.

  • stepper.setMaxSpeed(speed) : Cette fonction définit la vitesse maximale à laquelle le moteur peut tourner.
  • stepper.setAcceleration(50) : Cette fonction définit la valeur d’accélération pour le moteur.
  • stepper.moveTo(stepper.currentPosition() + 1000000) : Cette fonction demande au moteur de se déplacer vers une position donnée. Ici, il est demandé au moteur de se déplacer d’un grand nombre de pas depuis sa position actuelle.
  • stepper.setCurrentPosition(0) : Cette fonction réinitialise la position actuelle du moteur à une valeur donnée, dans ce cas, zéro.
  • stepper.stop() : Cette fonction arrête immédiatement le moteur.
  • stepper.run() : Cette fonction doit être appelée régulièrement pour faire tourner le moteur. Elle prend en compte la vitesse, l’accélération, et la position cible pour déterminer les étapes à effectuer.

 

Facebook Twitter Youtube

Grabcad Thingiverse Cults  

Arduino Nano 33 ble sense : Detection des couleurs avec le capteur APDS9960

Arduino Nano 33 ble sense : Detection des couleurs avec le capteur APDS9960

Découvrez comment utiliser le capteur APDS9960 avec Arduino pour calculer la couleur dominante et afficher à la fois le nom de la couleur et la valeur numérique correspondante. Le code est détaillé étape par étape, avec des explications sur les fonctions utilisées pour la détection de la couleur.

Voici la vidéo :

✔️ Descriptif du code 1 : Utilisation du capteur APDS9960 pour la détection de la couleur avec Arduino

Le programme commence par inclure la bibliothèque Arduino_APDS9960.

Ensuite, dans la fonction setup(), la communication série est initialisée à une vitesse de 9600 bauds. Le programme attend ensuite que la communication série soit établie. Ensuite, le capteur APDS9960 est initialisé. Si l’initialisation échoue, un message d’erreur est affiché.

Dans la fonction loop(), les valeurs de couleur détectées sont affichées sur le port série en utilisant la fonction Serial.print(). Ce code est conçu pour être utilisé avec le traceur de courbes de l’IDE Arduino 2.0.3,qui permet d’afficher les données sous forme de graphique en temps réel.

Le traceur de courbes de l’IDE Arduino 2.0.3 s’attend à recevoir des données sous forme de texte structuré.Dans ce code, les valeurs de couleur sont affichées en premier la valeur bleue, puis une virgule, puis la valeur rouge, suivie d’une autre virgule, puis la valeur verte, et enfin un saut de ligne pour passer à la ligne suivante. Cette séquence de caractères est importante car le traceur de courbes est configuré pour reconnaître cette structure et afficher les données correctement sous forme de courbe.

✔️ Descriptif du code 2 : Recherche de la couleur dominante avec le capteur APDS9960

Le programme commence par inclure la bibliothèque « Arduino_APDS9960.h » qui contient les fonctions pour communiquer avec le capteur de couleur.

Le setup est identique au premier code .

Dans la fonction « loop », le programme entre dans une boucle qui attend jusqu’à ce qu’une mesure de couleur soit disponible en utilisant « while (!APDS.colorAvailable()) ». Lorsqu’une mesure est disponible, les valeurs de rouge, vert et bleu sont lues à partir du capteur en utilisant « APDS.readColor(r, g, b) » et stockées dans les variables correspondantes.

Ensuite, le programme détermine la couleur dominante en comparant les valeurs de rouge, vert et bleu. Si la valeur de rouge est la plus élevée, le programme affiche « Rouge » sur la console série en utilisant « Serial.println(« Rouge ») ». Si la valeur de vert est la plus élevée, le programme affiche « Vert ». Si la valeur de bleu est la plus élevée, le programme affiche « Bleu ». Si les trois valeurs sont égales, le programme affiche « Blanc ». Sinon, le programme affiche « Couleur mixte ».

✔️ Descriptif du code 3 : Calcule la couleur dominante et affiche à la fois le nom de la couleur dominante et la valeur numérique.

Dans la boucle principale (loop()), le programme attend qu’une mesure de couleur soit disponible en utilisant la fonction colorAvailable() du capteur APDS9960. Une fois qu’une mesure de couleur est disponible, les valeurs de rouge, vert et bleu sont stockées dans des variables respectives à l’aide de la fonction readColor(). Les valeurs de rouge, vert et bleu sont affichées sur la console série à l’aide de la fonction Serial.println().La valeur maximale parmi les valeurs de rouge, vert et bleu est trouvée à l’aide de la fonction max().Ensuite, la couleur dominante est déterminée en fonction de la valeur maximale. Si la valeur maximale est le rouge, « Rouge » est stocké comme couleur dominante, si c’est le vert, « Vert » est stocké et sinon, « Bleu » est stocké.

La couleur dominante est stockée dans une chaîne de caractères et affichée sur le moniteur série.

Facebook Twitter  Youtube

Grabcad Thingiverse Cults