Archives

Contrôle de Moteur Pas-à-Pas par Lecture de Roue Codeuse avec Arduino

.

Ce tutoriel se concentre sur l’utilisation avancée de la bibliothèque AccelStepper pour le contrôle d’un moteur pas-à-pas en utilisant Arduino, enrichi par l’intégration de deux roues codeuses BCD pour un réglage fin du nombre de pas. À travers ce projet, vous apprendrez à configurer des entrées BCD pour saisir dynamiquement le nombre de rotations souhaitées, tout en bénéficiant d’une interface utilisateur simplifiée grâce à un bouton poussoir. Le système gère avec précision l’accélération et la vitesse du moteur, tout en évitant les déclenchements intempestifs via un mécanisme anti-rebond. Cette configuration est parfaitement adaptée aux projets nécessitant un contrôle précis de mouvement, tels que les équipements d’automatisation ou les installations artistiques interactives. Suivez ce guide pour assembler votre circuit, programmer votre Arduino, et explorer le potentiel des moteurs pas-à-pas contrôlés numériquement.

Pour tout problème de téléchargement ou pour nous suivre sur les réseaux sociaux voici les plateformes  sur lesquelles nous éditons.
Cliquez sur celles qui vous intéressent .

Facebook Twitter Youtube 

Grabcad Thingiverse Cults  

Retour : Nos tuto en vidéo

 

stepper.setMaxSpeed : Clé du Contrôle de Vitesse dans AccelStepper pour moteur pas à pas

.

Dans cette vidéo, nous explorons des fonctionnalités avancées de la bibliothèque AccelStepper pour Arduino, en mettant l’accent sur la fonction stepper.setMaxSpeed(). Cette fonction est essentielle pour contrôler avec précision la vitesse d’un moteur pas-à-pas. Nous expliquons comment elle permet d’ajuster dynamiquement la vitesse maximale du moteur, offrant ainsi un contrôle fin et réactif, adapté à une multitude d’applications.

Sommaire : 

.

Vous apprendrez que, bien que setMaxSpeed() définisse la vitesse cible, la vitesse réelle peut être influencée par d’autres facteurs, tels que la charge du moteur et la tension d’alimentation. De plus, nous explorerons l’interaction entre setMaxSpeed() et setAcceleration(), montrant comment ces deux fonctions travaillent de concert pour assurer un démarrage et un arrêt en douceur du moteur, évitant ainsi les saccades et garantissant un mouvement fluide.

Ce contrôle précis de la vitesse est particulièrement crucial dans des domaines tels que la robotique de précision, les imprimantes 3D et les équipements automatisés, où la régularité du mouvement influence directement la qualité du résultat.

En lien avec le code fourni, nous démontrerons comment la vitesse du moteur est ajustée en temps réel via un potentiomètre, offrant un contrôle interactif et adaptable, crucial pour des applications nécessitant une réponse rapide et précise. Cette vidéo est une ressource pour tous ceux qui cherchent à comprendre et à maîtriser le contrôle des moteurs pas-à-pas dans leurs projets de robotique et d’automatisation.

.
Quels détails techniques caractérisent la méthode stepper.setMaxSpeed dans Arduino ?

La méthode stepper.setMaxSpeed dans Arduino définit la vitesse maximale du moteur pas-à-pas en pas par seconde. Les développeurs l’utilisent pour un contrôle précis de la vitesse, crucial dans des applications comme les imprimantes 3D. La vitesse doit correspondre aux capacités du moteur. Une vitesse trop élevée risque de provoquer des sauts de pas. Le pilote de moteur influe aussi sur la vitesse maximale. On appelle généralement cette méthode en début de programme ou avant un mouvement spécifique. Elle fonctionne bien avec stepper.setAcceleration et stepper.moveTo.

↩️

.
Pouvez-vous résumer comment intégrer stepper.setMaxSpeed dans un programme Arduino pour contrôler un moteur pas-à-pas ?

Incluez la bibliothèque AccelStepper. Initialisez ensuite le moteur avec AccelStepper stepper. Définissez la vitesse maximale avec stepper.setMaxSpeed(valeur). Utilisez stepper.run() pour activer le mouvement. Adaptez la vitesse selon le projet.

