Este é o primeiro tópico do meu Blog ! Irei divulgar tudo que eu for aprendendo sobre o Driver de Motor de Passo DRV8825.
Translation: If you want to translate this tutorial into your language, I suggest using the Google Chrome browser. Right-click – it will be translated into your language. If you have questions, you can post in any language for me!
Já criei inúmeros tutoriais no Laboratório de Garagem. E agora estou inaugurando o meu Blog. Espero que gostem ! Estou aprendendo a usá-lo. Se perceberem algum problema, favor me avisar. Obrigado.
Alguns Tutoriais no Lab de Garagem:
Arduino + Driver A4988 + Motor de Passo NEMA 17
Arduino + Driver ULN2003 + Motor de Passo 28BYJ-48
Essas são as primeiras fotos do Módulo Driver DRV8825. Faço sempre essa montagem fotográfica , pois facilita o desenho do diagrama da placa. Clique na foto para acessar o Álbum no FLICKR ou clique na seta para visualizar em sequência.
Conhecendo o Chip DRV8825
O chip que faz o controle do motor é o DRV8825 fabricado pela Texas Instruments. Usa uma tecnologia bem avançada e apesar do pequeno tamanho, suporta correntes de até 2,5 Ampéres (com dissipador de calor). A faixa de tensão de alimentação vai de 8,2V até 45 V !
Esse driver pode ser usado somente com Motores de Passo Bipolares.
Permite o modo de micropasso de 1/2, 1/4, 1/8, 1/16 e também 1/32.
O bloco de saída possui pontes H formadas por transistores Mosfet com baixa resistência direta ( 0,2 Ω).
Os pinos de controle do Driver ( Passo, Direção, Modos) podem ser acionados com níveis de tensão de 3,3V ou 5V ( muito bom ! Serve para Arduino, Raspberry Pi, etc) .
A frequência interna PWM usada no controle de corrente de saída é de 30 KHz (fixa).
A frequência máxima usada no pino Passo (Step) é de 250 KHz (T = 4 µs).
Funções de desligamento internos são fornecidos para:
– Desativação térmica (TSD), sobrecorrente, curto-circuito, bloqueio de sub tensão e sobre temperatura.
As condições de falha são indicados através do pino nFault.
Esse é o link da folha de especificações do Chip DRV8825 .
E esse é o diagrama interno em blocos do DRV8825 :
Pinos do Chip DRV8255:
– STEP (passo) – um sinal com transição de baixo para alto avança um passo (pulldown interno),
– DIR – permite a alteração no sentido da rotação do motor (pulldown interno),
– nENBL– um sinal baixo ativa os drivers do motor (pulldown interno),
– nRESET – um sinal baixo dá um reset no chip, desativando todas os drivers de saída (pulldown interno),
– nSLEEP (dormir) – esse pino quando nível baixo, desabilita alguns circuitos internos para economizar energia (pulldown interno),
– nFAULT – esse pino de saída quando nível baixo, indica alguma falha no chip como corrente ou temperatura excessiva,
– MODE 0, MODE 1 e MODE 2 – são entradas para selecionar o modo da sequência dos passos (micro stepping) de acordo com essa tabela (pulldown interno):
– AOUT 1, AOUT 2, BOUT 1 e BOUT 2– são os pinos de saída dos circuitos drivers, conectados diretamente nas bobinas dos motores,
– ISENA e ISENB – são os pinos conectados nos resistores para controle de corrente das duas pontes Hs.
– VM – esse é o pino de alimentação do Motor / Driver ( 8,2V até 45 V). A fonte de alimentação deverá fornecer a corrente suficiente para o motor (max 2,5A).
–DECAY – Esse pino serve para a seleção do modo de Decadência do sinal nas saídas.
(obs : nesse módulo DRV8825, esse pino esta isolado)
baixo – decadência lenta ,
isolado – decadência mista,
alto – decadência rápida.
Todos os outros pinos servem para alimentação, regulador de tensão interno, referência de tensão, etc.
Módulo Driver DRV8825 da Pololu
Esse módulo Driver de Motor de Passo DRV8825 foi desenvolvido pela POLOLU, mas percebo que ele tem sido clonado pelos chineses.
Esse é o site do DRV8825 da Pololu, onde tem todas informações e tutorial :
DRV8825 Stepper Motor Driver Carrier – POLOLU
Esse é o diagrama do circuito interno do módulo DRV8825 (fonte: Pololu)
Tamanho do módulo = 2,0 x 1,5 cm.
Veja que para o DRV8825, os resistores R Sense são de 0,10 Ω.
Nas fotos do módulo, eu fiz a edição com a identificação dos pinos ( em pé e deitado) :
Recomendações Importantes antes de usar o módulo DRV8825 !
(para evitar de danificá-lo)
– Esse módulo foi feito para motores de passo Bipolares, não use um motor unipolar. ( exceto se o motor Unipolar puder ser usado no modo Bipolar)
– Antes de fazer a conexão dos fios das bobinas do motor, certifique-se que a identificação dos fios esta correta. Recomendo que meça o valor da resistência das bobinas.
– Use um motor que se encaixe nas especificações do módulo – tensão máxima 45V e corrente máxima de 2,5 A.
– Conecte os fios das bobinas, antes de alimentar o módulo.
– Não desconecte os fios da bobina, quando o módulo estiver energizado.
– Se o módulo tiver aquecendo muito, cole o dissipador no chip.
Circuito Arduino + DRV8825 + Motor de Passo
Baseando-me na montagem que eu já havia feito com o Driver A4988 (veja link no início), fiz esse diagrama do esquema do circuito de teste do DRV8825 com um Arduino Nano ( no diagrama esta como Uno) . Prefiro usar o Arduino Nano, pois ele pode ser inserido em um Protoboard. Lembrando que o motor de passo a ser usado deve ser Bipolar. Pode ser usado motor com quatro fios ou mais, desde que no modo bipolar série ou bipolar paralelo, respeitando a corrente máxima do motor. A tensão da fonte no meu circuito é de 12V. Use um capacitor (C1) de no mínimo 100 uF para filtrar ruídos na alimentação do motor.
O Módulo Driver DRV8825 tem um potênciometro (POT) de ajuste de corrente máxima. Se a corrente ultrapassar o limite, o chip é desativado para proteção dos circuitos.
Não se esqueça de conectar o terra (GND) do Arduino no terra do módulo (GND).
Criei um Sketch para permitir o teste de todos os pinos de controle / funções do Módulo DRV8825. Usei oito portas digitais do Arduino. A designação de cada porta foi escolha minha. Nada impede que você utilize outras portas, desde que altere as ligações no circuito e no seu sketch.
Link do diagrama DRV8825 + Arduino
Ajuste de corrente do Módulo DRV8825
Antes de fazer os testes no Módulo DRV8825, recomendo que faça o ajuste de corrente para se adequar ao motor de passo. Nas especificações do motor, poderá encontrar a corrente ideal para ser usada. Durante a fase de testes do circuito, não recomendo que ajuste para a corrente máxima, pois qualquer prendimento no motor fará aumentar a corrente que passa por ele. E assim poderá sobrecarregar o mesmo. Depois que os testes forem realizados com sucesso, ajuste para a corrente especificada para o motor.
O ajuste de corrente é feito através de um potenciômetro (POT). Existe uma fórmula no Datasheet do DRV8825 para se calcular a corrente do driver. O Chip DRV8825 tem um regulador interno de tensão de 3,3V. Essa tensão é aplicada no POT e fazendo o ajuste, pode-se variar a tensão de Referência VREF entre 0 e 3,3V. Essa tensão VREF determina a corrente no motor.
I chopp = VREF / 5 x R Sense
( como já havia informado, no meu módulo DRV8825, R Sense tem o valor de 0,10 Ω)
Portanto ,
I chopp = VREF / 5 x 0,10 = VREF / 0,50
Exemplos :
Para VREF = 1,25V I chopp = 1,25 / 0,50 = 2,5 A (máxima corrente !)
Para VREF = 1,0V I chopp = 1,0 / 0,50 = 2,0 A
Para VREF = 0,5V I chopp = 0,5 / 0,50 = 1,0 A (esse foi o ajuste do meu módulo)
Para facilitar a medição de VREF , aplique a ponta de prova Positivo sobre o POT como na foto. É claro, conecte o Negativo do Voltímetro no terra do módulo (GND). E gire suavemente o POT com uma pequena chave de fenda ( de relojoeiro).
Girando no sentido do relógio – diminui VREF
Girando no sentido anti-horário – aumenta VREF
Mas , importante – para um ajuste adequado nas condições que o Driver deva estar, eu fiz um pequeno programa Sketch que configura o DRV8825 para o modo de passo completo ( FULL).
// Controle de Motor de Passo Bipolar com Modulo driver DRV8825 // Ajuste de corrente // https://jgamblog.wordpress.com/2016/09/24/tutorial-arduino-drv8825-motor-de-passo/ // Modulo DRV8825 / Arduino Nano / IDE 1.6.7 // OBS: Motor Unipolar 6 fios configurado como Bipolar // Gustavo Murta 26/set/2016 // Definições das Portas Digitais do Arduino int RST = 8; // Porta digital D08 - reset do DRV8825 int SLP = 9; // Porta digital D09 - dormir (sleep) DRV8825 int ENA = 7; // Porta digital D07 - ativa (enable) DRV8825 int M0 = 4; // Porta digital D04 - M0 do DRV8825 int M1 = 5; // Porta digital D05 - M1 do DRV8825 int M2 = 6; // Porta digital D06 - M2 do DRV8825 int DIR = 3; // Porta digital D03 - direção (direction) do DRV8825 int STP = 2; // Porta digital D02 - passo(step) do DRV8825 void setup() { Serial.begin(9600); DDRD = DDRD | B11111100; // Configura Portas D02 até D07 como saída disa_DRV8825(); // Desativa as saidas DRV8825 DDRB = 0x0F; // Configura Portas D08,D09,D10 e D11 como saída digitalWrite(SLP, HIGH); // Desativa modo sleep do DRV8825 rst_DRV8825(); // Reseta o chip DRV8825 digitalWrite(ENA, LOW); // Ativa as saidas DRV8825 ajuste_DRV8825(); // Ajuste de corrente DRV8825 } void rst_DRV8825() { digitalWrite(RST, LOW); // Realiza o reset do DRV8825 delay (1); // Atraso de 1 milisegundo digitalWrite(RST, HIGH); // Libera o reset do DRV8825 delay (10); // Atraso de 10 milisegundos } void disa_DRV8825() { digitalWrite(ENA, HIGH); // Desativa o chip DRV8825 delay (10); // Atraso de 10 milisegundos } void ena_DRV8825() { digitalWrite(ENA, LOW); // Ativa o chip DRV8825 delay (10); // Atraso de 10 milisegundos } void ajuste_DRV8825() { FULL(); // Selecione o Modo do Passo Serial.println(" Ajuste a corrente no POT do DRV8825 "); } void FULL() { digitalWrite(M0, LOW); // Configura modo Passo completo (Full step) digitalWrite(M1, LOW); digitalWrite(M2, LOW); Serial.println(" Passo Completo "); } void loop() { }
Montagem no Protoboard – Arduino + DRV8825
Essa é a montagem de teste do Módulo DRV8825 com o Arduino Nano. Usei um motor de passo Unipolar conectado no modo Bipolar. A tensão do motor é 5V e a corrente é 1A. Cada passo tem 1,8 °, portanto para dar uma volta são necessários 200 passos. Eu montei um resistor de 1,0 Ω em série com o terminal positivo da fonte, para que eu possa medir a corrente usada na montagem. ( V = R x I ) .
Esse é o Sketch de teste. Fiz ele com propósitos didáticos. Usei uma programação estruturada com várias funções. O Sketch permite o uso de todos os modos de passo : Full, Half, Micro-passo de 1/4, Micro-passo de 1/8, Micro-passo de 1/16 e Micro-passo de 1/32. Permite também que configure a frequência dos pulsos (passos), a quantidade de passos, o sentido de rotação, etc.
// Controle de Motor de Passo Bipolar com Modulo driver DRV8825 // https://jgamblog.wordpress.com/2016/09/24/tutorial-arduino-drv8825-motor-de-passo/ // Modulo DRV8825 / Arduino Nano / IDE 1.6.7 // OBS: Motor Unipolar 6 fios configurado como Bipolar // Gustavo Murta 26/set/2016 // Definições das Portas Digitais do Arduino int RST = 8; // Porta digital D08 - reset do DRV8825 int SLP = 9; // Porta digital D09 - dormir (sleep) DRV8825 int ENA = 7; // Porta digital D07 - ativa (enable) DRV8825 int M0 = 4; // Porta digital D04 - M0 do DRV8825 int M1 = 5; // Porta digital D05 - M1 do DRV8825 int M2 = 6; // Porta digital D06 - M2 do DRV8825 int DIR = 3; // Porta digital D03 - direção (direction) do DRV8825 int STP = 2; // Porta digital D02 - passo(step) do DRV8825 int MeioPeriodo = 30; // MeioPeriodo no pulso em microsegundos correcao de +10 ms 1490 float PPS = 200; // Pulsos por segundo boolean sentido = true; // Variavel de sentido int PPR = 200; // Número de passos por volta int Pulsos; // Pulsos para o driver do motor int Voltas; // voltas do motor float RPM; // Rotacoes por minuto void setup() { Serial.begin(9600); DDRD = DDRD | B11111100; // Configura Portas D02 até D07 como saída disa_DRV8825(); // Desativa as saidas DRV8825 FULL(); // Seleciona modo Passo Completo DDRB = 0x0F; // Configura Portas D08,D09,D10 e D11 como saída digitalWrite(SLP, HIGH); // Desativa modo sleep do DRV8825 rst_DRV8825(); // Reseta o chip DRV8825 digitalWrite(ENA, LOW); // Ativa as saidas DRV8825 } void rst_DRV8825() { digitalWrite(RST, LOW); // Realiza o reset do DRV8825 delay (1); // Atraso de 1 milisegundo digitalWrite(RST, HIGH); // Libera o reset do DRV8825 delay (10); // Atraso de 10 milisegundos } void disa_DRV8825() { digitalWrite(ENA, HIGH); // Desativa o chip DRV8825 delay (10); // Atraso de 10 milisegundos } void ena_DRV8825() { digitalWrite(ENA, LOW); // Ativa o chip DRV8825 delay (10); // Atraso de 10 milisegundos } void HOR() // Configura o sentido de rotação do Motor { digitalWrite(DIR, HIGH); // Configura o sentido HORÁRIO Serial.print(" Sentido Horario "); } void AHR() // Configura o sentido de rotação do Motor { digitalWrite(DIR, LOW); // Configura o sentido ANTI-HORÁRIO Serial.print(" Sentido Anti-horario "); } void PASSO() // Pulso do passo do Motor { digitalWrite(STP, LOW); // Pulso nível baixo delayMicroseconds (MeioPeriodo); // MeioPeriodo de X microsegundos digitalWrite(STP, HIGH); // Pulso nível alto delayMicroseconds (MeioPeriodo); // MeioPeriodo de X microsegundos } void Frequencia() // Configura Frequencia dos pulsos { Pulsos = PPR * Voltas; // Quantidade total de Pulsos PPR = pulsos por volta PPS = 1000000 / (2 * MeioPeriodo); // Frequencia Pulsos por segundo RPM = (PPS * 60) / PPR; // Calculo do RPM } void FULL() { PPR = 200; // PPR pulsos por volta digitalWrite(M0, LOW); // Configura modo Passo completo (Full step) digitalWrite(M1, LOW); digitalWrite(M2, LOW); Serial.println(" Passo Completo "); } void HALF() { PPR = 400; // PPR pulsos por volta digitalWrite(M0, HIGH); // Configura modo Meio Passo (Half step) digitalWrite(M1, LOW); digitalWrite(M2, LOW); Serial.println(" Meio Passo "); } void P1_4() { PPR = 800; // PPR pulsos por volta digitalWrite(M0, LOW); // Configura modo Micro Passo 1/4 digitalWrite(M1, HIGH); digitalWrite(M2, LOW); Serial.println(" Micropasso 1/4 "); } void P1_8() { PPR = 1600; // PPR pulsos por volta digitalWrite(M0, HIGH); // Configura modo Micro Passo 1/8 digitalWrite(M1, HIGH); digitalWrite(M2, LOW); Serial.println(" Micropasso 1/8 "); } void P1_16() { PPR = 3200; // PPR pulsos por volta digitalWrite(M0, LOW); // Configura modo Micro Passo 1/16 digitalWrite(M1, LOW); digitalWrite(M2, HIGH); Serial.println(" Micropasso 1/16 "); } void P1_32() { PPR = 6400; // PPR pulsos por volta digitalWrite(M0, HIGH); // Configura modo Micro Passo 1/32 digitalWrite(M1, LOW); digitalWrite(M2, HIGH); Serial.println(" Micropasso 1/32 "); } void TesteMotor() // Gira motor nos dois sentidos { HOR(); Serial.print(" / Voltas = "); Serial.println(Voltas); for (int i = 0; i <= Pulsos; i++) // Incrementa o Contador { PASSO(); // Avança um passo no Motor } disa_DRV8825(); delay (750) ; // Atraso de 750 mseg ena_DRV8825(); AHR(); Serial.print(" / Voltas = "); Serial.println(Voltas); for (int i = 0; i <= Pulsos; i++) // Incrementa o Contador { PASSO(); // Avança um passo no Motor } disa_DRV8825(); delay (750) ; // Atraso de 750 mseg ena_DRV8825(); } void Print_RPM () { Serial.print(" PPR = "); Serial.print(PPR); Serial.print(" / Pulsos = "); Serial.println(Pulsos); Serial.print(" 1/2 T = "); Serial.print(MeioPeriodo); Serial.print(" us / "); Serial.print(" PPS = "); Serial.print(PPS, 2); Serial.print(" / RPM = "); Serial.println(RPM, 2); } void loop() { Serial.println(); Voltas = 8; // Numero de voltas no Motor P1_16(); // Selecione o Modo do Passo FULL() HALF() P1_4() P1_8() P1_16() P1_32() Frequencia(); // Calcula RPM Print_RPM (); // Imprime configuracao TesteMotor(); // Testa o Motor }
Boa tarde, tentei utilizar as instruçoes em um motor de passo retirado de um drive de dvd, porem ele só vibra, acredito que seja algum detalhe no programa, poderia me ajudar?
CurtirCurtir
Oi Claudinei,
“tentei utilizar as instruçoes em um motor de passo retirado de um drive de dvd”.
Que motor é esse? O que controla o deslocamento da cabeça de leitura?
Primeiramente terá que descobrir qual tipo de motor é esse. Use um ohmímetro para identificar as bobinas do motor.
Esse drive só funciona com motor bipolar. Se o motor tiver quatro fases, não vai funcionar.
Sugestões de leitura:
https://blog.eletrogate.com/driver-a4988-motor-de-passo-usando-o-arduino/
https://blog.eletrogate.com/guia-completo-do-motor-de-passo-28byj-48-driver-uln2003/
Atenciosamente,
Gustavo Murta
CurtirCurtir
Este motor é bipolar, possui 4 fios, e já indentifiquei os pares de bobinas, acredito que esteja só vibrando devido a frequência ou velocidade talvez
CurtirCurtir
Claudinei,
Ok, o motor é bipolar, mas com certeza não tem 200 pulsos por volta!
Você terá que descobrir isso. Sugiro que faça testes com 48 pulsos por volta. Ou pesquise mais sobre o motor.
Abaixe a frequencia de uso do motor.Pode ser isso mesmo.
E ajuste a corrente do Driver para o mínimo.
Atenciosamente,
Gustavo Murta
CurtirCurtir
Muito obrigado!
CurtirCurtir
O restante dos valores eu preço alterar também? Além dos 200 pulsos
CurtirCurtir
Duas perguntas
1) Tem um tutorial semelhante para os silentsticks tmc2130 e tmc2208?
2) se meu motor tem corrente maxima de 2.8a, liga-lo com ajuste de 2.5a nao funcionaria?
3) Li em algum lugar que nao devia usar 100% da corrente de toda forma, essa afirmacao esta correta?
CurtirCurtir
Bom dia,
Não tenho tutorial para os drivers tmc2130 e tmc2208. Sugiro que estude os datasheets deles.
Se o seu motor tem corrente de 2.8A recomendo que use um driver adequado. Ou poderá danificar o DRV8825.
Se for usar 100% da corrente, não terá nenhuma sobra para um esforço maior do motor, que exigirá mais corrente nesse caso.
Atenciosamente,
Gustavo Murta
CurtirCurtir
Obrigado por responder. Fui verificar a tensao Vref nos meus drv8825 e ela varia de 0 a 180mV, mais ou menos no meio do giro do trimpot. se eu continuar girando (para qualquer lado) ele zera. Tá correto isso ou meu driver é “chinês”? Pensei que ia ter uma leitura de 0 a 3.3v…
CurtirCurtir
Bruno boa noite,
Creio que você deve estar medindo a Vref em ponto errado.
A tensão deve variar entre 0 e 1,25 V para a máxima corrente do driver.
Para VREF = 1,25V I chopp = 1,25 / 0,50 = 2,5 A (máxima corrente !)
Releia com atenção o procedimento de ajuste de corrente.
Atenciosamente,
Gustavo Murta
CurtirCurtir
A medição está sendo feita com a chave de relojoeiro no trimpot, o positivo encostado nela e o negativo no GND. Na sua foto a ponta de prova esta no trimpot e não encostado na chave… será que é isso?
De toda forma, não seria mais seguro para o leigo fazer a leitura com o driver desconectado, medindo entre o terra e o trimpot mas com escala de resistência? Ver o valor máximo (no meu caso 3,32 é o máximo na escala de 20k e 0,3 na mesma escala é o minimo) e ajustar de acordo (se 3.3v=3.32, entao 1.25v seria por volta de 1.20 na leitura…)?
CurtirCurtir
Bruno, faça o ajuste de corrente seguindo as minha orientações no tutorial.
O ajuste é feito com o motor conectado e o driver energizado.
Atenciosamente,
Gustavo Murta
CurtirCurtir
Solucionado. Descobri que o driver que estava sendo testado (e que era novo) não estava funcionando, por isso a leitura errada da tensão. Fiz o ajuste usando a regra de 3 do potenciômetro (como descrevi na resposta anterior) em outros 2 drivers e, quando energizei, deu a exata tensão de referência conforme calculada. Obrigado pela força!
CurtirCurtir
Bom dia Henrique (Parede de recados).
Você enviou as informações do seu motor como comentário que eu não consigo responder.
Portanto, estou respondendo aqui.
Você não conectou o terra(GND) do módulo ao terra do Arduino! Tem que conectar.
Isso esta bem explícito no tutorial.
Sobre a ligação dos fio do seu motor:
O seu motor tem 6 fios e você deixou os fios branco e amarelo isolados, não é?
Uma bobina tem os fios preto e verde e a outra tem os fios vermelho e azul.
Os fios não podem ficar desencapados dessa forma. Parece que estão em curto.
Tem um fio ligado no pino FLT. Não conecte nada nesse pino.
Atenciosamente,
Gustavo Murta
CurtirCurtir
Boa noite!
Estou tentando restaurar uma plotter de corte, mas estou tendo dificuldade como os motores, não acho informação nenhuma sobre eles na internet e nem no site do fabricante.
Os motores já são muito antigos e com certeza já foram descontinuados, já enviei um email para o fabricante explicando o que quero fazer e pedindo o datasheet com todas as informações.
Seu tutorial do outro site me ajudou a fazer uns testes sem usar o shield cnc, apenas usando o A4988 + Arduino.
http://blog.eletrogate.com/driver-a4988-motor-de-passo-usando-o-arduino/#Testes%20do%20Driver
Foi muito útil e consegui fazer ele se mexer mesmo com falhas nos comandos, ele trava e anda aleatoriamente.
Tenho um motor da Yaskawa, modelo UGTMEN-01MMI71, com 4 fios e + 5 do encoder.
Se puder me ajudar ficaria muito agradecido.
Muito Obrigado!
CurtirCurtir
Cara, em primeiro lugar gostaria de agradecer seu empenho em trazer material de qualidade para internet. Já é a segunda vez que eu consigo resolver problemas usando suas postagens! Obrigado! =)
Vim parar aqui tentando solucionar um problema.
Acontece que meu motor de passo (Imax de 0,3) não gira quando altero os parametros de passo (so consigo girar ele quando esta configura em P1_16) bem como quanto altero a quantidade de voltas (aceita valores entre 4 e 10 voltas. Acima ou abaixo ele nem faz).
Quando como P1_8 ou diferente ele emite um silvo baixo e agudo. Em FULL nem isso ele faz.
Uma coisa importante, é que o potenciometro não tem fornecido variação de tensão. Medi como vc sugeriu e esta sempre entre 3 e 4v, mas não altera com ajustes…
Estou quase convencido que queimei o driver, pois realizei ligações anteriormente e nos outros sites não havia o cuidado em informar a necessidade de conectar todos as fiações com o driver desenergizado e não me lembro se acabei cometendo essa falha.
o motor que tenho é de 5V e 0,3A.
As duas perguntas que faço: tem ideia do motivo de só funcionar em P1_16? Existe um modo prático de verificar se o problema esta no driver, no motor ou no sujeito amador está manipulando eles?
Abraços,
Maza
CurtirCurtir
Bom dia Henrique,
Informe as especificações do seu motor – link, fotos, etc. Envie foto da sua montagem também.
Pode ser que esteja conectando o motor de forma incorreta. Você informou que não esta conseguindo ajustar a corrente.
Isso não é um bom sinal. Mas ainda é cedo, para afirmar que o Módulo Driver esta pifado.
Atenciosamente,
Gustavo Murta
CurtirCurtir
Olá Gustavo,
Obrigado pela resposta. As ligações que eu fiz foram conforme estavam no seu tutorial. Segue uma foto geral. E uma foto do detalhe das conexões com o driver.
As conexões do motor eu realizei após ter realizado as medições de resistência das bobinas, cada par com 32 ohms e 16 ohms com o fio central (e não conectado a nada).
Conforme disse o que ocorre é que funciona com P1_16 e até 10 voltas. Um número maior de voltas e qualquer outra configuração de velocidade ele não roda.
A fonte fornece 5v e quando rodando o consumo fica entre 0,2 e 0,3A, medidos no amperimetro da fonte.
Não consegui te mandar o link com as fotos ou inserir elas aqui nesta plataforma. Então eu te respondi no Lab de Garagem.
Desculpe a confusão.
E agradeço a ajuda.
Abraços,
Henrique
https://drive.google.com/open?id=1QskwYdYwVgeOVQ6pcRD59SFHDbi0B0EC
CurtirCurtir
Agora foi com o link! haha Tava com um bloqueio sei lá o pq….
CurtirCurtir
Achei este datasheet: http://www.mantech.co.za/datasheets/products/FL39ST.pdf
e comprei o motor na multicomercial.
CurtirCurtir
bom dia galera
Teria como adaptar um pequeno motor de passo numa mesa de fresa para controlar coordenadas alguem tem uma solução barata, agradeço desde já.
Livre de vírus. http://www.avast.com .
CurtirCurtir
Boa tarde, estou com mesmo problema segui tutorial certinho, o motor só funciona somente no p1_16() e p1_32() no demais fica só vibrando e não trava o motor, meu drive configurou a corrente certo o motor utilizado nema 17 17hs4401. Qual seria o problema?
CurtirCurtir
Rodolfo,
Se o motor esta vibrando, tem duas hipóteses:
– a frequencia dos pulsos está acima da capacidade do motor
– a corrente não está sendo suficiente para movimentar o motor.
Faça alterações na frequencia dos pulsos. Verifique a curva de trabalho do seu motor, no datasheet dele.
Atenciosamente,
Gustavo Murta
CurtirCurtir
É realmente necessário habilitar e desligar o enable antes de mudar o sentido do motor?
CurtirCurtir
Boa noite Rodrigo,
Usei esse procedimento mais por segurança. Imagino que a inércia do motor poderá produzir correntes em excesso, ao ser abruptamente parado. Faça um teste sem desligar o enable e me informe por favor.
Atenciosamente,
Gustavo Murta
CurtirCurtir
Vou testar amanhã!
Belo tutorial!
CurtirCurtir
boa noite, gostaria de saber como faço para controlar esse motor com botoes, um para direita e outro para esquerda
CurtirCurtir
Boa noite Bruno,
A função TesteMotor () é que controla o movimento do motor.
Faça a sua programação assim :
Se Botão 1 pressionado
HOR();
Serial.print(” / Voltas = “);
Serial.println(Voltas);
for (int i = 0; i <= Pulsos; i++) // Incrementa o Contador
{
PASSO(); // Avança um passo no Motor
}
disa_DRV8825();
delay (750) ; // Atraso de 750 mseg
ena_DRV8825();
Se Botão 2 pressionado
AHR();
Serial.print(" / Voltas = ");
Serial.println(Voltas);
for (int i = 0; i <= Pulsos; i++) // Incrementa o Contador
{
PASSO(); // Avança um passo no Motor
}
disa_DRV8825();
delay (750) ; // Atraso de 750 mseg
ena_DRV8825();
Atenciosamente,
Gustavo Murta
CurtirCurtir
muito legal esse blog parabéns ! estou montando um projeto com o 8825 e gostaria de saber se posso alterar a ordem de ligação dos pinos do Nano com o 8825, desde que faça a alteração no programa também. obrigado
CurtirCurtir
Boa tarde, obrigado pelo elogio.
Pode sim alterar os pinos na montagem e no programa.
Atenciosamente,
Gustavo Murta
CurtirCurtir
ótima materia adorei
CurtirCurtir
Boa noite Nelson. Obrigado pelo elogio.
Atenciosamente,
Gustavo Murta
CurtirCurtir
Olá Gustavo, blz??
Montei o circuito usando o DRV8825, mas não conectei o controlador nem o motor de passo. Simplesmente energizei o driver com 5V e a entrada pros motores com 12V. Meu intuito fazendo isso era calcular o VREF antes de fazer as conexões. Quando liguei a fonte, o driver aparentemente entrou em curto e morreu. rs
Sou iniciante em eletrônica e gostaria de entender o q fiz de errado…
Obrigado!
CurtirCurtir
Boa tarde André,
O que você errou, é que não leu o tutorial com atenção ! Se é iniciante, é muito importante que leia todo o tutorial antes de fazer qualquer montagem. No tutorial :
Recomendações Importantes antes de usar o módulo DRV8825 !
(para evitar de danificá-lo)
– Esse módulo foi feito para motores de passo Bipolares, não use um motor unipolar. ( exceto se o motor Unipolar puder ser usado no modo Bipolar)
– Antes de fazer a conexão dos fios das bobinas do motor, certifique-se que a identificação dos fios esta correta. Recomendo que meça o valor da resistência das bobinas.
– Use um motor que se encaixe nas especificações do módulo – tensão máxima 45V e corrente máxima de 2,5 A.
– Conecte os fios das bobinas, antes de alimentar o módulo.
– Não desconecte os fios da bobina, quando o módulo estiver energizado.
– Se o módulo tiver aquecendo muito, cole o dissipador no chip.
Atenciosamente,
Gustavo Murta
CurtirCurtir
Realmente não tinha visto suas recomendações antes de fazer a montagem… Estava receoso de ligar os motores sem ajustar o VREF e danificá-los.
Valeu!
CurtirCurtir
Bom dia, Gustavo!
Primeiro, parabéns pelo tutorial e compartilhamento desta matéria. Atitude como esta, demonstra um comportamento altruísta da sua parte. Obrigado por isso!
Peço sua ajuda no seguinte questionamento:
Estou construindo um telescópio newtoniano em montagem dobsoniana e pretendo movimentá-lo através de dois motores de passo NEMA23 – 24kgf.cm – 2A.
Minha ideia é usar o DRV 8825 em função do seu tamanho.
Pelas minhas pesquisas, entendo que os movimentos de elevação e azimute serão plenamente atendidos pelo conjunto motor-drive-arduino.
Contudo, os motores ao pararem de funcionar, deverão ficar travados e lhe pergunto se é possível programar o ARDUINO para manter os motores energizados (travados).
Grato pela ajuda.
Maurício Caldas.
CurtirCurtir
Bom dia Maurício,
Sim, é possível manter os motores travados. É só manter o ultimo estado das fases ativo. Mas isso consome energia e o motor poderá esquentar, dependendo da força que ele estiver fazendo.
Uma outra sugestão é usar motor de passo com redução, nesse caso, o movimento é mais preciso e a inércia é maior. Dependendo da força necessária, nem será preciso ativar as fases.
Admiro muito astronomia. O que precisar é só informar.
Atenciosamente,
Gustavo Murta
CurtirCurtir
Obrigado pela resposta, Gustavo! Complemento perguntando, se não existe possibilidade de drenar menos corrente para o motor, através do Arduino, reduzindo o consumo de energia, mas deixando o motor travado. Consumo de energia é um parâmetro importante no meu projeto, pois ele será alimentado por uma bateria de 12 V 7A (quando em campo, normalmente, não existe eletricidade para alimentar os equipamentos do telescópio). A principio, não pretendo utilizar caixa de redução, pois são muito caras e, na segunda fase do projeto, pretendo montar um GOTO e será mais fácil implementar sem a caixa.
Grato.
Mauricio.
CurtirCurtir
Maurício, tudo vai depender do seu projeto.
Tem que adequar os motores para a carga que deverá ter. Para controlar a corrente (o driver DRV8825 já faz isso), usando o Arduino eu nunca tentei. Poderia tentar usando um PWM no pino ENABLE ou no pino SLEEP do DRV8825. Mas só testando. Não sei se daria certo.
Atenciosamente,
Gustavo Murta
CurtirCurtir
Ok, Gustavo! Vou comprar os motores e os drives e testar. Qualquer coisa, volto a postar. Mais uma vez, grato pela atenção e parabéns pelo blog.
Mauricio.
CurtirCurtir
Estou começando a estudar motores de passo com Arduino, e essa matéria me ajudou muito!
Consegui rodar meu primeiro motor a partir da descrição desta página.
Entretanto, fiquei com uma dúvida no cálculo de RPM. Os pulsos por segundo são definidos por PPS = 1000000 / (2 * MeioPeriodo); // Frequencia Pulsos por segundo
Qual a origem do termo um milhão?
Parabéns pelo site!
CurtirCurtir
Boa noite Leonardo,
Que bom que gostou do tutorial e lhe foi útil.
int PPR = 200; // Número de passos por volta ( vai depender do modo de passo)
Por exemplo, para o passo completo PPR = 200, para meio passo PPR = 400, etc.
Pulsos = PPR * Voltas; // Quantidade total de Pulsos PPR = pulsos por volta
PPS = 1000000 / (2 * MeioPeriodo); // Frequencia Pulsos por segundo
PPS significa pulsos por segundo (frequencia dos pulsos) . Para cada pulso, o motor gira um passo.
Como a definição da duração da variável MeioPeriodo é dada em microsegundos, é necessário essa operação com 1.000.000, para obtenção
de resultados em segundos e em Hertz.
F = 1 / T ( frequencia = 1 / Período) Periodo = 2 x MeioPeriodo
RPM = (PPS * 60) / PPR; // Calculo do RPM
Atenciosamente,
Gustavo Murta
CurtirCurtir
Boa tarde, para meu estudo preciso controlar a velocidade de rotação do meu motor pois ele estará movendo uma placa. Para eu converter para velocidade em metros por segundo, eu uso o diametro do eixo do motor? Obrigada.
CurtirCurtir
Boa noite Ana,
Você não informou como o motor esta movendo a placa. Você esta usando uma correia igual ao tutorial? Se for, pode fazer cálculos matemáticos para determinar o deslocamento da placa em relação ao giro do motor. Ou fazer medições empíricas (mais fácil).
Atenciosamente
Gustavo Murta
CurtirCurtir
Olá, parabéns pelo conteúdo postado, estou com uma duvida, eu quero que o servo motor de apenas meia volta em qual parte da programação tenho que alterar?
CurtirCurtir
Boa noite Renato,
Servo motor é um motor totalmente diferente de Motor de Passo ! Entendo que seu questionamento é para Motor de Passo do tutorial.
O movimento do motor depende do número de pulsos que o driver DRV8825 vai receber. O cálculo é feito baseado no PPR e número de voltas. Se deseja meia volta, então defina a variável Voltas = 1/2 ( meia volta). Simples assim.
Pulsos = PPR * Voltas; // Quantidade total de Pulsos
Por exemplo, para o modo de passo completo ( PPR = 200) , Pulsos = 200 * (1/2) = 100 pulsos ( meia volta)
Atenciosamente,
Gustavo Murta
CurtirCurtir
Bom dia Gustavo! Por favor meu amigo, me tire uma dúvida! O motor EM-336 tem 5 fios, serve para fazer a impressora 3D?
E o EM-286 tem 4
CurtirCurtir
Bom dia ,
Favor informar as especificações desses dois motores. Links por favor.
Você esta querendo montar uma impressora 3D ? Informe o link do projeto da impressora.
Atenciosamente,
Gustavo
CurtirCurtir
Gustavo, desculpa a demora em responder! Agora que pude chegar em casa!
Quero fazer esse modelo inicialmente.
E o motor que quero usar EM-336 https://pt.aliexpress.com/item/Used-42-stepper-motor-STP-42D221-03-em-336-7-2-Euro-5-line-1-8deg/32521265443.html
CurtirCurtir
Hello,
I wanna use this motor via DRV8825.
What should I?
Thank you.
CurtirCurtir
Hi Mustafa,
The DRV8825 driver only supports 2,5 Amperes at maximum of current ! The motor of video of Youtube runs with 4 A.
I suggest you use another driver like TB6600, which supports 4,5 A.
CurtirCurtir
Eu estou montado uma cnc com Arduíno e CNC shield e 4 drivers drv8825 … eu leguei apenas o Arduíno na sua alimentação com 9v ja com cnc shield e os 4 drivers conectados e fui tentar ajusta o vref … a minha tensão não sai de o do POT e dei várias voltas e passa por um ponto onde ela vai para 0.19 e volta pra 0 … o driver a4988 da pra regula sem ligar os motores agora desta maneira que falei agora não sei se o drv8825 da pra ser ajustado assim … poderia me ajudar ?
CurtirCurtir
Bom dia José,
Como já informei no Tutorial, os motores precisam estar conectados no Driver para fazer os ajustes !
Recomendo que releia todo o tutorial com atenção.
Atenciosamente. Gustavo
Recomendações Importantes antes de usar o módulo DRV8825 !
(para evitar de danificá-lo)
– Conecte os fios das bobinas, antes de alimentar o módulo.
– Não desconecte os fios da bobina, quando o módulo estiver energizado.
CurtirCurtir
Olá, estou tentando montar o circuito e quando meço o VREF ele indica 12,35 volts, o que não parece muito lógico, o que faço?
CurtirCurtir
Boa tarde Ana Carolina,
A ponta positiva (vermelha) esta conectada na parte metálica do POT e a ponta negativa (preta) esta conectada no pino GND do módulo DR8825? Confira toda a sua montagem. Envie fotos nítidas da sua montagem para jgustavoam@gmail.com. Atenciosamente. Gustavo
CurtirCurtir
Boa noite, simplesmente fantástico seu blog, muito bem detalhado, Parabéns
CurtirCurtir
Bom dia Nelson. Que bom que gostou do meu blog. Obrigado pelo elogio !
CurtirCurtido por 1 pessoa
boa tarde meu valor de vref quando vou medir com o multímetro fica 0.0 já testei em 2 drive e mesma coisa sabe o que pode ser ?
obrigado e parabéns pelo blog .
CurtirCurtir
Boa noite Rodigo, você deve usar um voltímetro de CC, para medir a tensão sobre o potenciômetro.. Se a tensão esta dando Zero volts, pode ser que esta conectando motor incorretamente. O motor gira, quando faz o teste ? Obrigado pleo elogio.
Atenciosamente, Gustavo Murta
CurtirCurtir
as resistências medidas foram : 3,8 ohm e 3.6.
no potenciômetro estava 0.75.
sim fiz todo o projeto a partir do seu blog vendo q deu certo com os demais :D. e o programa de teste tbm foi copiado daqui.
e mais uma duvida quando o motor esta energizado ele o eixo fica rígido certo? se for o eixo do meu motor esta se movendo facilmente.
novamente obrigado Sr. Gustavo
CurtirCurtir
depois de algumas horas finalmente o vfer foi ajustado porem fiz como esta descrito no seu tutorial usando um nema 16 12v mas ele não gira nem vibra nem sinal de vida…
eu medi a tensão nas entrada da bobina e estão chegando os 12 v normal sera q o motor já era?..
novamente obrigado…
CurtirCurtir
Rodrigo, o mais provável que você tenha conectado o motor incorretamente. Ou então queimou o driver DRV8825. Informe as especificações do seu motor (link). Gustavo.
CurtirCurtido por 1 pessoa
ola boa noite e já vou agradecendo a ajuda
o motor eh esse
esse drive eh novo acabou de chegar e quanto a ligar o motor errado …. medi as bobinas e identifiquei os pares liguei cada par no seu devido lugar. do resto segui o esquema ali de cima ..
CurtirCurtir
link : (//marta2009p.mercadoshops.com.br/motor-passo-nema-16-arduino-toque-12-kgf–57786757xJM )
CurtirCurtir
agora sim o link certo
link : http://i00.i.aliimg.com/img/pb/818/869/112/112869818_826.jpg
CurtirCurtir
Informe as a resistência medidas de cada bobina, após os seus testes. Será que passou corrente acima do limite (0,7 A) e abriu uma das bobinas? Você fez as ligações idênticas ao meu tutorial e usou o mesmo programa de teste ? Confira tudo de novo. Ajuste a corrente para 0,5A (0,25V no POT).
CurtirCurtir
as resistências medidas foram : 3,8 ohm e 3.6.
no potenciômetro estava 0.75.
sim fiz todo o projeto a partir do seu blog vendo q deu certo com os demais :D. e o programa de teste tbm foi copiado daqui.
e mais uma duvida quando o motor esta energizado ele o eixo fica rígido certo? se for o eixo do meu motor esta se movendo facilmente.
novamente obrigado Sr. Gustavo
CurtirCurtir
Rodrigo bom dia. Pelos sintomas que descreveu, pode ser que o driver DR8825 possa ter queimado. Enviei links das fotos da sua montagem. Mostrando todas as conexões. Pode ser algo conectado incorretamente também. Abraços
Gustavo
CurtirCurtir
Boa Noite Sr Gustavo.
realmente era o drive não identifiquei qual foi o erro mas percebi q o fio que o fio que estava said o 12 v e ia ate o drive estava com sinais de derretimento . De qualquer forma troquei o drive e segui seu tutorial e dessa vez rodou tudo lindo.
E gostaria de agradecer pela atenção e pela ajuda que foram de grande valia.
CurtirCurtir
Bom Dia Sr. Gustavo,
Complementando meu post anterior, resolvi o problema do aquecimento colocando uma ventoinha, está refrigerando bem.
Depois de inúmeros testes com os drivers e invertendo os motores, percebi que quando coloco o motor no slot A da CNC Shield, replicando o eixo Y ele vai mais devagar.
Sempre no slot A, ele vai mais devagar.
Posso estar com problemas na CNC shield? Não sei mais o que fazer.
Desde já obrigado.
CurtirCurtir
Francisco, você informou que já inverteu os motores. Mas já inverteu os drivers também?
Não tenho experiência com CNC Shield. Informe links de informações sobre o seu shield.
Qual programa esta usando ?
Atenciosamente, Gustavo
CurtirCurtir
Caro Gustavo,
Sim troquei os drivers. Sempre o motor conectado no slot A replicando o Y vai mais devagar. Se o capacitor da Shield estiver danificado pode dar esse problema?
Link da shield:
http://osoyoo.com/2017/04/07/arduino-uno-cnc-shield-v3-0-a4988/
Estou usando o Universal Gcode Sender
CurtirCurtir
Bom dia, Francisco.
Sugiro que faça um teste com os motores desconectados dos mecanismos. Veja se há algum prendimento mecânico no eixo Y.
Não conheço o circuito desse Motor Shield, mas qualquer componente danificado poderá interferir, sim.
Você conectou alguma alimentação invertida ?
CurtirCurtir
Caro Sr. Gustavo.
Estou terminando a CNC do Site atividade maker.
Quatro motores de passo da Minebea 23KM-C051-09V(que o Sr já comentou anteriormente). Drivers drv 8825 configurado para micro passo de 1/4, com Vref 1v fonte 10A 24v.
Meus drivers esquentam demais chegaram a entortar os jumps do motor na shield e um dos motores do eixo Y com a mesma configuração no Universal gcode vai mais rápido do que o outro e são todos iguais (usados). Estou sem ventilação. Devo colocar ventoinhas ou baixar a alimentação do motor?
Desde já obrigado e parabéns pelo seu blog . Muito bom. Suas explicações são muito claras e objetivas
CurtirCurtir
Bom dia Francisco,
Você instalou os dissipadores de calor em cima dos chips Drivers DRV8825 ?
Achei no Forum Guia CNC, algumas especificações para seu motor (corrente maxima – 2A) .
http://www.guiacnc.com.br/projetos-dos-usuarios-guia-cnc/router-cnc-diy-marcoatsantiago/
Sugiro que ajuste a corrente no DRV8825 para o máximo que o motor 23KM-C051-09V suporta (2,0A).
Atenciosamente, Gustavo
CurtirCurtir
Muito bom o seu blog , só gostaria de saber se não seria mais fácil utilizar a biblioteca do Stepper do Arduino ? esse driver não possui algum abiblioteca pra facilitar o uso?
CurtirCurtir
Bom dia Jonathan, obrigado pelo elogio.
Como o tutorial tem fins didáticos, preferi não usar uma bilblioteca pronta. O fabricante Pololu recomenda o uso dessa Biblioteca:
https://github.com/laurb9/StepperDriver
Existe a famosa Biblioteca AcceslStepper , mas acho ela complicada de usar, para iniciantes:
http://www.airspayce.com/mikem/arduino/AccelStepper/
Atenciosamente, Gustavo.
CurtirCurtir
COMO FAÇO PARA USAR 3 DRIVES OU SEJA 3 MOTORES EM UMA UNICA PLACA ARDUINO ATUALMENTE USO O DRIVE A4988 COM 3 MOTORES NUM ARDUINO NANO
CurtirCurtir
Boa noite Nelson,
Sugiro que use um Arduino MEGA, já que tem um número suficiente de portas para controlar 3 drivers/motores.
CurtirCurtir
SIMPLES É SÓ ENCAIXAR A PLACA DRIVE A4988 NA PLACA ARDUINO NANO E CARREGAR A BIBLIOTECA DO DRIVE PARA A PALACA DO ARDUINO
CurtirCurtir
Muito bom! Funcionou perfeitamente comigo, parabéns, excelente tutorial
CurtirCurtir
Obrigado pelo comentário.
CurtirCurtir
Posso utilizar uma fonte tipo chaveada tipo colmeia de 12 v 5 a ? Estou no aguardo ! Obrigada !
CurtirCurtir
Minha fonte é de 12 v 5 A irei sobrecarregar o drive ? Não acho fonte de 3 ! Tomara que eu possa ! Obrigada ! Não quero queima o drive !
CurtirCurtir
O meu tbm não está funcionando ! Já consegui colocar um para funcionar mas o outro motor não está funcionando ! Então tem como eu tesrta se algum componente meu está com defeito ? Ou o arduíno, ou o drive ou o motor ? É mto comum ter mau contato no Arduino ? Se a corrente não estiver ajustado o motor não roda ?
CurtirCurtir
Luiza boa noite,
Vamos por partes . Você conseguiu fazer uma montagem com um motor, um drive DRV8825 com Arduino?
Funcionou corretamente ?
Os motores são idênticos ? Meça com um ohmímetro a resistência das bobinas.
Mesmo com uma corrente fraca, o motor deveria girar. Você esta testando o motor sem carga?
Favor responder todas as perguntas.
Atenciosamente,
Gustavo
CurtirCurtir
Consegui fazer funcionar perfeitamente um motor de passo com um drive e um arduino. Porém agora tenho q colocar um outro motor para girar controlando com outro arduino vou fazer dois motores funcionarem independentes. É um motor idêntico! Neste primeiro motor que consegui coloca-lo para funcionar primeiro carreguei seu programa de ajuste de corrente e depois ajustei no drive até o motor ter um torque adequado . Até testei o motor no drive e no arduino que está funcionando e ele girou o motor porem o torque não esta mto bom!
Aguardo
CurtirCurtir
Bom dia amigo…
Novamente estou recorrendo aos seus conhecimentos para resolver meus problemas ehehehe
Bom, estou com dois motores nema 17 modelo 17HS8401 – 1,8A e drivers drv8825, sendo que estou utilizando apenas 1 deles ligados a uma fonte externa de 12v 3A, para testes a principio.
Fiz todos os procedimentos citados acima, regulei o Vref para 0,85 votls e qdo vou rodar o programa que forneceu no blog
“Controle de Motor de Passo Bipolar com Modulo driver DRV8825”
ele funciona, aparentemente de maneira correta para o passo P1_16.
O problema ocorre qdo eu altero os passos, por exemplo, ao rodar em FULL() ele dá um pulso no eixo para esquerda e depois para direita e “apitando” tbm.
Outra coisa que percebi é que se eu aumento o No. de voltas ele nao gira tbm para P1_16.
Se tiver alguma sugestao ou soluçao,eu agradeço muito, pois ja procurei em varios locais pra tentar sancionar o problema e ate agora nada.
Abs.
Flavio
CurtirCurtir
Flávio bom dia,
Pelo que comentou, aparentemente montou algo errado. Já testou com outro driver e com outro motor ?
Como identificou as bobinas do motor?
Preto (A), verde (/A), vermelho (B) e Azul (/B).
Você fez uma montagem idêntica ao meu tópico ? Montou as conexões das portas de controle do modo de passo (M0, M1 e M2) ?
Teste como o programa idêntico do tópico ( se fizer alterações no programa, me informe).
Conectou o terra do driver, e o terra da fonte com o terra do Arduino? Mande uma foto da sua montagem.
Esta testando o motor sem carga ?
Especificações do seu motor 17HS8401: ( a corrente máxima é de 1,7A) :
Clique para acessar o HB_Stepper_Motor_E.pdf
Atenciosamente,
Gustavo
CurtirCurtir
boa tarde amigo…
obrigado por responder e tentar me ajudar.
Eu ja testei ele com 3 drivers drv8825 e um outro motor de mesmo modelo, ja revi todas as ligacoes, e tudo continua mesma coisa, só funciona em P1_16
As bobinas eu segui essas cores tbm e confirmei com um multimetro pra ter certeza de qual é qual.
todos os terras aterrados (fonte externa de 12 com o drive e com o arduino mini)
O que ta me intrigando é que usando outro programa que encontrei na net, o motor funciona em outros pasos, aparentemente normal.
coloquei umas fotos da ligaçao e um video de como ele está funcionando em modo FULL (), ao fundo o apito qdo ele tenta mover
https://plus.google.com/u/0/collection/UyquEE
(se nao for a forma correta de postar, peço desculpas)
Mais uma vez agradeço pela ajuda 😀
abs
Flavio
CurtirCurtir
Estou utilizando este mortor ! Gostaria de colocar ele em uma rotação bem baixa …
tipo 60 RPM
https://www.filipeflop.com/produto/motor-de-passo-3-20v-nema-17-impressora-3d/
CurtirCurtir
Obs: Meu motor é de 4 fios
CurtirCurtir
NÃO consegui abaixar o significamento o RPM !
Troquei o MeioPeriodo = 30 para 40 se aumentar este valor o motor não gira !
QUAL seria a lógica para alterar esta velocidade por que é para uma pesquisa a mudança de velocidade e gostaria de ficar modificando esta velocidade !
Obrigada
CurtirCurtir
Boa noite Luisa. Favor informar qual modo de passo esta usando – passo completo, meio passo, 1/4 passo, 1/8 passo, 1/16 passo ou 1/31 passo. Essa definição é fundamental para a definição do RPM . O PPR varia de acordo com o modo de passo. Usando a formula que eu já lhe informei anteriormente , poderá fazer o calculo do meio periodo.
Não se esqueça de definir no sketch, o número de voltas também.
Por exemplo para Passo Completo – PPR =200 e RPM = 60
RPM = (PPS * 60) / PPR
60 = (PPS * 60) / 200
PPS * 60 = 60 * 200
PPS = 60 * 200 / 60 = 200
PPS = 1000000 / (2 * MeioPeriodo)
200 = 1000000 / (2 * MeioPeriodo)
2 * MeioPeriodo = 1000000 / 200
MeioPeriodo = 1000000 / 200 * 2 = 2500
CurtirCurtir
Obrigado! Parabéns realmente muito bom !
CurtirCurtir
Luisa, funcionou ?
CurtirCurtir
Como faço para controlar a velocidade do motor ?
CurtirCurtir
Boa tarde Luisa,
Para alterar o RPM do motor poderá alterar a variável :
int MeioPeriodo = 30; // MeioPeriodo no pulso em microsegundos
Mas antes defina o modo de passo que será usado – passo completo, meio passo, etc.
void Frequencia() // Configura Frequencia dos pulsos
{
Pulsos = PPR * Voltas; // Quantidade total de Pulsos PPR = pulsos por volta
PPS = 1000000 / (2 * MeioPeriodo); // Frequencia Pulsos por segundo
RPM = (PPS * 60) / PPR; // Calculo do RPM
}
CurtirCurtir
Murta, parabéns pelo blog. Os artigos são bem explicados e ilustrados. Não há como errar seguindo suas explicações. Obrigado por compartilhar sua experiência
CurtirCurtir
Obrigado amigo José Cintra ! Abraços , Gustavo Murta
CurtirCurtir
Parabens pelo site Sr Murta
Muito legal e didatico sua iniciativa
Mas tenho uma duvida a respeito da configuraçao da corrente do drive
Bom… vc comenta sobre nao ajustar a corrente maxima para evitar danos, caso aconteça algum travamento no motor, o qual ocorrerá um aumento “exponencial” da corrente, mas se eu jogo abaixo do nominal, nao haverá interferencia no funcionamento do motor em questao??
por exemplo, to com um motor 17HS8401 que possui corrente nominal de 1,8 A aí sugere que eu diminua a corrente abaixo desse valor???
Outra coisa, que se puder me esclarecer eu adoraria é que eu li, nao sei aonde, sobre a corrente da fonte utilizada pra alimentar os modulos e motores.
Lá , se nao me engano, informaram que nao era pra usar uma fonte com uma corrente muito acima do valor exigido, pois o modulo DRV nao suportaria.
Ou seja, usar uma fonte com uma faixa tipo de 3 a 5A acima do recomendado.
Eu to tentando montar uma bobinadeira com arduino onde irei usar 2 motores de passo de 1.8A (corrente nominal) e a principio, a corrente pelo que calculei, por cima, usando todos os equipamentos, nao deverá exceder a 10 A.
Quero desde já agradecer pela ajuda e pedir desculpas, se caso fiz perguntas muito “boba”ehehheeh
Flavio
CurtirCurtir
Boa noite Flávio.
Obrigado pelos elogios.
1) “por exemplo, to com um motor 17HS8401 que possui corrente nominal de 1,8 A aí sugere que eu diminua a corrente abaixo desse valor???”
Não, como informado no Blog, a corrente máxima do driver DRV8825 é de 2,5A (com dissipador). Na fase de testes, é bom ajustar a corrente um pouco abaixo do limite do motor. Se tudo estiver ok, use o ajuste de 1,8A. Vou melhorar o texto para que não fique a dúvida.
2) “Lá , se nao me engano, informaram que nao era pra usar uma fonte com uma corrente muito acima do valor exigido, pois o modulo DRV nao suportaria.
Ou seja, usar uma fonte com uma faixa tipo de 3 a 5A acima do recomendado.”
Também não recomendo o uso de uma fonte com corrente muito maior do que o necessário. Quem limita a corrente no motor é o Driver DRV8825 e não a fonte.
Pensando assim, não teria problema algum. Mas pensando em termos de segurança, imagine um curto circuito (falha grave) com uma fonte muito potente. Pode haver até risco de incêndio.
3) Eu to tentando montar uma bobinadeira com arduino onde irei usar 2 motores de passo de 1.8A (corrente nominal) e a principio, a corrente pelo que calculei, por cima, usando todos os equipamentos, nao deverá exceder a 10 A.
O importante é que a soma das correntes de todos circuitos e motores não exceda a corrente da fonte.
Atenciosamente, Gustavo.
CurtirCurtir
Bom dia, Gustavo
Pô de grande ajuda seus comentarios!!!
Agradeço por responder rapidamente tbm eheheeh
To com esses trem ja tem um tempo e nao mexi pq ao pesquisar sobre como ligar, vi um monte de gente comentando e nao sentia muita firmeza
Mas agora clareou bastante e entao, irei voltar novamente nesse meu projeto.
abs
CurtirCurtir
Bom dia, para configurar para o arduino DUE tenho que alterar essa parte DDRD = DDRD | B11111100;? como ficaria? preciso colocar um teclado onde eu digitaria a quantidade de voltas e o rpm, pode me ajudar?
CurtirCurtir
Bom dia Simião, o intuito do meu Blog é instrutivo. Sugiro que poste a necessidade do seu projeto no Lab de Garagem.
http://labdegaragem.com/ Atenciosamente, Gustavo
CurtirCurtir
Bom dia
Estou com uma dúvida.
Estou utilizando o seguinte motor MOTOR DE PASSO – NEMA: 23 – Torque: 15,00 kgf.cm – Corrente: 3,00 A – A tensão de alimentação do motor é 4,2 volts, porém o driver trabalha de 8,2 até 45 volts. Gostaria de saber se essa tensão de alimentação do driver será a mesma que ira alimentar as bobinas do motor, eu não consegui identificar pelo esquema elétrico, você poderia me tirar essa dúvida?
CurtirCurtir
Boa tarde José Fernandes, Não recomendo que use um motor de 3A nesse Driver que suporta até 2,5A !
Poderá sobrecarregar o driver (ou até queimá-lo).
Você não informou o valor resistivo da Bobina . V = R x I . R = 4,2 V / 3 A = 1,4 ohms
Como o Driver é que define a corrente máxima nas bobinas do motor, não é necessário se preocupar com a tensão de alimentação.
Ela só não pode ser menor do que 8,2V – requisito do Driver DRV8825. E a fonte deverá também ser suficiente para fornecer os 2,5 Ampéres (O ideal é usar uma fonte com maior corrente do que a maxima do driver).
Veja no módulo, o pino VM ou VMOT – esse é pino de alimentação do motor.
Atenciosamente,
Gustavo
CurtirCurtir
Bom dia
Na ligação na forma bipolar pelo manual do fabricante, a corrente máxima é de 2,1 amperes por fase, creio que assim posso usar esse motor. A resistência da bobina é de 2 ohms de acordo com o manual.Eu estava preocupado com a tensão de alimentação. Mto obrigado pela ajuda, seu fórum é mto bom me ajudou bastante.
CurtirCurtir
Boa
CurtirCurtir
Não consequi enviar foto. como faço ?
CurtirCurtir
Achei nesse topico, as informações :
http://www.guiacnc.com.br/motores-em-geral-144/ajuda-com-flat-para-motor-nema-23/
CurtirCurtir
Bom dia estou usando um motor MINEBEA 23KM-C051-09V vou te mandar uma foto só nao sei como enviar ela rsrsrsrsr. quanto ao drive acho q o mesmo eu acbei danificando ele , pois liquei os mesmo nos motores tentei regular o VRF mas nao consequi nenhuma leitura o mesmo so dava mesmo assim muito baixa quando ligava a fonte de alimentação dos motores
CurtirCurtir
Bom dia Paulo. Esse motor de passo da Minebea 23KM-C051-09V é antigo e deve ser usado, não é? Não encontrei as especificações dele no site do fabricante, pois é um motor que já foi descontinuado. Achei um diagrama onde as ligações são essas – confira com o ohmímetro do seu multímetro antes de testa-lo. Acho que você pode usa-lo no Driver DRV8825 fazendo a ligação bipolar (ajustando a corrente).
A – pino 6 = vermelho
-A – pino 4 = amarelo
A comum – pino 5 – preto ( não use esse fio no modo bipolar)
B – pino 3 – azul
-B – pino 1 – laranja
B comum – pino 2 – branco ( não use esse fio no modo bipolar)
CurtirCurtir
Boa noite Gustavo problema resolvido motor funcionando os drv8825 todos intactos agora instalar na CNC e mãos a obra obrigado pela atenção
CurtirCurtir
Ola boa noite estou montando uma CNC e atraves do seu Blog vi que estou usando um motor errado unipolar mas gostaria de tenta aproveitar o q tenho : Arduino Uno,Kit Cnc Shield R3 + 4 Driver Drv8825 sei que vou ter de trocar o drive pode me dar uma sugestão de qual usar e se tem como ? obrigado.
CurtirCurtir
Boa noite, Paulo.
Você não informou os motores que tem. Quais são ?
Envie o link com as especificações. Se não achar, envie fotos do motor.
Gustavo
CurtirCurtir
Boa tarde,Sr. Gustavo !
O movimento do vídeo que você postou é idêntico ao que preciso a questão é que o driver que tenho éo L298N. O que fazer?
CurtirCurtir
Boa tarde, Alosno.
Veja esse tópico:
http://labdegaragem.com/forum/topics/motor-de-passo-em-323-em-211-ponte-h-l298n?commentId=6223006%3AComment%3A502185
CurtirCurtir
Que bom que resolveu o problema. Abraços. Gustavo
CurtirCurtir
Muito legal seu blog Murta, muito bom mesmo. Parabéns.
CurtirCurtir
Muito Obrigado !
CurtirCurtir
Grande Murta! Grande iniciativa é excelente seu blog! Você é um fera da eletrônica! Saludos é um abraço aqui “del sur del mundo”! 😉
CurtirCurtir
Muito obrigado, Marcelo.
O formato ainda não esta do jeito que eu quero.
Grande abraço,
Gustavo Murta
CurtirCurtido por 1 pessoa
Oi JGAM, muito bom seu tutorial. Parabéns pela iniciativa. Rui
CurtirCurtir
Muito obrigado, Rui ! Grande abraço.
Gustavo
CurtirCurtir