Comment créer un circuit pour monter / baisser automatiquement un bureau réglable en hauteur?
Contexte
Bonjour à tous, je travaille sur un petit projet où je peux contrôler la hauteur d'un bureau réglable en hauteur à l'aide d'un microcontrôleur, de transistors MOSFET et d'un capteur à ultrasons. Essentiellement, je veux que l'utilisateur saisisse une hauteur et que le bureau s'ajuste automatiquement à cette hauteur.
Détails techniques
C'est le bureau que j'utilise. Il n'a que des boutons haut / bas et n'a pas de fonction de «mémoire».
J'essayais d'utiliser ce tutoriel, mais comme je n'avais pas un accès facile au moteur lui-même, j'ai décidé de "remplacer" les boutons haut / bas par des transistors MOSFET.
C'est un MOSFET que j'utilise. Il a une tension de seuil Vgs entre 2 et 4 volts, ce qui fonctionnera pour mon microcontrôleur 5v.
J'ai ouvert la boîte à boutons et voici à quoi elle ressemble.
Il y a quatre fils dans le connecteur JST.
- Rouge: 30V
- Noir: GND
- Vert: bas
- Blanc: haut
Il s'agit d'un commutateur actif-haut où la connexion du vert ou du blanc au rouge déplacera le bureau vers le bas et le haut, respectivement. Voir le diagramme ci-dessous pour savoir comment fonctionne le commutateur ( Omron SS-5 ) dans le schéma.
Ce que j'ai fait jusqu'ici
J'ai sorti le connecteur JST et connecté les fils de cavalier directement aux broches femelles pour créer le circuit suivant pour élever le bureau.
La source de tension sur le côté gauche est la broche de sortie numérique d'un microcontrôleur. J'ai réussi à soulever le bureau lorsque la goupille était haute et à arrêter de soulever le bureau lorsque la goupille était basse.
Edit (16 août 2020): J'ai mesuré le courant de la source du transistor au fil blanc, et il a grimpé à ~ 3A pendant un bref instant, et pendant que le bureau se lève (c'est-à-dire lorsque le moteur fonctionne), il est sorti ~ 300mA.
J'ai également pu faire de même pour abaisser le bureau, sauf que la source du MOSFET était connectée au fil vert à la place.
Mon problème est:
J'ai placé un autre transistor en tant que tel pour faire à la fois monter et descendre:
Edit (15 août 2020): Désolé pour le diagramme déroutant. Ce diagramme utilise deux broches de sortie numériques. La source de tension sur le côté gauche est D2 de MCU et celle de droite est D3 de MCU. Les broches partagent un terrain commun, qui est responsable du problème suivant.
Cela a évidemment créé un problème car la source des deux transistors est connectée à la fois aux fils blanc et vert, ce qui signifie que chaque fois qu'un transistor est allumé, les deux fils blanc / vert sont HAUT. Cela équivaut à appuyer sur les deux boutons en même temps, ce qui ne déplace pas du tout le bureau. J'ai essayé de mettre une résistance de 10k entre les deux sources des transistors, mais cela n'a pas résolu le problème.
Ma question
- Comment dois-je modifier mon circuit pour accomplir ce que j'essaie de faire?
- Est-ce quelque chose que je peux même créer simplement en utilisant des transistors? ou
- Dois-je ouvrir le moteur pour suivre les cas d'utilisation typiques du transistor en tant que commutateur?
J'apprécierais beaucoup si quelqu'un pouvait donner des conseils sur ma situation :)
Je suis plus qu'heureux de clarifier toute confusion.
Je vous remercie!
Réponses
Le bref 3 A pendant le démarrage du moteur signifie que les fils blanc et vert transportent le courant du moteur. Vos FET doivent être adéquats pour ce courant et protégés contre les pics de tension lorsque le moteur s'arrête.
Votre schéma de commutation d'origine montre une configuration de pont en H. Avec les deux interrupteurs baissés, il n'y a pas de courant vers le moteur. Lorsque l'un ou l'autre des commutateurs monte, les deux conduisent le courant vers le moteur, l'un provenant de 30 V, l'autre descendant à 0 V. Vos suggestions FET ne montrent qu'un pull-up, pas de pulldown, donc votre moteur ne fonctionnera pas.
Vous avez besoin d'un pilote de pont en H avec une désactivation, ou de deux pilotes de demi-pont, pour reproduire cette fonctionnalité. Compte tenu du décalage de niveau, etc. nécessaire et de vos connaissances en électronique, il serait plus judicieux d'essayer d'acheter des modules d'entrée de niveau logique, avec des sorties évaluées pour au moins 30 V et 3 A.
Au lieu des FET, il serait également raisonnable d'utiliser une paire de relais c / o pour faire exactement ce que font les commutateurs. Accédez à votre site de commerce électronique en ligne préféré et recherchez `` module de relais Arduino '', puis choisissez-en un à 2 canaux. Ils peuvent être alimentés à partir de 5 V, aussi bon marché que les puces, ne explosent pas comme les FET (bien que les contacts finissent par s'user) et ont juste assez de capacité de traitement CC pour votre moteur 30 V.
problèmes avec les hypothèses de conception
- n'a pas reconnu le but du SPDT.
- n'a pas compris Vgs (th)
- le moteur augmentera avec un courant nominal 10x ou bien plus que le courant de charge réel car il n'utilise probablement pas le poids de charge maximum.
Par exemple, disons que le moteur est évalué pour 1A mais n'utilise que 0,3A sauf 10x1 = 10A au démarrage.
- lors de la coupure, il y a un arc et une EMF arrière du moteur agissant comme générateur et interrupteur comme frein et engrenages comme frein à friction avec bobine court-circuitée pour une charge supplémentaire.
- vous avez donc besoin d'un POWER Half Bridge qui fonctionne avec les niveaux logiques en utilisant une sortie 30V avec des diodes de puissance pour gérer les pointes 10A ou 20A si elles sont inversées rapidement en se déplaçant.
Problèmes avec les conceptions FET
vous avez supposé que 2 ~ 4V était le Vgs de fonctionnement, mais ce n'est que le seuil et vous avez besoin d'au moins 2,5 à 3x seuil de 100uA pour vous rapprocher de RdsOn pour gérer> 10A, ce qui est souvent spécifié à Vgs = 5, 10 ou 12V.
Les «FET de niveau logique» utilisent Vgs (th) près de 1 V pour fonctionner à 3 V pour de meilleures performances, sinon ils chauffent.
au lieu d'un pilote côté haut, vous avez besoin d'un SPDT ou d'un FET de puissance demi-pont
Un demi-pont de puissance est nécessaire qui utilise une entrée et une sortie de niveau logique probablement évaluées à 30 A pour avoir un Rdson suffisamment petit pour rester au frais pendant le démarrage. Les diodes de puissance inversées sur chaque rail pour la pince Flyback sont toutes deux nécessaires pour 10A.
- le demi-pont doit avoir un petit temps mort entre Fwd et Rev pour éviter un court-circuit ou un effet de tir. C'est normal. Mais vous devez vous en assurer.
Recommandations
Définissez la résistance de la bobine du moteur et choisissez le circuit intégré de demi-pont de niveau logique pour piloter 30 V / DCR + marge
Assurez-vous qu'il dispose d'une protection contre les temps morts avec des commandes d'entrée avec retard de diode RC ou retard MCU et vérifiez que l'état de réinitialisation à la mise sous tension est désactivé.
qu'en est-il de la protection contre les butées? En cas de panne sur le pilote ou de pépin MCU? Considérez Polyfuse.
Faites les calculs de résistance thermique pour dissipateur thermique et isolant électrique avec de la graisse.
Ceci est commun à la conception de l'interrupteur de lève-vitre électrique, sauf plus de masse, moins de vitesse, mais peut-être le même courant (?) De récupération du cimetière de voiture! Ou faire du bricolage ou acheter? ce sont les décisions quotidiennes de fabrication / achat de tout concepteur.
Enfin, qu'en est-il du capteur de position ou? Le capteur de position pour un long voyage peut être coûteux à moins que vous ne soyez un génie mécanique pour utiliser Pot avec une CNC de 8 mm ou une courroie d'engrenage plus petite du mouvement linéaire à la réduction de poulie en passant par le pot, puis lisez la tension du pot comme position linéaire, calibrez et utilisez pour le retour servo. Ensuite, permettez aux commutateurs d'entrée MCU de se souvenir des états que vous entrez pour les positions et de basculer vers le haut suivant et vers le bas suivant ou 1,2,3 +, -. Mais rebondissez les interrupteurs. Il manque autre chose? Interrupteurs de fin de course? Pratique STD pour les machines CNC.
Une autre option serait d'utiliser deux relais SPDT, ayant des valeurs de contact identiques à celles des micro-interrupteurs SS-5 existants.
Si le bureau n'est que des interrupteurs, un moteur et des relais, ne contenant aucun composant sensible à la polarité, vous pouvez simplement inverser la polarité de l'alimentation. Vous auriez alors un 0v commun plutôt qu'un rail 30v commun.
Vous pouvez alors utiliser 2 transistors NPN ou éventuellement 2 mosfets de type N pour basculer le 0v sur les fils blanc et vert. Le haut et le bas seront évidemment également inversés.
Vous devrez ajouter quelques diodes de roue libre pour protéger vos transistors de la force électromotrice arrière des bobines de relais et du moteur existants.