Archives

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

 

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

 

Tutoriel Arduino : Compteur de Vitesse Analogique avec Écran TFT !

.

Ce programme est conçu pour fonctionner avec une carte Arduino et un écran TFT. Son objectif principal est d’afficher un compteur de vitesse sur l’écran TFT, simulant ainsi un tableau de bord analogique, comme celui que l’on pourrait trouver dans une voiture ou une moto.

  1. Fonctionnement de base :
    • Le programme lit une valeur analogique (provenant d’un capteur ou d’un potentiomètre connecté à la broche A9 de l’Arduino) qui est censée représenter une vitesse.
    • Cette valeur analogique est ensuite mappée (ou convertie) en une valeur de vitesse allant de 0 à une vitesse maximale définie (dans ce cas, Vitesse_max est définie à 150).
    • Le programme utilise la vitesse déduite pour ajuster une aiguille sur l’écran TFT. Cette aiguille indique la vitesse actuelle, similaire à un compteur de vitesse analogique. Outre l’aiguille, le programme affiche la vitesse exacte numériquement sur l’écran.
  2. Caractéristiques visuelles :
    • L’écran TFT affiche un cercle représentant le compteur de vitesse, avec des marques (ou graduations) pour indiquer différentes vitesses. Ces marques sont espacées de 10 unités de vitesse et sont accompagnées de chiffres pour faciliter la lecture.
    • Une aiguille pivote autour du centre du cercle, indiquant la vitesse actuelle.
  3. Mise à jour dynamique :
    • Le programme vérifie en continu la valeur analogique lue. Il met à jour l’affichage de l’aiguille et de la valeur numérique en conséquence.
    • Le programme évite les mises à jour inutiles pour réduire les clignotements sur l’écran. »Il met à jour l’affichage seulement quand la vitesse change.

Pourquoi le système de coordonnées sur un écran TFT diffère-t-il de la convention mathématique? Comment cela impacte-t-il la programmation sur ces écrans?

Lorsque nous parlons du cercle trigonométrique standard en mathématiques, il commence avec 0° à droite (sur l’axe des abscisses positif) et augmente dans le sens antihoraire.

Cependant, dans de nombreux systèmes de graphiques informatiques, y compris la plupart des écrans TFT pilotés par Arduino, le système de coordonnées est différent :

  1. Origine (0,0) : L’origine du système de coordonnées se trouve généralement dans le coin supérieur gauche de l’écran, et non au centre.
  2. Direction positive de l’axe Y : Dans la plupart des systèmes trigonométriques, l’axe Y est positif vers le haut. Mais dans de nombreux systèmes graphiques, l’axe Y est positif vers le bas.
  3. Sens de rotation : En trigonométrie, l’angle augmente dans le sens antihoraire. Cependant, sur les écrans TFT, c’est différent. L’axe Y positif change la direction. Les objets tournent dans le sens horaire.

Ces différences peuvent rendre la translation des concepts mathématiques trigonométriques dans le monde du graphisme informatique un peu déroutante au début. C’est pourquoi, par exemple, le cercle trigonométrique commence souvent à un angle différent, comme 135° pour le compteur dans le code que nous avons examiné, afin d’avoir le point de départ à l’endroit souhaité.

Ainsi, lors de la programmation pour des écrans TFT ou d’autres systèmes de graphiques informatiques, nous devons prendre en compte ces différences et ajuster les calculs en conséquence.

Pourquoi est-il nécessaire de convertir les degrés en radians lors de l’utilisation de fonctions trigonométriques sur Arduino?

Sur Arduino, la nécessité de traduire les degrés en radians n’est pas due à une limitation spécifique de la plate-forme Arduino elle-même, mais plutôt à la manière dont les fonctions trigonométriques standard, telles que sin() et cos(), sont définies dans la plupart des langages de programmation, y compris le C++ utilisé par l’Arduino.

Voici quelques raisons pour lesquelles les radians sont utilisés pour les fonctions trigonométriques :

Définition mathématique : En mathématiques, le radian est la mesure standard pour les angles. C’est une unité sans dimension qui représente le rapport entre la longueur d’un arc et le rayon du cercle. Cette propriété rend les radians plus fondamentaux et naturels pour décrire les angles dans le contexte des mathématiques.

Simplicité des formules : De nombreuses formules en trigonométrie, en analyse et en physique sont plus simples lorsqu’elles sont exprimées en radians. Par exemple, la dérivée de sin(x) est cos(x) seulement si x est en radians.

Facebook Twitter Youtube

Grabcad Thingiverse Cults  

Page d'accueil du site