↩️

.

Quel paramètre faut-il fournir à stepper.setMaxSpeed et comment est-il mesuré ?

Pour la méthode stepper.setMaxSpeed, le paramètre nécessaire est la vitesse maximale du moteur. Cette vitesse est mesurée en ‘pas par seconde’ (pps), une unité indiquant combien de pas individuels le moteur peut faire en une seconde. La valeur doit être un nombre positif, adaptée aux spécifications techniques du moteur pour assurer un fonctionnement optimal et sécurisé.

↩️

.

.

Pour tout problème de téléchargement ou pour nous suivre sur les réseaux sociaux voici les plateformes  sur lesquelles nous éditons.
Cliquez sur celles qui vous intéressent .

Facebook Twitter Youtube 

Grabcad Thingiverse Cults  

Retour au menu tuto
Démarrage sûr et contrôle d’angle avec AccelStepper pour moteur pas à pas

.

Découvrez comment piloter un moteur pas à pas de manière précise et flexible avec notre code basé sur la bibliothèque AccelStepper. Conçu pour éviter les déclenchements intempestifs grâce à une gestion intelligente des rebonds, ce code vous offre une maîtrise totale sur la rotation de votre moteur.

Sommaire :

 

Rotation sur mesure :

Avec notre code, vous avez le contrôle total sur la rotation de votre moteur. La variable valeur_de_la_rotation est votre outil principal pour définir l’angle de rotation souhaité. Vous envisagez une double rotation complète ? Réglez-la à 720 degrés. Vous avez besoin d’une précision chirurgicale pour un projet spécifique ? Aucun problème, ajustez-la à 10 degrés ou même moins. Cette flexibilité vous permet d’adapter le comportement du moteur à une multitude de scénarios, qu’il s’agisse d’une application industrielle nécessitant des rotations répétitives ou d’un projet artistique où chaque degré compte.

Adaptabilité du moteur :

Grâce à l’utilisation de la bibliothèque AccelStepper, ce code offre une flexibilité remarquable pour s’adapter à différents types de moteurs pas à pas et leurs drivers. En combinant les variables DEGRES_PAR_PAS et MICRO_PAS, il est possible d’ajuster le comportement du moteur avec précision. Par exemple, si vous utilisez un moteur conçu pour 400 pas par tour, ce qui équivaut à 0.9 degrés par pas, il suffit d’ajuster la variable DEGRES_PAR_PAS à 0.9. De même, pour un moteur standard à 200 pas par tour, qui équivaut à 1.8 degrés par pas, modifiez cette variable à 1.8. La variable MICRO_PAS joue également un rôle crucial en permettant de définir le niveau de micro-stepping de votre driver. Cela contribue à une plus grande précision et flexibilité dans le contrôle de votre moteur pas à pas, rendant l’utilisation d’AccelStepper essentielle pour un démarrage sûr et un contrôle d’angle précis

.

séparateur-redohm-001

 

AccelStepper stepper(AccelStepper::DRIVER, impulsion, direction) :

Cette ligne de code crée une instance de l’objet AccelStepper, qui est utilisée pour contrôler le moteur pas à pas.

  • AccelStepper : Il s’agit du nom de la classe fournie par la bibliothèque AccelStepper. Cette classe offre diverses fonctionnalités pour contrôler les moteurs pas à pas, comme la gestion de l’accélération et de la vitesse.
  • stepper : C’est le nom de l’objet que vous créez. Cet objet représente votre moteur pas à pas et vous permettra de le contrôler en appelant différentes méthodes sur cet objet.
  • AccelStepper::DRIVER : Ce paramètre indique que vous utilisez le mode « DRIVER » pour AccelStepper. Ce mode est utilisé lorsque vous contrôlez un moteur pas à pas avec un pilote externe, ce qui est commun pour les configurations de moteurs pas à pas plus complexes. Dans ce mode, vous ne fournissez que les pins d’impulsion et de direction à l’objet AccelStepper.
  • impulsion : C’est le pin Arduino connecté à la broche d’impulsion (step) du pilote de votre moteur pas à pas. Chaque impulsion envoyée sur ce pin fera avancer le moteur d’un pas.
  • direction : C’est le pin Arduino connecté à la broche de direction du pilote de votre moteur pas à pas. Le signal envoyé sur ce pin détermine la direction dans laquelle le moteur tournera.

