Joseph Hamel
Joseph HAMEL
Joseph Hamel Joseph HAMEL Joseph Hamel Joseph HAMEL Joseph Hamel Joseph HAMEL Joseph Hamel Joseph HAMEL
Joseph Hamel

Les chapitres

Prélude
Introduction
Plan

I Lexique (PDF 6,1 Mo)


II Description de mes orgues
L'Univers des petits orgues

Orgue n° 1
Orgue n° 2
Orgue n° 3
Orgue n° 4
Orgue n° 5

III Fabrication
Tuyaux
Sommiers
Claviers
Transmission
Soufflerie
Soufflet à membrane
Réflexions sur ces instruments
Tailles et dimensions

IV Éléments techniques pour la mise en œuvre d'un "ventilateur intelligent"
1. Moteurs et contrôleurs
2. 1er circuit de test
3. Utilisation d'un capteur de distance
4. Régulation proportionnelle
5. Régulation P.I.D.
6. Téléchargement des programmes

Audio
Contact
Quelques liens

 

 

2. Réalisation d’un premier circuit de commande pour contrôleur brushless.

Yves Monfort

Joseph Hamel2.1 Le code de la commande.

Joseph Hamel2.2 Choix de la méthode de génération du signal de commande du contrôleur.

Joseph Hamel2.3 Un premier montage simple pour tester le matériel : Faire tourner un moteur et modifier sa vitesse par un potentiomètre.

Joseph HamelJoseph Hamel2.3.1 Premier programme : fichier CommandeNo0.txt.

Joseph HamelJoseph Hamel2.3.2 Test de la réalisation.


Joseph Hamel2.1 Le code de la commande.
Joseph HamelSi l’on a choisi pour piloter les moteurs brushless des contrôleurs de télécommande de modèles réduits, il faut pour les commander, c’est-à-dire, faire démarrer, accélérer, ralentir et arrêter, utiliser des signaux de commande conformes à ceux qu’ils recevraient d’un récepteur de télécommande. Le code de ces signaux est assez simple, pour la plupart d’entre eux, c’est le suivant :

Joseph Hamel- La tension du signal est de type « logique ». Le niveau bas est zéro volt, (en fait une tension inférieure à 0,8 volt doit assurer un niveau bas), le niveau haut est assuré pour une tension supérieure à 3 volts.

Joseph Hamel- Le signal est périodique, de période 20 millisecondes.

Joseph Hamel- Au début de chaque période la tension est mise à l’état haut. Elle est maintenue à l’état haut pour une durée d’environ 1 (une) milliseconde, pour un arrêt du moteur, et jusqu’à environ 2 millisecondes pour une vitesse maximale du moteur. Le moteur tournera à des vitesses intermédiaires, plus ou moins rapides, proportionnellement à la durée de cet « état haut », que l’on fera varier entre 1 et 2 millisecondes.

Joseph Hamel- Durant le reste du temps de la période, jusqu’à ce que les 20 millisecondes se soient écoulées, la tension du signal est maintenue à l’état bas.


Voici l’aspect que pourrait présenter ce signal de commande à l’oscilloscope :

Joseph Hamel

 

Joseph Hamel2.2 Choix de la méthode de génération du signal de commande du contrôleur.

Joseph Hamel
La génération d’un tel signal peut être faite par des dispositifs astables et monostables réalisés à l’aide de portes logiques de type inverseur, nand ou nor travaillant sous une tension de 5 volts, ou avec l’universel NE555. On peut trouver des schémas en se documentant sur le web.
Joseph HamelLa génération du signal de commande qui va être présentée ici fait appel aux microcontrôleurs parce qu’ils sont facilement accessibles actuellement, plus stables et précis dans la génération du signal. Avantage indéniable, avec très peu de composants externes le montage va pouvoir aussi assurer la régulation de la hauteur de la réserve d’air, dispensant complètement le réalisateur de placer une quelconque vanne de régulation sur son alimentation en air.
Joseph HamelNous avons réalisé des dispositifs à l’aide de PIC de Microchip et d’Atmega d’Atmel. C’est avec ces derniers, sous la forme de module « Arduino » que ces réalisations sont présentées. Le principal critère du choix de ces derniers réside dans la possibilité de présenter des circuits facilement réutilisables par toute personne ayant quelques connaissances en électricité et dans l’usage des micro-ordinateurs. On peut tout à fait ne pas avoir de connaissance particulière dans la programmation des microcontrôleurs parce que les modules « Arduino » se présentent sous forme d’ensembles prêt à fonctionner, disposant de broches d’entrée et de sortie numérotées et d’une interface USB que l’on connecte directement à un port USB de l’ordinateur pour le programmer. Le câblage, la programmation, la mise en œuvre est décrite dans ce qui suit.
Joseph HamelLes réalisations présentées utilisent le module « Arduino Nano ». Son encombrement est assez réduit pour que les études soient facilement faites sur une platine d’essai sans soudure. La réalisation finale, en circuit imprimé plus compacte, pourra être faite par chaque utilisateur.

