Índice:
- Etapa 1: Biblioteca StepDriver
- Etapa 2: Variáveis Globais
- Etapa 3: Funções - Configurando os pinos do driver
- Etapa 4: Funções - Funções básicas do driver
- Etapa 5: Funções - Configuração da etapa do motor
- Etapa 6: Funções - Configurando o Modo de Etapa do Motor
- Etapa 7: Funções - Definir as chaves limite
- Etapa 8: Funções - Leitura das Chaves Limite
- Etapa 9: Funções - Configuração de movimento
- Etapa 10: Funções - Função de movimento
- Etapa 11: Funções - Função de movimento - Variáveis
- Etapa 12: Funções - Função de movimento - Aceleração
- Etapa 13: Funções - Função de movimento - Velocidade contínua
- Etapa 14: Funções - Função de movimento - Desaceleração
- Etapa 15: Funções - Função de movimento - Velocidade contínua
- Etapa 16: Funções - Função Mover - Virar Viradas
- Etapa 17: Gráfico de movimento - Velocidade de posição
- Etapa 18: Gráfico de movimento - posição vs. Posição
- Etapa 19: Gráfico de movimento - Velocidade vs. Momento
Vídeo: Arduino: Lib de precisão para motor de passo: 19 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
Hoje, vou mostrar a vocês uma biblioteca para um driver de motor passo a passo completo com interruptores de limite e movimento do motor com aceleração e micro passo. Esta Lib, que funciona tanto no Arduino Uno quanto no Arduino Mega, permite mover os motores com base não apenas no número de passos, mas também em milímetros. E é muito preciso também.
Uma característica importante desta biblioteca é que ela permite que você construa sua própria máquina CNC, que não é necessariamente apenas o X, Y, mas também um switch de seção, por exemplo, porque não é um GRBL pronto, mas sim a programação que permite que você faça a máquina ideal para você.
No entanto, a declaração a seguir é um detalhe importante! Este vídeo é apenas para quem já está acostumado a programar. Se você não está familiarizado com a programação do Arduino, deve primeiro assistir a outros vídeos introdutórios em meu canal. Isso ocorre porque estou discutindo um assunto avançado neste vídeo específico e explicando com mais detalhes a Lib usada no vídeo: Motor de passo com aceleração e fim de curso.
Etapa 1: Biblioteca StepDriver
Esta biblioteca cobre os três tipos de driver mais comuns no mercado: A4988, DRV8825 e TB6600. Ele configura os pinos dos drivers, permitindo que eles façam o reset e colocação no modo Dormir, além de ativar e desativar as saídas do motor atuando no pino Habilitar. Ele também define as entradas dos pinos de micro-etapa do driver e limita os interruptores e seu nível de ativação (alto ou baixo). Também possui código de movimento do motor com aceleração contínua em mm / s², velocidade máxima em mm / s e velocidade mínima em mm / s.
Para quem assistiu às partes 1 e 2 do vídeo Step Motor with Acceleration e End of Stroke, baixe esta nova biblioteca disponível hoje, pois fiz algumas alterações naquele primeiro arquivo para facilitar o seu uso.
Etapa 2: Variáveis Globais
Eu mostro exatamente para que serve cada uma das variáveis globais.
Etapa 3: Funções - Configurando os pinos do driver
Aqui, descrevo alguns métodos.
Eu defino a configuração Pinout e os pinos do Arduino como saída.
Etapa 4: Funções - Funções básicas do driver
Nesta parte, trabalhamos com a configuração do driver e suas funções básicas.
Etapa 5: Funções - Configuração da etapa do motor
Nesta etapa do código, configuramos a quantidade de etapas por milímetro que o motor deve executar.
Etapa 6: Funções - Configurando o Modo de Etapa do Motor
Esta tabela mostra as configurações para o modo de passo do motor. Aqui estão alguns exemplos.
Etapa 7: Funções - Definir as chaves limite
Aqui, eu tenho que ler os valores inteiros e booleanos. É necessário definir se a chave ativa está para cima ou para baixo, enquanto define o endpin de limite máximo e mínimo.
Etapa 8: Funções - Leitura das Chaves Limite
Essa parte é diferente daquela no Lib que disponibilizei na semana passada. Por que eu mudei? Bem, criei o eRead para substituir alguns outros. Aqui, o eRead lerá o LVL, o digitalRead (pino) e retornará TRUE. Tudo isso precisa ser executado em alta. O seguinte trabalho com a chave ativa será de nível baixo. Vou usá-lo aqui para mostrar a tabela "Verdade".
Na imagem do código, coloquei um diagrama que vai ajudar no entendimento de que, nesta parte do código-fonte, estou caminhando para Ascendente e ainda não acertei a tecla de fim de curso.
Agora, nesta imagem do código bool DRV8825, mostro o motor ainda se movendo na direção do crescimento. No entanto, o interruptor de limite máximo ativado. O mecanismo, então, deve parar o movimento.
Por último, mostro o mesmo movimento, mas na direção oposta.
Aqui, você já tem o botão de fim de curso ativado.
Etapa 9: Funções - Configuração de movimento
A principal utilidade do método motionConfig é converter milímetros por segundo (uma medida usada em máquinas CNC) em passos, a fim de atender o controlador de um motor de passo. É nesta parte, portanto, que instanciamos as variáveis para entender os passos e não os milímetros.
Etapa 10: Funções - Função de movimento
Nesta etapa, tratamos o comando que move uma etapa na direção desejada em um período em microssegundos. Também definimos o pino de direção do driver, o tempo de atraso e a direção dos interruptores de limite.
Etapa 11: Funções - Função de movimento - Variáveis
Nesta parte, configuramos todas as variáveis que envolvem períodos de velocidade máxima e mínima, distância da trajetória e passos necessários para interromper a trajetória, entre outras.
Etapa 12: Funções - Função de movimento - Aceleração
Apresento aqui alguns detalhes de como chegamos aos dados de aceleração, que foram calculados através da equação de Torricelli, pois leva em consideração os espaços para trabalhar a aceleração e não o tempo. Mas, é importante aqui entender que toda essa equação é apenas sobre uma linha de código.
Identificamos um trapézio na imagem acima, porque os RPMs iniciais são ruins para a maioria dos motores de passo. O mesmo acontece com a desaceleração. Por isso, visualizamos um trapézio no período entre a aceleração e a desaceleração.
Etapa 13: Funções - Função de movimento - Velocidade contínua
Aqui mantemos o número de passos usados na aceleração, continuamos em velocidade contínua, e mantemos com a velocidade máxima, que pode ser vista na imagem abaixo.
Etapa 14: Funções - Função de movimento - Desaceleração
Aqui temos outra equação, desta vez com um valor de aceleração negativo. Também é exibido em uma linha de código, que representa, na imagem abaixo, o retângulo denominado Desaceleração.
Etapa 15: Funções - Função de movimento - Velocidade contínua
Retornamos à velocidade contínua para trabalhar a segunda metade da trajetória, conforme visto a seguir.
Etapa 16: Funções - Função Mover - Virar Viradas
Nesta parte, movemos o motor em um determinado número de voltas na direção desejada, convertendo o número de voltas em milímetros. Finalmente, movemos o motor na direção solicitada.
Etapa 17: Gráfico de movimento - Velocidade de posição
Neste gráfico, tenho dados que foram extraídos da equação que usamos na parte de Aceleração. Peguei os valores e joguei no serial do Arduino, e fui disso para o Excel, o que resultou nesta tabela. Esta tabela mostra o andamento da etapa.
Etapa 18: Gráfico de movimento - posição vs. Posição
Aqui, pegamos a posição, em etapas, e a velocidade e a convertemos em período, em microssegundos. Notamos nesta etapa que o período é inversamente proporcional à velocidade.
Etapa 19: Gráfico de movimento - Velocidade vs. Momento
Por fim, temos a velocidade em função do instante e, por isso, temos uma linha reta, pois é a velocidade em função do tempo.
Recomendado:
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
Levitação acústica com Arduino Uno passo a passo (8 etapas): 8 etapas
Levitação acústica com Arduino Uno passo a passo (8 etapas): transdutores de som ultrassônico L298N fonte de alimentação do adaptador DC fêmea com um pino DC macho Arduino UNOBreadboardComo isso funciona: primeiro, você carrega o código para Arduino Uno (é um microcontrolador equipado com digital e portas analógicas para converter código (C ++)
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