↩️

stepper.setCurrentPosition() :

Est une fonction importante pour le contrôle précis des moteurs pas à pas, permettant aux développeurs de définir ou de redéfinir le point de référence à partir duquel les mouvements du moteur sont calculés. Cette capacité de réinitialisation est particulièrement utile dans les applications automatisées et robotiques où la position exacte et la répétabilité des mouvements sont cruciales.

Réinitialisation de la Position du Compteur de Pas :

  • Lorsque vous exécutez stepper.setCurrentPosition(0);, vous dites essentiellement à la bibliothèque AccelStepper de considérer la position actuelle du moteur comme la position « 0 » du compteur de pas.
  • Cela n’affecte pas physiquement la position du moteur, mais modifie la valeur de référence interne utilisée par le contrôleur pour suivre la position du moteur.

Considérations Techniques :

  • Précision : Crucial pour les applications où la position exacte du moteur doit être connue, comme dans les systèmes de positionnement ou les appareils de précision.
  • Implications de Réinitialisation : Après l’appel de cette méthode, toute commande de mouvement telle que moveTo() ou move() interprétera la position actuelle du moteur comme étant « 0 ». Tous les mouvements futurs seront donc relatifs à cette nouvelle position de référence.

↩️

stepper.setAcceleration() :

La méthode setAcceleration() de la bibliothèque AccelStepper est utilisée pour définir la valeur d’accélération du moteur pas à pas. L’accélération est la vitesse à laquelle le moteur change sa vitesse. Elle est exprimée en pas par seconde au carré (pas/s^2).

  • Paramètre : La fonction prend un seul argument, qui est la valeur d’accélération souhaitée. Dans l’exemple donné, 2000 signifie que l’accélération du moteur est réglée sur 2000 pas par seconde au carré.
  • Comportement : Lorsque cette fonction est appelée, elle ne fait pas bouger le moteur immédiatement. Elle définit simplement la manière dont le moteur accélère pour atteindre sa vitesse maximale (définie par setMaxSpeed()) et comment il décélère pour s’arrêter. Une accélération plus élevée signifie que le moteur atteindra sa vitesse maximale plus rapidement.
  • Utilisation : Cette fonction est généralement appelée dans la section setup() du code Arduino pour initialiser l’accélération du moteur. Elle est particulièrement utile pour éviter les à-coups ou les vibrations qui peuvent survenir si le moteur démarre ou s’arrête brusquement.

Exemple d’utilisation :

La fonction stepper.setAcceleration(2000); est utilisée pour définir comment le moteur pas à pas accélère et décélère. Une accélération appropriée permet d’éviter les vibrations et d’assurer un mouvement fluide du moteur. Dans cet exemple, l’accélération est réglée sur 2000 pas par seconde au carré, ce qui signifie que le moteur augmentera ou diminuera sa vitesse à ce taux jusqu’à ce qu’il atteigne sa vitesse maximale ou s’arrête.

↩️

.

Pour tout problème de téléchargement ou pour nous suivre sur les réseaux sociaux voici les plateformes  sur lesquelles nous éditons.
Cliquez sur celles qui vous intéressent .

Facebook Twitter Youtube 

Grabcad Thingiverse Cults  

Retour au menu tuto
Guide Pratique pour une Accélération Maîtrisée d’un Moteur Pas-à-Pas avec Arduino

.

Ce code est destiné à contrôler un moteur pas à pas avec un Arduino, en utilisant un driver TB6600. Le code contrôle trois aspects du moteur : l’activation, la direction et la vitesse.

Le contrôle du moteur est réalisé via les broches ENA (Enable), PULS (Pulse) et DIR (Direction). ENA sert à activer ou désactiver le moteur, PULS contrôle le mouvement du moteur en générant des impulsions, et DIR contrôle la direction du mouvement.

