Archives

De la Théorie à la Pratique : Construire un GBF avec le MCP4727 sur Arduino

.

Ce projet utilise un Arduino pour piloter un convertisseur numérique-analogique (DAC) MCP4725, créant un générateur de fonctions polyvalent capable de produire des ondes sinusoïdales, triangulaires et de fournir une sortie de tension constante ajustable. L’appareil utilise un interrupteur inverseur pour sélectionner facilement entre les différents types de signaux, rendant son utilisation intuitive aussi bien dans un contexte éducatif que pour du prototypage. La valeur d’amplitude et de fréquence des ondes est réglable via des potentiomètres, offrant ainsi une grande flexibilité pour diverses applications expérimentales. Le code inclut des fonctions détaillées pour la génération de chaque type de forme d’onde et ajuste les paramètres en temps réel selon les entrées de l’utilisateur.

Génération précise d’ondes sinusoïdales :
                            Une plongée technique dans la fonction sinusoide()

Au cœur de notre système, la fonction sinusoide() représente l’élément central de génération de notre onde sinusoïdale. Lorsque cette fonction est appelée, elle exécute une série d’opérations précises pour produire le signal désiré.

Tout d’abord, elle récupère les valeurs actuelles des potentiomètres d’amplitude et de fréquence. Ces valeurs sont essentielles car elles déterminent les caractéristiques fondamentales de notre sinusoïde : son amplitude et sa fréquence.

Ensuite, à l’aide de la fonction map(), ces valeurs analogiques sont converties en valeurs numériques appropriées pour notre système. L’amplitude, qui varie de 0 à 1023, est convertie en une plage de tension de 0 à 2500 millivolts, tandis que la fréquence, également sur une échelle de 0 à 1023, est convertie en une plage de fréquence de 1 à 100 Hertz.

Une fois ces paramètres calculés, la fonction appelle la méthode outputSin() du DAC MCP4727, lui fournissant l’amplitude et la fréquence calculées, ainsi que la valeur de crête de la sinusoïde (2500 millivolts). Cette méthode est responsable de générer le signal sinusoïdal souhaité.

Enfin, un délai optionnel peut être introduit pour ajuster la période de la sinusoïde générée. Cela permet de régler la vitesse à laquelle les échantillons du signal sont envoyés, influençant ainsi la fréquence perçue du signal de sortie.

Ainsi, chaque fois que la fonction sinusoide() est invoquée, notre système exécute un processus rigoureux et calculé pour produire une onde sinusoïdale précise, adaptée aux besoins et aux spécifications de l’utilisateur.

 

🔧 Maîtrise de l’Onde Triangulaire :
                                       La Fonction triangle() dans notre Système de Contrôle d’Ondes

Au cœur de notre système, un rôle identique à celui de la fonction sinusoide est assumé par la fonction triangle(), permettant la génération précise d’une onde triangulaire, une forme d’onde essentielle dans le domaine de l’électronique.

Un processus rigoureux est exécuté par cette fonction pour déterminer l’amplitude et la fréquence de l’onde triangulaire, en se basant sur les lectures des potentiomètres. Grâce à la fonction map(), les lectures analogiques sont converties en valeurs numériques adaptées à notre système, ajustant ainsi l’amplitude de 100 à 5000 millivolts et la fréquence de 1 à 100 Hertz.

Une fois ces paramètres définis, la méthode outputTriangle() du DAC MCP4727 est appelée par elle pour générer l’onde triangulaire, en transmettant les valeurs calculées d’amplitude et de fréquence. Des paramètres supplémentaires peuvent être utilisés pour affiner la forme de l’onde triangulaire.

À chaque invocation, une génération précise et contrôlée d’ondes triangulaires est ainsi assurée par triangle(), répondant aux besoins de l’utilisateur.

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
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

 

Apprentissage de la Conversion BCD en Décimal sur Arduino

.

Découvrez comment lire et interpréter des signaux de commutateurs BCD (Binary-Coded Decimal) à l’aide d’un Arduino Uno. Ce tutoriel vous guide à travers la configuration des entrées avec résistances pull-up, la lecture des valeurs des commutateurs codés en BCD pour les dizaines et les unités, et l’affichage des résultats en format binaire et décimal. Parfait pour les débutants en électronique et programmation Arduino, cette vidéo simplifie le concept de codage BCD et montre une application pratique pour traiter et afficher des données numériques. Rejoignez-nous pour une exploration approfondie de la manipulation de signaux numériques avec Arduino.

La Conversion BCD (Binary-Coded Decimal), telle qu’utilisée dans ce code, est une méthode de représentation des chiffres décimaux (0 à 9) par un groupe de quatre bits binaires. Dans le contexte de ce projet Arduino, la conversion BCD permet de lire et interpréter les valeurs provenant de commutateurs BCD, qui sont des dispositifs permettant de choisir une valeur décimale via une interface physique, où chaque position du commutateur correspond à un chiffre décimal spécifique codé en binaire.

