Table des matières:
- Étape 1: Regardez le circuit
- Étape 2: câblez-le
- Étape 3: Configurer des fichiers avec des valeurs PWM
- Étape 4: Jouez avec DOS: Configurez votre port COM et copiez les fichiers
- Étape 5: contrôler le moteur à partir d'un programme
- Étape 6: Expérimentez
Vidéo: Moteur à vitesse variable contrôlé en série : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:10
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
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
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
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
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
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
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é:
Contrôleur de vitesse de moteur variable : 8 étapes
Contrôleur de vitesse de moteur variable : dans ce projet, je vais vous montrer comment j'ai créé le contrôleur de vitesse de moteur et amp; Je montrerai également à quel point il peut être facile de construire un contrôleur de vitesse de moteur variable à l'aide d'un IC 555. Commençons
Moteur pas à pas contrôlé par moteur pas à pas - Moteur pas à pas en tant qu'encodeur rotatif : 11 étapes (avec photos)
Moteur pas à pas contrôlé par moteur pas à pas | Moteur pas à pas en tant qu'encodeur rotatif : Vous avez quelques moteurs pas à pas qui traînent et vous voulez faire quelque chose ? Dans ce Instructable, utilisons un moteur pas à pas comme encodeur rotatif pour contrôler la position d'un autre moteur pas à pas à l'aide d'un microcontrôleur Arduino. Alors sans plus tarder, allons-y
Moteur 24 V CC vers moteur universel haute vitesse (30 volts) : 3 étapes
Moteur 24 V CC en moteur universel haute vitesse (30 volts) : Bonjour ! Dans ce projet, je vais vous apprendre à convertir un moteur 24 V CC normal en un moteur universel 30 V. Personnellement, je pense qu'une démonstration vidéo décrit le mieux un projet. . Alors les gars, je vous recommanderais de regarder la vidéo en premier.Project V
Comment faire fonctionner un moteur à courant continu sans balai Drone Quadcopter à l'aide du contrôleur de vitesse de moteur sans balai HW30A et d'un testeur de servomoteur: 3 étapes
Comment faire fonctionner un moteur à courant continu sans balais pour drone quadrirotor à l'aide du contrôleur de vitesse de moteur sans balai HW30A et d'un testeur de servomoteur : L'appareil peut également être utilisé comme générateur de signal pour régulateur de vitesse électrique (ESC), alors vous ne pouvez pas
Comment contrôler le moteur à courant continu sans balai Drone Quadcopter (type à 3 fils) en utilisant le contrôleur de vitesse du moteur HW30A et Arduino UNO: 5 étapes
Comment contrôler le moteur CC sans balai du drone quadrirotor (type 3 fils) à l'aide du contrôleur de vitesse du moteur HW30A et de l'Arduino UNO : Description : Le contrôleur de vitesse du moteur HW30A peut être utilisé avec 4 à 10 batteries NiMH/NiCd ou 2-3 cellules LiPo. Le BEC est fonctionnel avec jusqu'à 3 cellules LiPo. Il peut être utilisé pour contrôler la vitesse du moteur Brushless DC (3 fils) avec un maximum jusqu'à 12Vdc.Specific