L’état d’activation du moteur est contrôlé par l’état d’un bouton physique connecté à la broche Bouton_depart_cycle. Lorsque ce bouton est relâché, le moteur est activé et commence à se déplacer.

Le code utilise aussi une rampe d’accélération, qui est une façon d’augmenter progressivement la vitesse du moteur au démarrage. Lorsqu’elle est active, la rampe d’accélération modifie le délai entre les impulsions envoyées à la broche PULS, ce qui fait accélérer le moteur progressivement. L’activation de la rampe d’accélération est contrôlée par un autre bouton connecté à la broche Bouton_choix_rampe. L’état de la rampe d’accélération est aussi indiqué par une LED

Information complementaire :

Dans ce code, nous utilisons une broche dédiée (oscilloscope) pour surveiller et analyser les impulsions du moteur dans le temps. La ligne digitalWrite(oscilloscope, !digitalRead(oscilloscope)); est responsable de cette opération.

Chaque fois que nous envoyons une impulsion au moteur pour faire avancer d’un pas (qui est gérée par la broche PULS_PIN), nous inversons également l’état de la broche de l’oscilloscope. Cela signifie que l’état de la broche oscilloscope est une réplique du signal de la broche PULS_PIN, elle change donc chaque fois que nous envoyons une impulsion au moteur.

En connectant cette broche à un oscilloscope, nous pouvons visualiser la fréquence et le timing des impulsions du moteur. C’est particulièrement utile lorsque nous utilisons une rampe d’accélération pour contrôler le moteur, car nous pouvons voir comment la vitesse du moteur change en fonction du temps.

L’oscilloscope nous donne une image visuelle de ces variations, ce qui nous permet d’analyser en détail comment notre moteur réagit aux commandes que nous lui donnons. C’est un outil précieux pour le débogage et l’optimisation de notre contrôle moteur.

Facebook Twitter  Youtube

Grabcad Thingiverse Cults  

Coffret de simulation pour moteur pas-à-pas

.

Nous sommes ravis de vous présenter notre Coffret de Simulation pour Moteur Pas-à-Pas. Ce dispositif est conçu pour faciliter vos tests et expérimentations avec des moteurs pas-à-pas.

Au cœur de ce système, vous trouverez un contrôleur angulaire AS 5600, conçu pour garantir un contrôle précis et fiable de la position du moteur. Il comprend également un moteur pas-à-pas pour fournir des mouvements fluides et réguliers dans vos applications.

Le coffret dispose également de deux potentiomètres, tous deux entièrement personnalisables pour s’adapter à vos besoins spécifiques. De plus, vous trouverez quatre boutons poussoirs, également paramétrables, vous offrant une flexibilité maximale pour ajuster et contrôler le comportement du moteur.

Quatre LED paramétrables sont également présentes pour vous offrir une indication visuelle claire et précise de l’état du système.

Le cerveau de ce coffret de simulation est une carte Arduino Uno. Cette plateforme de développement open-source est extrêmement populaire pour sa facilité d’utilisation, sa flexibilité et sa vaste communauté de support. Enfin, le moteur pas-à-pas est piloté par un driver TB6600

Ce coffret a été réalisé grâce à l’impression 3D et fait partie de nos projets open source. Pour faciliter votre travail, nous mettons à votre disposition les fichiers STL ainsi que les schémas de câblage. Vous pouvez donc les modifier et les adapter à vos besoins spécifiques.

En somme, notre Coffret de Simulation pour Moteur Pas-à-Pas représente un outil idéal pour ceux qui cherchent à explorer les capacités des moteurs pas-à-pas de manière contrôlée et efficace.

 

Information complémentaire sur le code.

Serial.begin(115200);
 

Un taux de bauds plus élevé comme 115200 permet non seulement de transmettre des données plus rapidement, mais aussi de rendre la « main » (ou le contrôle) au programme principal plus rapidement après la transmission des données. Cela est dû au fait qu’une vitesse de transmission plus élevée réduit le temps nécessaire pour envoyer chaque caractère de données.

En conséquence, votre programme principal sera en mesure de continuer à exécuter d’autres tâches sans attendre trop longtemps que les données soient transmises via la communication série. Cela peut améliorer l’efficacité et la réactivité de votre programme, surtout s’il doit gérer plusieurs tâches en parallèle ou répondre rapidement à certaines entrées ou conditions.