Joseph Hamel

Joseph Hamel

Joseph Hamel

 


Le logiciel de programmation est à télécharger sur le site Arduino à l’adresse :
http://arduino.cc/en/Main/Software

Joseph HamelNoter aussi un site correspondant, en français, qui explique à l’adresse suivante tous les détails de l’installation du logiciel de programmation et la méthode pour faire la première connection de son premier module Arduino, et la première configuration :
http://arduino.cc/fr/Main/DebuterInstallationWindows

Cette installation est nécessaire pour les réalisations qui vont être présentées.

Joseph HamelLe programme de chaque réalisation est donné sous forme d’un texte. Pour l’utiliser il suffit de faire les opérations suivantes :
Joseph Hamel- D’abord, ouvrir le fichier texte avec un logiciel, par exemple avec « Bloc notes » de Windows. Si la fenêtre de programmation Arduino est simultanément visible à l’écran de l’ordinateur il suffit de faire un « copier – coller » depuis le texte vers la fenêtre d’Arduino.

Joseph Hamel- Ensuite, on peut faire un « clic » sur la première icone à gauche pour vérifier que la compilation du texte du programme se passe bien. Si aucune ligne du texte, ni signe de programmation, en particulier le dernier } de fin n’a pas été oublié dans le « copier – coller », si dans la configuration, (outil tools de la barre de menus), la carte Arduino Nano avec Atmega328 a été bien spécifié, tout devrait bien se passer, car les programmes ont été testés.

Joseph Hamel- Et pour terminer, il reste à faire le clic sur la seconde icone à gauche pour « verser » le programme dans la mémoire du microcontrôleur. (Il est bien entendu que le module Arduino est déjà connecté à l’ordinateur par un câble USB.)

Joseph Hamel- Quand c’est terminé, le module Arduino est opérationnel. On peut sauvegarder le programme sur son ordinateur si on veut le réutiliser ou le modifier.

Quelques images montrent ces opérations qui viennent d’être décrites (cliquez sur l'image pour l'agrandir).

Joseph Hamel

Joseph Hamel

 

Avertissement :
Les circuits et les programmes présentés ont été testés. L’écriture des programmes n’a pas été optimisée.
On a voulu utiliser les fonctions les plus simples du « langage Arduino », en ayant toutefois vérifié que chaque boucle de programme a effectué tout son travail avant que les 20 millisecondes de la période de répétition des impulsions ne soit écoulée.
Les schémas et programmes sont donnés « tel que », on ne peut assurer qu’ils soient exempts de défauts ou de bugs.
Chaque expérimentateur peut s’en inspirer et les utiliser, mais sous sa propre responsabilité.

 

Attention :
Joseph HamelIl y a une alimentation de 5 volts vers le module Arduino par la liaison USB à l’ordinateur. Il y a une autre alimentation de 5 volts fournie par le contrôleur du moteur, par son fil rouge : le fil central du connecteur 3 fils du contrôleur. Il se peut que la présence de 2 alimentations simultanées puisse créer des situations indésirables, il vaut mieux vérifier les connections des montages pour que cette situation ne se présente pas. (Débrancher le contrôleur avant que la connection USB soit faite par exemple, et à l’inverse débrancher le câble USB avant que le contrôleur soit connecté).


Joseph Hamel2.3 Un premier montage simple pour tester le matériel : Faire tourner un moteur et modifier sa vitesse par un potentiomètre.

Joseph Hamel

Joseph Hamel

 

Joseph HamelTous les moteurs brushless et tous les contrôleurs ont 3 fils de connection pour les relier. Comme on l’a déjà signalé si, à l’expérience, le moteur ne tourne pas dans le sens souhaité, il suffit d’inverser les branchements de 2 fils pour inverser le sens de rotation.
Joseph HamelLes contrôleurs présentent 2 autres gros fils, rouge et noir en général, à connecter respectivement vers le pôle positif et le pôle négatif de l’alimentation électrique : 12 volts continus dans toutes les réalisations présentées ici.
Joseph HamelIl ne restera plus qu’à brancher le petit câble « 3 fils » à la platine d’essai, où l’on va générer les signaux de commande qui vont faire tourner le moteur.
Joseph HamelPour ce premier montage sur la platine d’essai qui porte le module Arduino, c’est le potentiomètre de 10 kilo ohms qui joue le rôle d’accélérateur du moteur. On utilise le schéma suivant :

Joseph Hamel

 

Voici la photographie de la platine d’essai :

Joseph Hamel