Le code que nous avons fourni utilise cette méthode pour lire les valeurs des commutateurs BCD connectés à des pins spécifiques de l’Arduino. Ces valeurs sont ensuite traitées pour obtenir une représentation décimale exacte de la position des commutateurs. Par exemple, si les commutateurs sont réglés pour représenter le chiffre 2 (en BCD, cela serait 0010) et le chiffre 5 (en BCD, cela serait 0101), le code peut lire ces signaux binaires, les convertir en leurs équivalents décimaux et les manipuler comme des nombres décimaux dans le programme (par exemple, les afficher ou les utiliser dans des calculs).

La conversion BCD est essentielle dans de nombreux systèmes électroniques où une interaction humaine avec des données numériques est nécessaire, car elle permet une interface plus intuitive pour entrer et afficher des chiffres décimaux, contrairement à la manipulation directe de données purement binaires.

Roue codeuse à codage BCD

Roue codeuse à codage BCD

Les interrupteurs à molette et les interrupteurs roue codeuse, souvent désignés sous le terme de « PUSHWHEEL SWITCH », sont des dispositifs mécaniques utilisés pour la sélection et l’affichage de valeurs numériques ou alphanumériques dans des équipements électroniques.

 

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
Maîtrise de la Structure de Contrôle ‘Switch’ sur Arduino : Votre Guide Complet

.

🔄 Code 1 : Menu Série Arduino avec Boutons Poussoirs pour Gestion de Moteur

Le programme démarre en initialisant les broches des boutons et en établissant une communication série. Les boutons sont configurés avec des résistances de pull-up internes, une pratique courante pour assurer des lectures stables.

La boucle principale loop() se concentre sur la lecture de l’état des boutons : Marche, Arrêt et Frein. Selon le bouton pressé, une valeur différente est assignée à la variable choixUtilisateur. Cette approche est intuitive et permet une interaction directe avec le matériel.

La structure switch est ensuite utilisée pour interpréter la valeur de choixUtilisateur. Chaque case correspond à un état de bouton spécifique et déclenche une action correspondante : démarrer le moteur, l’arrêter ou débloquer le frein. Si aucun choix valide n’est détecté, un message d’erreur est affiché sur le moniteur série.

Ce qui est intéressant ici, c’est la façon dont la structure switch facilite la décision basée sur plusieurs conditions. Plutôt que d’utiliser plusieurs instructions if-else, qui peuvent devenir encombrantes et moins lisibles avec de nombreux cas, switch offre une solution plus propre et plus organisée.

Après chaque action, un message est envoyé au moniteur série pour informer l’utilisateur de l’action effectuée, et le menu est réaffiché. Cela permet de fournir un retour d’information utile sans surcharger l’interface série, gardant l’interaction principale centrée sur les boutons physiques.

🔄  Code 2 : Arduino : Gestion de Moteur avec la Fonction Switch et Menu Série

Au démarrage, le programme établit une communication série grâce à la fonction setup(). Cette étape assure une interaction fluide entre l’utilisateur et le système. Le programme présente un menu qui offre à l’utilisateur un choix de trois actions : démarrer le moteur, l’arrêter ou débloquer le frein.

La fonction loop() joue un rôle important dans ce processus, surveillant en continu les entrées de l’utilisateur et traitant les commandes dès leur réception. Lorsque le système détecte une entrée valide, il la transmet à la structure switch, où chaque cas correspond à une action spécifique. Cette approche offre une distinction claire et efficace entre les différentes commandes.

  • Dans le cas 1, la fonction demarrerMoteur() est appelée, activant le moteur.
  • Le cas 2 conduit à l’exécution de arreterMoteur(), arrêtant le moteur.
  • Enfin, le cas 3 déclenche debloquerFrein(), libérant le frein du moteur.

L’utilisation de la structure switch dans ce projet démontre une compréhension approfondie des pratiques de programmation efficaces, facilitant la lecture du code et rendant le processus de prise de décision logique et structuré.

Le programme, conçu pour résister aux erreurs, affiche un message d’erreur en cas de réception d’une entrée invalide, guidant ainsi l’utilisateur vers un choix valide, et réaffiche le menu pour permettre une nouvelle sélection.

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
Utilitaire de Contrôle pour Moteur Pas-à-Pas

.

menu_1_ide () 
 