A savoir:

Bien que des taux de baud plus élevés peuvent théoriquement transmettre des données plus rapidement, ils peuvent également être plus susceptibles d’erreurs en raison du bruit électrique ou d’autres problèmes de signal. 115200 est souvent un bon compromis entre vitesse et fiabilité.

Facebook Twitter  Youtube

Grabcad Thingiverse Cults  

Conception d’un Contrôleur Avancé pour Moteur Pas à Pas avec Arduino et TB6600

Le projet consiste en la conception d’un driver intelligent pour moteur pas à pas en utilisant une carte Arduino couplée à un TB6600. L’objectif de ce projet est de développer un système qui peut non seulement contrôler un moteur pas à pas, mais aussi offrir un ensemble de fonctionnalités avancées pour améliorer l’efficacité et la précision du moteur.

  1. Gestion de DIR et ENA : Le système devra être capable de contrôler les broches DIR (direction) et ENA (enable) du TB6600. Cela permettra de contrôler la direction de rotation du moteur ainsi que d’activer ou de désactiver le driver du moteur.

  2. Gestion de la rampe d’accélération et de décélération : Afin d’éviter des contraintes mécaniques excessives sur le moteur et l’équipement associé, le système devra être capable de gérer la rampe d’accélération et de décélération du moteur. Cela signifie que le moteur devra être capable de démarrer et de s’arrêter progressivement, plutôt que de façon abrupte.

  3. La rétroaction, ou feedback : Un système de rétroaction sera nécessaire pour s’assurer que le moteur fonctionne comme prévu. Cela pourrait impliquer l’utilisation d’un capteur de position pour fournir un retour d’information sur la position réelle du moteur par rapport à la position désirée.

  4. La régulation de vitesse : Le système devra être capable de réguler la vitesse du moteur. Cela peut être nécessaire pour s’assurer que le moteur fonctionne à une vitesse appropriée pour la tâche qu’il est en train d’effectuer.

  5. Mode apprentissage : Un mode d’apprentissage sera intégré pour permettre au système d’apprendre et d’enregistrer une série de mouvements du moteur. Cela pourrait être utile pour automatiser des tâches répétitives.

Ce cahier des charges fournit un aperçu général des principales fonctionnalités que devra posséder le driver intelligent pour moteur pas à pas. Il sera nécessaire de réaliser des recherches et des tests supplémentaires pour définir plus précisément ces fonctionnalités et déterminer la meilleure façon de les implémenter.

Facebook Twitter  Youtube

Grabcad Thingiverse Cults  

Intégration du capteur angulaire AS5600 pour vos projets de moteur pas à pas.

Le capteur AS5600 est un capteur de position angulaire magnétique. Il est conçu pour mesurer avec précision l’angle de rotation d’un objet, tel qu’un moteur, un arbre ou une pièce mobile. Voici quelques utilisations courantes du capteur AS5600 :

  1. Contrôle de moteurs : Le capteur AS5600 est largement utilisé dans le contrôle des moteurs, notamment les moteurs pas à pas, pour mesurer précisément l’angle de rotation et contrôler le positionnement et la vitesse de manière précise.
  2. Robotique : Dans les applications robotiques, il permet de détecter l’orientation et la position des bras, articulations et pièces mobiles, assurant un contrôle efficace des mouvements pour des tâches précises.
  3. Électronique grand public : Utilisé dans les manettes de jeu, drones, caméras motorisées, robots jouets, il fournit des informations précises sur l’orientation et la position, améliorant le fonctionnement et l’ergonomie des appareils.
  4. Contrôle d’axe : Dans les machines CNC, imprimantes 3D, équipements de gravure, il mesure l’angle des axes pour un positionnement précis et une stabilité de position.
  5. Automatisation industrielle : Intégré aux machines, robots et équipements, il assure le contrôle précis de position et d’orientation, répondant aux exigences des applications industrielles.

