Archives

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