Ce code Arduino est spécifiquement conçu pour contrôler un moteur pas à pas, en mettant l’accent sur un démarrage progressif et un arrêt en douceur grâce à des rampes d’accélération et de décélération. Voici une description détaillée de ses fonctionnalités :

  • Démarrage avec Rampe d’Accélération :
    • En appuyant sur la touche ‘D’, le moteur démarre et accélère progressivement jusqu’à atteindre la vitesse maximale préalablement définie. Cette montée en puissance contrôlée permet un démarrage en douceur et évite les à-coups qui pourraient endommager le moteur ou le mécanisme qu’il entraîne.
  • Arrêt avec Rampe de Décélération :
    • Lorsque la touche ‘S’ est enfoncée, le moteur entame une décélération progressive. Cette fonction est cruciale pour éviter un arrêt brusque, assurant ainsi une meilleure durabilité du moteur et une plus grande précision dans les applications qui nécessitent un arrêt contrôlé.
  • Sortie du Mode de Contrôle du Moteur :
    • À tout moment, l’utilisateur peut choisir de sortir du mode de contrôle du moteur en appuyant sur ‘E’ suivi de la touche Entrée. Cette fonctionnalité offre une flexibilité et un contrôle utilisateur supplémentaires, permettant d’intégrer le code dans des projets plus complexes où d’autres modes de fonctionnement peuvent être nécessaires.
  • Menu Interactif :
    • Le programme démarre en affichant un menu sur le moniteur série, guidant l’utilisateur sur les options disponibles pour le contrôle du moteur. Ce menu facilite l’interaction et rend le programme accessible même pour les utilisateurs moins familiers avec la programmation Arduino.
  •  
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
Arduino pour Moteurs Brushless: Accélération et Capteurs à Effet Hall

.

Bonjour à tous ! Cette vidéo se concentre sur l’étude des rampes d’accélération et de décélération pour les moteurs brushless pilotés par une carte contrôleur. Nous explorerons également la mise à l’échelle de la vitesse en tours par minute et étudierons le rôle des capteurs situés à l’arrière du moteur. Un guide technique complet à ne pas manquer !

📌 Cette vidéo vise à décomposer et analyser en détail un code Arduino avancé conçu pour la régulation de vitesse d’un moteur électrique. Le programme utilise la technique de modulation par largeur d’impulsion (PWM) pour communiquer avec le contrôleur du moteur. Nous examinerons la méthodologie permettant la saisie automatique de la vitesse en tours par minute (tr/min) via le moniteur série et sa conversion ultérieure en signaux PWM destinés au contrôleur. De plus, nous explorerons la conception et l’implémentation de rampes d’accélération et de décélération pour un contrôle plus nuancé de la dynamique du moteur. En parallèle, nous aborderons le rôle des capteurs à effet Hall, situés à l’arrière du moteur et interfacés avec la carte de contrôle, pour mieux comprendre leur contribution à l’ensemble du système de régulation de vitesse. 

Ce que vous allez apprendre :

  • Comment utiliser la PWM avec Arduino
  • Comment lire des données du moniteur série
  • Comment mettre en œuvre des rampes d’accélération et de décélération
  • Mise à l’échelle de la vitesse en tr/min et la valeur du signal PWM

🛠 Fonctionnalités clés du code :

1️⃣ Étude des capteurs à effet Hall à l’arrière du moteur
2️⃣ Saisie de la vitesse désirée via le moniteur série
3️⃣ Conversion de la vitesse en tours par minute (tr/min) en une valeur PWM
4️⃣ Implémentation d’une rampe d’accélération et de décélération
5️⃣ Feedback en temps réel via le moniteur série.

Informations :

  • Code par : Hervé Mazelin pour RedOhm
  • Date de la réalisation : 11/10/2023
  • Version IDE Arduino : 2.2.1

Facebook Twitter  Youtube

Grabcad Thingiverse Cults  

Retour au sommaire
Interface Série pour Régulation de Moteur Brushless avec Contrôleur BLD-300B

.

📜 Description : Dans cette vidéo, nous allons explorer un programme Arduino conçu pour contrôler la vitesse d’un moteur brushless en utilisant un contrôleur BLD-300B. Le code utilise la communication série pour recevoir des valeurs de vitesse entre 0 et 255, qui sont ensuite appliquées au moteur via ce contrôleur spécifique.

🔍 À propos du Contrôleur BLD-300B : Le BLD-300B est un contrôleur de moteur brushless qui permet une régulation fine de la vitesse et du couple du moteur. Il est souvent utilisé dans des applications industrielles et de robotique pour un contrôle précis.

🔑 Points clés :

1️⃣ Utilisation du Contrôleur BLD-300B : Nous utilisons le contrôleur BLD-300B pour une meilleure régulation de la vitesse du moteur.

2️⃣ Configuration de la broche PWM : La broche 9 de la carte Arduino est configurée comme sortie pour le signal PWM.

3️⃣ Communication Série : Le programme utilise la communication série pour recevoir les valeurs de vitesse du moteur.

4️⃣ Validation des Entrées : Le code vérifie si les valeurs reçues sont dans la plage autorisée (0-255) avant de les appliquer.

5️⃣ Feedback Utilisateur : Des messages sont affichés sur le moniteur série pour informer l’utilisateur de l’état actuel du système.

N’oubliez pas de 👍 aimer la vidéo, de 🔔 vous abonner et de 💬 laisser un commentaire si vous avez des questions ou des suggestions !

📅 Date : 04/10/2023
🛠️ Version de l’IDE Arduino : 2.2.1
👨‍💻 Réalisé par : Hervé Mazelin pour RedOhm

 

Informations complémentaires :

Sur une carte Arduino, le signal PWM (Pulse Width Modulation, ou Modulation de Largeur d’Impulsion en français) est généralement utilisé pour simuler un signal analogique à l’aide d’une sortie numérique. Les cartes Arduino ont des broches spécifiques capables de générer des signaux PWM, souvent marquées avec un symbole « ~ » à côté du numéro de la broche.

La fonction analogWrite() est utilisée pour envoyer un signal PWM à une broche spécifique. Cette fonction prend deux arguments : le numéro de la broche et la valeur du rapport cyclique, qui est généralement un nombre entre 0 et 255. Par exemple, analogWrite(9, 127) enverra un signal PWM avec un rapport cyclique d’environ 50% à la broche 9.

Le microcontrôleur sur la carte Arduino génère le signal PWM en alternant rapidement la broche entre les états haut et bas, en modifiant la durée pendant laquelle la broche reste à chaque état selon la valeur du rapport cyclique spécifié. Par exemple, une valeur de 127 sur une échelle de 0 à 255 fera en sorte que la broche soit à l’état haut environ 50% du temps et à l’état bas les 50% restants.

Le signal PWM sur Arduino est souvent utilisé pour contrôler la vitesse des moteurs, régler la luminosité des LEDs, ou même générer des sons simples. Cependant, il est important de noter que même si cela peut simuler un comportement analogique, le signal généré est en réalité toujours numérique (état haut ou bas), et certains dispositifs peuvent nécessiter un filtrage supplémentaire pour fonctionner correctement avec un signal PWM.

 

Facebook Twitter  Youtube

Grabcad Thingiverse Cults  

Retour au sommaire

 

Surveillance de Potentiomètre avec Résolution ADC de 14 bits sur Arduino UNO R4

.

Ce code Arduino a été spécialement conçu pour surveiller les valeurs d’un potentiomètre connecté à la broche A0 d’une carte Arduino UNO R4. L’une des caractéristiques uniques de ce code est l’utilisation d’une résolution de 14 bits pour le convertisseur analogique-numérique (ADC). Cette résolution supérieure permet des lectures plus précises et détaillées, ce qui est particulièrement utile dans des applications comme le contrôle de moteurs de précision, l’instrumentation scientifique et la surveillance environnementale.

🎯 Fonctionnalités clés :

🔌 Initialisation de la Communication Série : Le code commence par initialiser la communication série à un débit de 9600 bauds. Cette fonctionnalité est essentielle pour des applications comme la télémétrie où les données doivent être transmises à distance.

🔒 Vérification de la Communication Série : Le code s’assure que la communication série est bien établie avant de procéder à toute lecture ou écriture. C’est particulièrement utile pour des applications médicales où la fiabilité des données est cruciale.

🎛 Configuration de la Résolution ADC : Le code utilise la fonction analogReadResolution() pour configurer l’ADC à une résolution de 14 bits. Cette haute résolution est bénéfique dans des applications comme l’automatisation industrielle où une précision extrême est nécessaire.

📊 Lecture et Affichage des Valeurs : Le code lit ensuite la valeur analogique du potentiomètre et l’affiche dans le moniteur série en deux formats : décimal et binaire. Cette fonctionnalité peut être utile dans des applications d’audio de haute qualité où la représentation précise des données est requise.

⏳ Intervalle de Lecture : Le code effectue une pause de 500 millisecondes entre chaque lecture, ce qui est suffisant pour des applications comme l’agriculture de précision où les conditions peuvent changer lentement.

📋 Informations de Version :

  • 👨‍💻 Développeur : Hervé Mazelin pour RedOhm
  • 🛠 Version de l’IDE Arduino utilisée : 2.2.1
  • 📅 Date de réalisation : 07/10/2023

Ce code est idéal pour toute personne cherchant à obtenir des lectures analogiques précises pour des applications nécessitant une grande précision. Il est particulièrement adapté pour des domaines comme le contrôle de moteurs, la mesure médicale, l’instrumentation scientifique, et bien d’autres applications où la précision est cruciale.

 

Facebook Twitter  Youtube

Grabcad Thingiverse Cults  

Retour au sommaire