En résumé, le capteur AS5600 joue un rôle essentiel dans différentes applications, allant de la robotique à l’électronique grand public en passant par l’automatisation industrielle. Les concepteurs et les ingénieurs apprécient sa précision, sa facilité d’utilisation et sa fiabilité, ce qui en fait un choix populaire. Il mesure avec précision l’angle de rotation et facilite le contrôle dans divers domaines d’application.

Dans cette vidéo, nous vous présentons l’utilisation du capteur AS5600 pour mesurer précisément l’angle de rotation d’un moteur pas à pas. Découvrez comment câbler le capteur et l’intégrer à votre projet Arduino. Nous vous montrons également comment réaliser des essais en manipulant l’aiguille d’un système d’indexage et obtenir le retour de la valeur d’angle sur le moniteur IDE. Un tutoriel détaillé du code est également inclus pour faciliter votre compréhension. Exploitez tout le potentiel du capteur AS5600 et améliorez vos projets de contrôle de positionnement avec précision.

Facebook Twitter  Youtube

Grabcad Thingiverse Cults  

    •  
Le code pour le TB6600 2/8, Contrôle de la vitesse

TB6600 2/8,Contrôle de la vitesse et de la direction d’un moteur pas-à-pas avec Arduino

Le code commence par définir les broches utilisées pour le contrôle du moteur, à savoir ENA_PIN (broche pour activer/désactiver le moteur), PULS_PIN (broche pour générer les impulsions) et DIR_PIN (broche pour définir la direction). Ensuite, les variables TEMPO (qui stocke la tempo en microsecondes), nouvelle_tempo (initialisée à 0), valeur_alpha_nouvelle_tempo (une chaîne de caractères qui stocke la nouvelle tempo saisie par l’utilisateur), et chaine_caractere (une chaîne de caractères qui stocke les données entrées sur le port série) sont définies.

Dans la fonction setup(), la communication série est initialisée avec une vitesse de transmission de 9600 bauds. Les broches sont configurées en sortie.

const int ENA_PIN = 8; Broche pour activer/désactiver le moteur
const int PULS_PIN = 9; Broche pour générer les impulsions
const int DIR_PIN = 10; Broche pour définir la direction

La fonction loop() est exécutée en boucle sans fin après le démarrage de l’Arduino. Si des données sont disponibles sur la communication série (Serial.available() supérieure à 0) ), la fonction Serial.readStringUntil lit une chaîne de caractères entrée sur le port série de l’Arduino et la stocke dans la variable chaine_caractere. Ensuite, la fonction indexOf() est utilisée pour rechercher les lettres ‘A’, ‘a’, ‘R’ et ‘r’ dans la chaîne de caractères.

Si la lettre ‘A’ ou ‘a’ est trouvée dans la chaîne de caractères (indexA != -1 || indexa != -1), cela signifie que l’utilisateur a saisi une commande de marche avant. La direction est alors définie en mode horaire (digitalWrite(DIR_PIN, HIGH)), et la valeur de la nouvelle tempo est extraite de la chaîne de caractères à partir de la position de la lettre ‘A’ ou ‘a’. Cette valeur est stockée dans la variable valeur_alpha_nouvelle_tempo et affichée sur le port série. Enfin, la valeur de la variable TEMPO est mise à jour avec la nouvelle tempo saisie.

Si la lettre ‘R’ ou ‘r’ est trouvée dans la chaîne de caractères (indexR != -1 || indexr != -1), cela signifie que l’utilisateur a saisi une commande de marche arrière. La direction est alors définie en mode antihoraire (digitalWrite(DIR_PIN, LOW)), et la valeur de la nouvelle tempo est extraite de la chaîne de caractères à partir de la position de la lettre ‘R’ ou ‘r’. Cette valeur est stockée dans la variable valeur_alpha_nouvelle_tempo et affichée sur le port série. Enfin, la valeur de la variable TEMPO est mise à jour avec la nouvelle tempo saisie.

Si aucune des lettres ‘A’, ‘a’, ‘R’ et ‘r’ n’est trouvée dans la chaîne de caractères, un message est affiché sur le port série indiquant que la confirmation de sens de direction est manquante.

Et enfin, pour réaliser la création du train d’impulsions, on commence par récupérer le temps actuel en microsecondes. Ensuite, on vérifie si le temps écoulé depuis la dernière impulsion est supérieur ou égal à la valeur de la tempo. Si c’est le cas, on met à jour le temps précédent avec le temps actuel et on inverse l’état de la broche PULS_PIN pour générer une impulsion. Ce code permet donc de générer des impulsions avec une fréquence régulière en fonction d’une valeur de tempo donnée.

Facebook Twitter  Youtube

Grabcad Thingiverse Cults  

 

Les codes pour le TB6600 1/8 , La création du train d’impulsion pour un moteur pas à pas avec Arduino

TB6600, La création du train d’impulsion pour un moteur pas à pas avec Arduino.

 

Code n-1 : TB6600, La création du train d’impulsion pour un moteur pas à pas avec Arduino

Ce code est destiné à contrôler un moteur pas-à-pas à l’aide d’une carte Arduino. Il utilise les pins ENA, PULS et DIR pour contrôler la rotation du moteur.

La fonction setup() est exécutée une seule fois au démarrage de l’Arduino. Elle configure les pattes ENA, PULS et DIR en sortie.

La fonction loop() est exécutée en boucle sans fin après le démarrage de l’Arduino. Elle commence par récupérer le temps actuel en microsecondes. Cette fonction est basée sur le principe de génération d’impulsions  qui permet de faire avancer le moteur d’un pas à chaque impulsion.

Si le temps écoulé depuis la dernière impulsion est supérieur ou égal à la valeur de la tempo stockée dans la variable TEMPO, la fonction inverse l’état de la broche PULS_PIN pour générer une impulsion et faire tourner le moteur pas-à-pas. La valeur de TEMPO contrôle la vitesse de rotation du moteur.

Ce code est un exemple de base pour contrôler un moteur pas-à-pas avec une carte Arduino. Il est possible de modifier le code pour ajouter des fonctionnalités supplémentaires, telles que le contrôle de la direction de rotation du moteur ou la gestion de la vitesse de rotation en fonction de l’entrée utilisateur.

Code n-2 : TB6600, personnaliser la fréquence de votre moteur pas-à-pas en temps réel

Le code présenté ici est un exemple de contrôle de la fréquence d’un moteur pas à pas à l’aide d’un driver TB6600 et d’une carte Arduino. Le principe est de générer des impulsions à une fréquence donnée pour faire tourner le moteur pas à pas.

Le code est organisé en trois parties principales : la déclaration des variables, le setup et son contenu, et enfin la fonction loop et son contenu. Nous allons les examiner chacune en détail.

Déclaration des variables

Le code commence par la déclaration des variables utilisées dans le programme. Les variables sont les suivantes :

  • ENA_PIN, PULS_PIN et DIR_PIN : ces variables contiennent les numéros des broches utilisées pour le contrôle du moteur.
  • TEMPO : cette variable contient la valeur de la tempo en microsecondes. Elle est initialisée à 250 µs.
  • tempsPrecedent : cette variable stocke le temps précédent en microsecondes, utilisé pour calculer le temps écoulé depuis la dernière impulsion.

Setup et son contenu

La fonction setup() est exécutée une seule fois au démarrage de l’Arduino. Elle initialise la communication série, configure les pattes en sortie pour le contrôle du Driver, valide le driver et définit la direction du moteur. Enfin, elle affiche un message pour demander à l’utilisateur de saisir une nouvelle valeur de tempo (train d’impulsions).

Fonction loop et son contenu

La fonction loop() est exécutée en boucle sans fin après le démarrage de l’Arduino. Elle récupère le temps actuel en microsecondes, lit les données disponibles sur la communication série et vérifie si une nouvelle valeur de tempo a été saisie. Si c’est le cas, elle met à jour la variable TEMPO avec cette nouvelle valeur.

Ensuite, la fonction loop() vérifie si la valeur du temps écoulé depuis la dernière impulsion est supérieure ou égale à la valeur de la tempo. Si tel est le cas, elle met à jour la variable tempsPrecedent avec le temps actuel et génère une impulsion en inversant l’état de la broche de pulsation.

 

 

Facebook Twitter  Youtube

Grabcad Thingiverse Cults  

Retour au sommaire