Joseph HamelRemarquez la présence des 2 condensateurs de 22 microfarads en haut et en bas entre les lignes des trous placées à 0 volts ou à 5 volts. Ces lignes sont elles-mêmes reliées aux broches marquées GND et 5V de l’Arduino. Comme c’est souvent l’usage, un condensateur de 100 nF céramique y est ajouté. On y voit en plus , d’une part, les liaisons du potentiomètre vers 0V et 5V, sa broche médiane qui est reliée par l’intermédiaire de la résistance de 1 kilo ohm et du fil jaune à l’entrée analogique A0 de l’Arduino, et d’autre part la sortie D9 reliée par le fil vert et la résistance de 1 kilo ohm à la broche de commande où vient se brancher le connecteur « 3 fils » du contrôleur. Les résistances de 1 kilo ohm ne sont pas nécessaires mais peuvent protéger les circuits contre des erreurs de branchements. On voit aussi 2 petites liaisons venant de la broche du connecteur « 3 fils » respectivement vers le 0 volt et vers le 5 volts. Elles permettent d’alimenter le module Arduino lorsqu’on entreprend les tests, le câble USB le reliant à l’ordinateur ayant été enlevé.

 

Joseph Hamel2.3.1 Premier programme : fichier CommandeNo0.txt.

Joseph HamelLe but est uniquement de générer un signal de commande pour piloter la vitesse de rotation du moteur.
Joseph HamelUne fonction appelée mesures() se charge de mesurer la tension sur la prise médiane du potentiomètre. La valeur donnée par le convertisseur numérique analogique est stockée dans la variable appelée distance. On lui a déjà donnée ce nom, parce que dans les réalisations suivantes elle stockera une valeur indiquant la distance entre la hauteur de la réserve d’air et le capteur.
Joseph HamelPuisque le convertisseur numérique analogique travaille sur 10 bits, la variation du potentiomètre depuis 0V jusqu’à 5V la fera varier depuis le nombre 0 jusqu’au nombre 1023.
Joseph HamelCette variable est transmise à la fonction faire_pulse(), qui se charge de mettre à l’état haut la broche D9 pour une durée égale à (990 + distance) microsecondes. Et la boucle loop() attend que 20 millisecondes se soient écoulées avant de recommencer.
Joseph HamelLe signal sur la broche D9 est donc conforme au code des signaux de télécommande : le potentiomètre tourné côté 0V, l’impulsion dure 0,99 milliseconde et le moteur est arrêté, le potentiomètre est tourné côté 5V, l’impulsion dure 2.013 millisecondes et le moteur tourne à plein régime.

Joseph HamelSi vous voulez tester ce programme, copiez dans la fenêtre d’Arduino le texte du fichier CommandeN°0.txt ou de CommandeN°0_bref.txt, (ils donnent le même résultat : le premier a beaucoup de commentaires qui peuvent compléter les explications qui précèdent, le second n’en a presque pas). Vérifiez la compilation puis chargez le programme dans la mémoire du module Arduino, suivant la méthode déjà décrite.

 

 

Joseph Hamel2.3.2 Test de la réalisation.
Joseph HamelPrendre soin de débrancher le câble USB de la programmation avant de connecter une alimentation. Sur la photographie du test c’est un petit accumulateur au plomb de 12 volts qui est utilisé, et le tout a fonctionné comme prévu.

 

Joseph Hamel

 

Joseph HamelATTENTION :
Joseph HamelLes contrôleurs destinés aux modèles réduits ont pour la plupart une sécurité. Au branchement de l’alimentation, avant qu’on ne puisse faire tourner le moteur, il faut que le contrôleur reçoive pendant plusieurs secondes les impulsions de largeur minimale qui correspondent à la commande « moteur arrêté ». Au bout de ces quelques secondes, l’initialisation du contrôleur est faite et la commande acceptée. En général le contrôleur émet alors un signal sonore pour avertir qu’il est disponible pour un fonctionnement normal. C’est à partir de ce moment qu’on peut lancer la rotation du moteur. Il faut donc pour tester la réalisation que le potentiomètre soit tourné du côté 0 V à la mise sous tension du montage, et attendre un signal sonore avant de tourner le potentiomètre vers le +5V pour lancer le moteur.

Joseph HamelSi tout a fonctionné, c’est une confirmation de la bonne configuration de l’ensemble matériel et logiciel, et que vous avez appris à l’utiliser si vous ne le saviez pas encore. Le système est prêt à être développé pour piloter le moteur brushless d’un ventilateur d’orgue.
Joseph HamelLa réalisation suivante propose de remplacer simplement le potentiomètre par un capteur de distance optique. Il produit une tension qui augmente quand la distance le l’obstacle en vue se rapproche. On va associer cet obstacle à la hauteur de la réserve d’air.

 

Cliquez ici pour lire la suite.

 

Joseph Hamel

Joseph Hamel

• www.lartdunfacteurdorguesamateur.fr • 

Joseph Hamel