Table des matières:

Moteur à vitesse variable contrôlé en série : 6 étapes
Moteur à vitesse variable contrôlé en série : 6 étapes

Vidéo: Moteur à vitesse variable contrôlé en série : 6 étapes

Vidéo: Moteur à vitesse variable contrôlé en série : 6 étapes
Vidéo: Tutoriel du contrôleur de vitesse de moteur 2024, Novembre
Anonim
Moteur à vitesse variable contrôlé en série
Moteur à vitesse variable contrôlé en série

Contrôlez la vitesse d'un petit moteur à courant continu avec rien d'autre que le port série de votre ordinateur, un seul MOSFET et quelques logiciels triviaux. (Le MOSFET et le port série constituent le "contrôle de vitesse"; vous aurez toujours besoin d'un moteur et d'une alimentation appropriée pour ce moteur; alors que le port série peut fournir la tension pour allumer et éteindre un mosfet, il peut ' t fournir le courant nécessaire à un moteur typique.)

Étape 1: Regardez le circuit

Regardez le circuit
Regardez le circuit

Nous allons effectuer une modulation de largeur d'impulsion à l'aide d'un MOSFET de puissance générique à canal N connecté à la broche de données de transmission du port rs232 de l'ordinateur. Lorsque le port série est inactif, la broche se trouve à l'état "1", qui au moment où elle est traduite en rs232, est quelque chose comme -12V (selon les pilotes, elle peut être plus proche de -9V ou -5V), et le transistor sera tout à fait éteint. Lorsque nous transmettons des bits "0" sur le port série, la broche rs232 ira à +12V environ, ce qui est suffisant pour activer assez bien la plupart des mosfets.

Si nous transmettons beaucoup de "0" bis d'affilée, le moteur sera presque complètement allumé et le moteur fonctionnera rapidement. Si nous transmettons principalement des bits "1", le moteur fonctionnera plus lentement.

Étape 2: câblez-le

Câblez-le
Câblez-le

Puisqu'il n'y a qu'un seul composant et seulement quelques connexions, vous pouvez simplement ajouter des fils « de forme libre ».

Les MOSFET sont sensibles à l'électricité statique, alors soyez un peu prudent, mais très peu est critique.

Étape 3: Configurer des fichiers avec des valeurs PWM

Configurer des fichiers avec des valeurs PWM
Configurer des fichiers avec des valeurs PWM

Une façon de contrôler le moteur sans avoir à écrire AUCUN logiciel est de préparer des fichiers contenant les octets appropriés (avec plus ou moins 0 bits), et de les COPIER simplement sur le port COM où vous avez connecté le moteur. J'ai préparé plusieurs fichiers (à l'aide d'emacs, mais tout ce qui fonctionne pour vous convient):

  • 0.pwm:: contient 5000 caractères NULL (espace de contrôle sur la plupart des claviers)[br] C'est à peu près aussi proche de la "pleine vitesse" que nous pourrons l'obtenir avec cette technique.
  • 1.pwm:: contient 5000 caractères control-A (ascii 01) (un bit "1" par caractère)
  • 3.pwm:: contient 5000 caractères control-C (ascii 03) (deux bits "1" par caractère)
  • 7.pwm:: contient 5000 caractères control-G (ascii 07) (trois "1" bits par caractère)
  • 15.pwm:: contient 5000 caractères control-O (ascii 15) (quatre bits "1" par caractère)
  • 31.pwm:: contient 5000 caractères control-_ (ascii 31) (cinq bits "1" par caractère)
  • 63.pwm:: contient 5000 "?" caractères (ascii 63) (six "1" bits par caractère)
  • 127.pwm:: contient 5000 caractères DEL (ascii 127) (sept "1" bits par caractère)

(Maintenant que j'ai dessiné des images, vous remarquerez que les modèles de bits réels ne sont pas idéaux. Puisque la série rs232 transmet le LSB en premier, nous voulons vraiment passer des zéros au lieu des uns. Un exercice pour l'étudiant !)

Étape 4: Jouez avec DOS: Configurez votre port COM et copiez les fichiers

Jouez avec DOS: configurez votre port COM et copiez les fichiers
Jouez avec DOS: configurez votre port COM et copiez les fichiers

9600 bps est un débit binaire courant. Cela correspond bien à "environ" un octet par milliseconde, donc dans ce cas, cela correspond à une fréquence PWM de 1000 Hz, ce qui, à mon avis, devrait convenir aux petits moteurs. Vous pouvez expérimenter avec différents débits binaires pour voir comment les choses fonctionnent, ce qui est l'un des avantages de cette méthode. Créez une fenêtre DOS (ou "Invite de commande") (en supposant que vous utilisez un système d'exploitation Windows) et configurez votre port com comme:mode com1: 9600, n, 7, 1"Cela indique au port de communication de fonctionner à 9600bps et d'envoyer 7 bits dans chaque caractère (pour correspondre à nos 7 longueurs de bits différentes.) Le "n" signifie PAS de parité, ce seront donc les seuls bits de données. Le "1" signifie qu'il y aura un bit "stop", ce qui nous empêchera d'allumer le moteur à fond (eh bien.) Alors maintenant, vous pouvez allumer le moteur avec des commandes like:copy 0.pwm com1:Puisque nous envoyons 5 000 caractères à environ 1 par milliseconde, le moteur devrait s'allumer presque à pleine vitesse pendant environ 5 secondes. Si vous voulez moins de 5 secondes, créez un fichier plus court. De même, vous pouvez faire:copier 127.pwm com1:pour faire tourner le moteur à la vitesse la plus basse possible. Avec la configuration que j'avais, le moteur ne tournerait pas du tout avec quelque chose de "plus lent" que 31.pwm, mais YMMV (je pense k J'avais un moteur de 12 V fonctionnant avec 5 V de batteries.) La commande COPY vous permet d'enchaîner des fichiers, donc si vous voulez que votre moteur accélère puis ralentisse à nouveau, vous pouvez faire quelque chose comme: copier 31.pwm+15. pwm+7.pwm+0.pwm+7.pwm+15.pwm+31.pwm com1:

