Índice:
- Suprimentos
- Etapa 1: Conhecendo nosso sistema
- Etapa 2: hackear o motor
- Etapa 3: Configurando o Driver
- Etapa 4: Controle do motor
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Sempre quis fazer um robô girar em um ângulo preciso, usando apenas algumas saídas do seu Arduino ou micro: bit? Tudo isso barato? Esse é o instrutível para você! Neste instrutível, veremos como acionar um motor de passo muito barato usando apenas 2 saídas de nosso controlador e exigindo apenas uma fonte de alimentação de 5V!
Tornei isso instrutível depois de me esforçar um pouco para reunir as informações, às vezes tropeçando na desinformação, e queria evitar que outras pessoas passassem pelo mesmo processo.
Mas antes de começar, por que essa restrição?
- Por que 5V: porque quero integrar isso em um robô móvel que funcionará apenas com uma bateria de lítio 3.7 que consigo tirar 5V com um booster.
- Por que usar o A4988 e não o ULN2003 que geralmente vem com o motor 28BYJ? Porque, primeiro, ele requer 4 entradas. Portanto, usar o A4988 nos faz economizar 2 de nossas preciosas saídas de controlador (e se você gosta de trabalhar com o micro: pouco como eu, então essas saídas são preciosas …)! Mas tem mais! Ser capaz de acionar o motor apenas dando os passos como impulsos elevados, nos dá a possibilidade de acionar o motor com um simples PWM. Fixando o ciclo de trabalho em 50%, alterar a frequência do PWM irá alterar a velocidade de rotação do motor. Por que isso é ótimo? Porque se você quiser definir a velocidade do meu motor e depois continuar controlando outras coisas com meu Arduino ou micro: bit, então você pode simplesmente definir meu PWM e esquecê-lo, o que tornará seu código muito mais legível e sua vida muito mais fácil (por exemplo, se você deseja construir um robô como este).
Então vamos começar !
Suprimentos
Aqui está o que você precisa para este instrutível:
- 1x motor de passo 28BYJ
- 1x driver A4988
- 1 placa de ensaio ou placa de prototipagem, um capacitor e alguns fios
- Micro: bit e placa de extensão ou Arduino
- Fonte de alimentação de 5 V (+ 3,3 V se você usar Micro: bit). Para isso usei uma bateria de lítio 18650 e uma blindagem de bateria.
- 1x multímetro
Etapa 1: Conhecendo nosso sistema
A primeira coisa que eu recomendaria para começar seria aprender mais sobre motores de passo e o driver A4988. Ei, mas por que precisamos desse driver? Podemos controlar um motor de passo sem um driver? A resposta é não. Placas como Micro: bit e Arduino são boas no processamento de informações, mas não em fornecer muita corrente, e você precisa de corrente para fazer um movimento do motor de passo. Para saber mais sobre como o motor e o driver funcionam, esta é a referência que eu recomendo. É sintético, mas também contém a maior parte das informações de que você precisa para a fiação.
Mas espere antes de tentar conectar qualquer coisa! O 28BYJ está adaptado para o A4988? Se você fizer uma pesquisa rápida, verá que este motor raramente vem com o A4988 como driver. Se você ler atentamente a referência anterior, verá o porquê: nosso motor de passo é um motor unipolar, enquanto o A4988 é projetado para acionar motores bipolares, então teremos que modificar um pouco nosso motor!
Etapa 2: hackear o motor
Para tornar seus motores compatíveis com o driver do motor, basta retirar o fio vermelho do conector branco. Para fazer corte o conector para retirar o fio vermelho e corte o fio vermelho do motor. Em seguida, troque o cabo amarelo e rosa no conector. Guarde o fio vermelho e o conector para a próxima etapa!
Para tirar um cabo do conector empurre o fio que deseja remover no conector e depois empurre a broca metálica visível no conector com uma ferramenta afiada (acima está uma foto onde eu faço isso com minha faca favorita, a opinel!) e, finalmente, puxe e, eventualmente, a coisa toda deve sair como na imagem acima. A última imagem mostra como o conector deve ficar no final dessas modificações: a ordem do cabo no conector deve ser laranja / rosa / amarelo / azul.
(PS: online você encontrará alguns tutoriais indicando que você tem que dessoldar o fio vermelho do motor e depois riscar a placa de circuito impresso, esqueça isso, isso não é necessário. Inútil?)
Etapa 3: Configurando o Driver
Agora … hora de acionar este motor com o driver? Ainda não, desculpe! Você vê o parafuso na placa A4988? Bem, teremos que mexer com isso. Este parafuso basicamente permite que você defina a quantidade de corrente que passará pelas bobinas do seu motor. Em nosso caso, embora nossa fonte de alimentação forneça 5 V e nossas bobinas no motor tenham uma resistência de 50 Ohms, nossa corrente não será mais do que 100 mA, que deve ser suportada pelo motor para que você possa pular esta etapa. No entanto, se você for como eu e gostaria que seu motor recebesse apenas a corrente necessária, siga em frente.
Portanto, para configurar o driver, siga o Método 2 deste artigo com essas adaptações (como mostra a imagem acima)
- Use os 5 V da blindagem da bateria para a lógica e a entrada de alimentação do motor (diz-se que o VMOT precisa de mais de 8 V, mas funciona 5 V!). Os 2 pinos GND da placa estão conectados, portanto, não há necessidade de conectá-los ao aterramento da bateria.
- Conecte os pinos STEP e DIR ao 5V também (não ao Arduino, como mostrado no artigo referenciado)
- Ao configurar o multímetro, configurei a corrente para 50mA, o que foi o suficiente para acionar meus motores em meio-passos (mais sobre isso na próxima etapa). Para conectar meu multímetro para medir a corrente na bobina do motor, como vocês podem ver na imagem acima, desliguei o fio amarelo do conector e coloquei o fio vermelho, para que eu pudesse colocar meu multímetro do vermelho para o fio amarelo para medir a corrente.
Etapa 4: Controle do motor
É isso, estamos quase prontos para fazer nosso motor girar. A única coisa a fazer é:
- remover nosso multímetro de nosso sistema, se ainda não o tiver feito,
- conecte MS1 a 5V que fará o driver usar meio-passo (tive problemas para fazer o robô girar com passos completos em 5V. Mas como parte do meu objetivo era fazer tudo rodar em 5V eu aceitei sacrificar um pouco a velocidade e para obter alguma precisão),
- fornecer os pinos STEP e DIR com o que queremos de nosso controlador.
Então: se você deseja controlar o motor usando o Arduino, basta seguir o artigo aqui onde você encontrará um código de amostra. Se quiser controlar com o micro: bit fica comigo mais um pouco.
Micro: bit, como Arduino, vem com GPIOs. Portanto, uma vez que o ligamos (com 3,3 V!), Podemos programá-lo para a saída STEP e DIR. Embora pareça haver muitas entradas e saídas, esteja avisado que, na verdade, muitas delas já estão reservadas para alguns outros fins. Você pode aprender mais sobre isso neste artigo. Você verá neste artigo que, na verdade, muitas das entradas / saídas são compartilhadas com o monitor e, portanto, se quiser usá-las, será necessário desligar o monitor. Mas não vamos desligar o display! Então, quais pinos podemos usar? Vou usar os pinos 2 e 8 porque não vou usar os pads (pino 2).
Conecte o pino 2 do micro: bit para STEP, pino 8 para DIR, carregue o programa anexado usando seu editor micro: python favorito (eu usei mu-editor). Este programa basicamente define um PWM no pino 2 com um período de 1 milissegundo (e um ciclo de trabalho de 50%), e seu motor deve estar girando. Defina o pino 8 como 0 ou 1 para fazê-lo virar de um jeito ou de outro e altere o período para fazê-lo girar na velocidade desejada (contanto que você não queira que vá muito rápido … para mim, um pulso a cada milissegundo estava próximo para a velocidade máxima que eu poderia alcançar).
Para tornar as coisas um pouco mais compactas e embarcar facilmente em um robô móvel, fiz uma pequena prancha. O tabuleiro é mostrado na imagem acima. Na imagem há um fio roxo indo do VMOT ao VDD que está escondido na sombra. Além disso, o fio amarelo que vai de SLP para RST na verdade não está soldado, eu apenas o coloquei lá para representar a solda que coloquei na parte de trás da placa para conectar esses 2 pinos. Observação: o dissipador de calor normalmente não é necessário com tal sistema, pois desenhamos muito, muito menos do que 1A.
É isso, espero que este instrutível ajude muitos de vocês a aproveitar a potência do motor de passo em seus projetos.
Recomendado:
Como usar o motor de passo 28BYJ-48 com 3 botões: 5 etapas
Como usar o motor de passo 28BYJ-48 com 3 botões: Você deseja controlar seu motor de passo usando botões? Isso pode fazer no sentido horário, anti-horário e, em seguida, a função de parada? Então este vídeo é para você
Motor de passo controlado por motor de passo sem microcontrolador !: 6 etapas
Motor de passo controlado por motor de passo sem microcontrolador !: Neste instrutivo rápido, faremos um controlador de motor de passo simples usando um motor de passo. Este projeto não requer circuitos complexos ou um microcontrolador. Então, sem mais delongas, vamos começar
Motor de passo controlado por motor de passo sem microcontrolador (V2): 9 etapas (com imagens)
Motor de passo controlado por motor de passo sem microcontrolador (V2): Em um dos meus Instructables anteriores, mostrei como controlar um motor de passo usando um motor de passo sem um microcontrolador. Foi um projeto rápido e divertido, mas veio com dois problemas que serão resolvidos neste Instructable. Então, sagacidade
Locomotiva modelo com motor de passo controlado - Motor de passo como codificador giratório: 11 etapas (com imagens)
Locomotiva modelo com motor de passo controlado | Motor de passo como codificador giratório: Em um dos instrutíveis anteriores, aprendemos como usar um motor de passo como codificador giratório. Neste projeto, agora usaremos aquele motor de passo girado em codificador rotativo para controlar um modelo de locomotiva usando um microcontrolador Arduino. Então, sem fu
Motor de passo controlado por motor de passo - Motor de passo como codificador giratório: 11 etapas (com imagens)
Motor de passo controlado por motor de passo | Motor de passo como codificador rotativo: Você tem alguns motores de passo por aí e quer fazer alguma coisa? Neste Instructable, vamos usar um motor de passo como um codificador rotativo para controlar a posição de outro motor de passo usando um microcontrolador Arduino. Então, sem mais delongas, vamos