Como dirigir motor sem escova com Arduino?


28

É possível dirigir um motor sem escova diretamente com o Arduino? Ou devo reverter o controle de um ESC sem motor com pulsos PWM?


1
Talvez você possa obter um chip de driver de um reprodutor de DVD / CD-ROM antigo.
Lars

Respostas:


10

Você definitivamente deve usar o ESC. Os motores sem escova funcionam melhor quando acionados com uma onda senoidal (ou o mais próximo possível de uma onda senoidal). Eles também exigem um conjunto de sinais bastante preciso e complicado. Gerar as formas de onda e o tempo adequados a partir de um arduino seria difícil e, a menos que você realmente precise, provavelmente não vale a pena. Você sempre pode controlar o ESC a partir do seu arduino, o que forneceria controle programático, além da eficiência e potência do ESC.


nitpick: De acordo com a Wikipedia ( en.wikipedia.org/wiki/brushless_DC_electric_motor ), os motores BLDC são otimizados para funcionarem melhor quando acionados por CC comutada: totalmente positivo, não acionado e totalmente negativo. Os motores CA de ímã permanente são otimizados para funcionar melhor quando acionados por uma onda senoidal; essa é a única diferença significativa entre eles. Concordo com a sua conclusão: provavelmente vale a pena usar um ESC pronto para uso em vez de desenvolver você mesmo.
davidcary

4
O controlador em um BLCD poderia muito bem usar o mesmo atmega que um arduino; então a vantagem é mais entregar o problema dos detalhes a outra pessoa para resolver; e entregar a tarefa de comutação de baixo nível para deixar o atmega do arduino livre para tarefas de nível superior.
Chris Stratton

Os motores BLDC usam acionamento de onda essencialmente quadrada nas bobinas. No lado do usuário do controlador (ESC), eles usam alimentação de energia CC, mais os sinais de controle que o ESC exige. Ondas senoidais não aparecem.
Russell McMahon

13

Na verdade, às vezes você DEVE criar seu próprio ESC. Os ESC vendidos no mercado são "comercializados" e têm seus próprios códigos de controle para itens de RC, como aviões, helicópteros, carros ...

Por exemplo, às vezes você precisa ter um freio regenerativo de lado duplo. De trás para parar e de frente para parar. Não há RC RC que tenha esse recurso. Eles têm apenas um freio regenerativo da frente para parar ou nenhum. Ou você pode precisar de um BLDC de controle de sensor, mas existem apenas alguns ESCs com sensor no mercado, e eles só têm (o mesmo para ESCs sem sensor comuns) recursos incorporados que você não precisa e não possui alguns dos que absolutamente precisa !

Projetar seu próprio ESC é uma escolha perfeita e muito mais barata, mesmo do que os US $ 10 mais baratos com ENORME poder.

É verdade que o código de controle e o hardware podem ser dolorosos, mas após algumas leituras, é apenas um brinquedo.

Há um bom tutorial aqui sobre como fazer um controlador BLDC com um arduino usando 6 mosfets e outras coisas que você pode encontrar facilmente no site da Jameco (muito bom). Aqui é onde eu compro minhas coisas por barato, mas o spurkfun pode ser uma boa alternativa se você não encontra alguns sensores como giroscópios, etc.

http://www.instructables.com/id/BLDC-Motor-Control-with-Arduino-salvaged-HD-motor/

guia muito agradável e fácil de seguir. Você pode produzir QUALQUER potência de ESCs baixos a ultra altos usando este guia e quase qualquer combinação de freio regenerador, usando resistência, enrolamentos de motor ou carregador de bateria ...

Usar mosfets é apenas um brinquedo, você pode fazer quase qualquer coisa.

O problema é que você não pode controlar esse mosfet de maneira muito eficiente com um MCU como uma placa de arduio que produz apenas 5V e a tensão de porta do mosfet para tensões médias é muito maior no intervalo de 16 a 30V facilmente. Portanto, você deve usar outro tansisor para aumentar a tensão do arduino.

Boa sorte.


6

Eu andei de um lado para o outro por cerca de 30 minutos. Eu acho que você provavelmente deseja usar um ESC, a menos que esteja apenas fazendo isso como uma experiência de aprendizado. Para controlar corretamente o motor, seria necessário mais recursos do seu arduino do que eu poderia imaginar justificando. Além disso, você limitaria a capacidade de resposta do motor à da pesquisa adc. Eu não pensaria em usar um ESC como revertendo, é assim que deve ser feito.


4

Como ninguém mais disse isso - você não seria capaz de praticamente dirigir um motor diretamente de um arduino, simplesmente porque o chip AVR não gera corrente suficiente para fornecer quantidades úteis de energia.

Portanto, no mínimo, você estaria pensando em criar um arranjo de ponte H trifásica (leia-se: três 'pontes meio-H') para acionar as correntes necessárias, exigindo seis linhas digitais apenas para operar os transistores de acionamento.

Supondo que você tenha resolvido esse problema de capacidade da unidade e que isso não seja trivial, você precisará entrar no código de controle. Esses motores possuem rotores de ímã permanente, portanto você não pode simplesmente girar cegamente o campo do estator e obter torque útil. Você precisa conhecer a orientação do rotor para manter os ângulos da fase elétrica ajustados para obter um torque uniforme.

Assim, como outros já disseram, a menos que você queira uma experiência de aprendizado específica, não há desonra em comprar um ESC.


3

Eu acho que seria um ótimo exercício de aprendizado, mas os ESCs usam EMF de volta para detectar a rotação, embora você possa usar sensores ópticos ou magnéticos para isso. Basicamente, você precisa gerar 3 fases CA e ativá-las / desativá-las no momento certo.

A velocidade de rotação do campo magnético precisa ser adaptada ao motor, ou seja, se você deseja acelerar, o campo precisa correr um pouco mais cedo e mais rápido. Você também pode quebrar, fazendo o oposto.

Para uma explicação completa: http://www.embedded.com/columns/technicalinsights/196701832?_requestid=137540

Para um trabalho prático, obtenha um ESC.


Primeiro pensei que a aceleração e a desaceleração eram realizadas da maneira que você descreve, liderando e atrasando o campo. mas então eu li que a aceleração é determinada principalmente pela tensão (embora eu não possa ver como isso poderia desacelerar). Eu me sinto um pouco confuso. alguma das abordagens funciona para aceleração? algum motivo para preferir um ao outro ou misturá-los? obrigado!
Necromancer

2

Você pode conduzi-lo diretamente com o Arduino se, ao dirigir, você não quer dizer literalmente fornecer corrente para os enrolamentos - qualquer MCU seria muito fraco para isso. Além disso, o Arduino pode afundar, mas não fornecer corrente, mas você precisaria de ambos para um motor sem escova.

No entanto, se você usar um IC de driver de ponte H muito simples, além do Arduino, poderá implementar praticamente todas as funções do ESC. De fato, dependendo da aplicação, você pode nem precisar de um E * SC *, o que significa que você pode não precisar de um controle de velocidade em circuito fechado - se a carga não for muito grande, você poderá simplesmente se safar confiando no motor para responder em sincronia com a energização do enrolamento, e a taxa das mudanças da corrente do enrolamento viria do Arduino. Confira este esquema simples de controle de motor sem escova (BLDC) e o Arduino que você pode adaptar para acionar seu motor. Essa é baseada no IC da ponte H quadrangular SN754410NE, que é maximizado em 750mA se a memória servir.

O código não é muito trivial e faz uso do PWM para uma rotação suave, mas também não é muito difícil de analisar para se adaptar ao seu aplicativo. O esboço real do Arduino para o motor BLDC está aqui .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.