Étape 5: contrôler le moteur à partir d'un programme

Contrôler le moteur à partir d'un programme
Contrôler le moteur à partir d'un programme

Si vous écrivez un programme, vous pouvez probablement ouvrir COM1: en tant que fichier et simplement y écrire comme s'il s'agissait de n'importe quel autre fichier. Pouvoir chronométrer les périodes pendant lesquelles le moteur est allumé en produisant un nombre particulier de caractères semble être très pratique. N'oubliez pas que le système est très susceptible de mettre en mémoire tampon les caractères que vous envoyez au port série, donc ce n'est pas parce qu'un appel WRITE revient que le moteur a fini de faire ce que vous lui avez dit. Étant donné que nous ne faisons rien de "fantaisiste" avec les signaux du port com, vous ne devriez pas avoir à enquêter sur les options obscures qu'il pourrait prendre en charge. (bien que, si vous pouvez comprendre comment envoyer une séquence BREAK au port com, il s'agit d'un état "0" continu et entraînera le moteur TOUT le chemin; plus que d'envoyer des caractères 0 continus.)

Si votre langage de programmation ne vous permet pas de sortir vers COM1:, vous pourrez toujours contrôler le moteur en « appelant » DOS pour effectuer des commandes de copie. (OK. J'ai téléchargé Visual Basic Express 2005 de Microsoft (qui est gratuit) et j'ai réussi à lier une barre de défilement horizontale à la vitesse du moteur, contrôlée via le port série. zip attaché. Il a probablement plus qu'il n'en faut pour dupliquer le programme sur votre système, mais je ne pouvais pas savoir exactement quels bits étaient nécessaires. Le programme est à la fois simplifié et rendu plus difficile à comprendre (désolé) en étant multi-thread. Un thread ne fait que sortir sur le port série, et le le fil principal lit la barre de défilement et met à jour les informations utilisées par le fil série.)

Étape 6: Expérimentez

Expérience!
Expérience!

Si les choses fonctionnent fondamentalement, cela donne énormément de place à l'expérimentation.

  • Réparez mes modèles de bits !
  • Le débit a-t-il beaucoup d'importance ?
  • Devez-vous contrôler la largeur des impulsions « on » et « arrêt », ou est-ce que contrôler simplement leur rapport est suffisant ?
  • Si vous n'avez qu'à contrôler le rapport, vous pouvez envisager des séquences de plusieurs caractères à des débits binaires plus élevés pour obtenir plus de niveaux de vitesse. La sortie de 0 suivi de 127 serait à peu près à moitié activée.
  • Cela devrait également fonctionner pour les ampoules de lampe de poche.

Conseillé: