Est-il possible de piloter un moteur sans balai directement avec Arduino? Ou devrais-je revenir sur la commande d'un moteur brushless ESC avec des impulsions PWM?
arduino
motor
driver
brushless-dc-motor
tuupola
la source
la source
Réponses:
Vous devez absolument utiliser l'ESC. Les moteurs sans balais fonctionnent mieux lorsqu'ils sont entraînés avec une onde sinusoïdale (ou aussi près que possible d'une onde sinusoïdale). Ils nécessitent également un ensemble de signaux assez précis et compliqué. Générer les formes d'onde et le timing appropriés à partir d'un arduino serait difficile, et à moins que vous n'en ayez vraiment besoin, cela ne vaut probablement pas la peine. Vous pouvez toujours organiser le contrôle de l'ESC à partir de votre Arduino, ce qui vous donnerait un contrôle programmatique ainsi que l'efficacité et la puissance de l'ESC.
la source
En fait, parfois, vous DEVEZ simplement créer votre propre ESC. Les ESC vendus sur le marché sont "commercialisés" et ont leurs propres codes de contrôle pour les trucs RC comme les avions, les hélis, les voitures ...
Par exemple, il faut parfois avoir un frein régénératif double face. De l'arrière à l'arrêt et de l'avant à l'arrêt. Il n'y a AUCUN ESC RC qui a cette fonctionnalité. Ils ont soit un seul frein régénératif d'avant à l'arrêt, soit aucun. Ou vous pouvez avoir besoin d'un BLDC de contrôle de capteur, mais il n'y a que quelques ESC sensibles sur le marché, et ils n'ont que (les mêmes pour les ESC sans capteur courants) des fonctionnalités intégrées dont vous n'avez pas besoin et n'en avez pas dont vous avez absolument besoin !
Concevoir votre propre ESC est un choix parfait et beaucoup moins cher, même que le 10 $ le moins cher avec une énorme puissance.
Il est vrai que le code de contrôle et le matériel peuvent être pénibles mais après quelques lectures ce n'est qu'un jouet.
Il y a un bon tutoriel ici sur la façon de faire un contrôleur BLDC avec un arduino en utilisant 6 mosfets et quelques autres trucs que vous pouvez facilement trouver sur le site de Jameco (très sympa) C'est là que j'achète mes trucs pour pas cher mais spurkfun peut être une bonne alternative si vous ne trouvez pas de capteurs comme des gyroscopes, etc.
http://www.instructables.com/id/BLDC-Motor-Control-with-Arduino-salvaged-HD-motor/
guide très agréable et facile à suivre. Vous pouvez faire n'importe quelle puissance de ESC bas à ultra élevé en utilisant ce guide et presque n'importe quelle combinaison de frein de régénération, en utilisant une résistance, des enroulements de moteur ou un chargeur de batterie ...
Utiliser des mosfets n'est qu'un jouet, vous pouvez presque tout faire.
Le problème est que vous ne pouvez pas contrôler ce mosfet très efficacement avec un MCU comme une carte arduio qui ne produit que 5 V, je pense, et la tension de grille du mosfet pour les tensions moyennes est assez beaucoup plus élevée dans la plage de 16 à 30 V. Vous devez donc utiliser un autre tansisor pour augmenter la tension de l'arduino.
Bonne chance.
la source
J'ai fait des allers-retours sur ce sujet pendant environ 30 minutes. Je pense que vous voulez probablement utiliser un ESC à moins que vous ne le fassiez simplement comme une expérience d'apprentissage. Pour contrôler correctement le moteur, vous consommez plus de ressources de votre arduino que je ne pourrais l'imaginer. De plus, vous limitez la réactivité du moteur à celle de l'interrogation adc. Je ne penserais pas à utiliser un ESC comme retour, c'est ainsi que cela est censé être fait.
la source
Puisque personne d'autre ne l'a dit - vous ne pourriez pratiquement pas conduire un moteur directement à partir d'un Arduino simplement parce que la puce AVR ne produira pas suffisamment de courant pour fournir des quantités utiles d'énergie.
Donc, à tout le moins, vous envisagez de créer un arrangement de pont en H triphasé (lire: trois `` demi-ponts en H '') pour piloter les courants nécessaires, nécessitant six lignes numériques juste pour faire fonctionner les transistors de commande.
En supposant que ce problème de capacité de disque ait été résolu et que ce n'est pas anodin, vous devrez entrer dans le code de contrôle. Ces moteurs ont des rotors à aimants permanents, vous ne pouvez donc pas simplement tourner aveuglément le champ du stator et obtenir un couple utile. Vous devez connaître l'orientation du rotor afin de maintenir les angles de phase électriques ajustés afin d'obtenir un couple uniforme.
Ainsi, comme d'autres l'ont dit, à moins que vous ne vouliez l'expérience d'apprentissage spécifique, il n'y a aucun déshonneur à acheter un ESC.
la source
Je pense que ce serait un excellent exercice d'apprentissage, mais les ESC utilisent l'EMF arrière pour détecter la rotation, bien que vous puissiez utiliser des capteurs optiques ou magnétiques pour cela. Fondamentalement, vous devez générer 3 phases CA et les activer / désactiver au bon moment.
La vitesse de rotation du champ magnétique doit être adaptée au moteur, c'est-à-dire que si vous voulez accélérer, le champ doit fonctionner un peu plus tôt et plus rapidement. Vous pouvez également casser, en faisant le contraire.
Pour une explication approfondie: http://www.embedded.com/columns/technicalinsights/196701832?_requestid=137540
Pour un travail pratique, obtenez un ESC.
la source
Vous pouvez le piloter directement avec Arduino si, en conduisant, vous ne voulez pas littéralement fournir du courant aux enroulements - tout MCU serait beaucoup trop faible pour cela. En outre, Arduino peut couler mais ne pas générer de courant, mais il vous faudrait les deux pour un moteur sans balais.
Cependant, si vous utilisez un CI de pilote de pont H très simple en plus de l'Arduino, vous pouvez implémenter à peu près toutes les fonctions de l'ESC. En fait, selon l'application, vous n'aurez peut-être même pas besoin d'un E * SC *, ce qui signifie que vous n'aurez peut-être pas besoin d'un contrôle de vitesse en boucle fermée - si la charge n'est pas trop importante, vous pourrez peut-être simplement vous en sortir en faisant simplement confiance au moteur pour répondre en synchronisation avec la mise sous tension de l'enroulement, et le taux des changements de courant d'enroulement proviendrait de l'Arduino. Découvrez ce schéma de commande de moteur sans balais (BLDC) très simple et croquis Arduino que vous pourrez adapter pour entraîner votre moteur. Celui-ci est basé sur le circuit intégré quadruple pont SN754410NE qui est maximisé à 750mA si la mémoire sert.
Le code n'est pas trop trivial et utilise PWM pour une rotation en douceur mais il n'est pas trop difficile d'analyser non plus pour s'adapter à votre application. Le croquis Arduino réel pour le moteur BLDC est ici .
la source