Guia CNC Brasil - Tudo sobre CNC, Router, Laser, Torno e 3D Print
MECÂNICA => Motores em Geral => Tópico iniciado por: Thiago.Henrique em 09 de Dezembro de 2011, 18:14
-
E ai pessoal,
estou com um problema na velocidade de giro dos meus motores de passo unipolares.
Eles são acionados por um microcontrolador (16F877A), porem na programação com o delay entre bobinas é de 10ms ele roda normal, quando se diminui o delay ele trava e fica fazendo em barulho.
os amplificadores são 4 TIP120 para cada motor,
Alguem sabe me falar porque ?? se o erro está na programação ou na ligação ??
-
Tive este mesmo problema usando IRF540 na etapa de potência. Esse problema surgir surgiu com o drive comutando com frequência acima de 100KHz.
Este problema teria a ver com a frequência de chaveamento dos transistores?
-
vc´s fizeram uma rampa de aceleração?
-
No meu caso não! O drive, em alguns casos, já inicia nesta frequência.
-
E ai pessoal,
estou com um problema na velocidade de giro dos meus motores de passo unipolares.
Eles são acionados por um microcontrolador (16F877A), porem na programação com o delay entre bobinas é de 10ms ele roda normal, quando se diminui o delay ele trava e fica fazendo em barulho.
os amplificadores são 4 TIP120 para cada motor,
Alguem sabe me falar porque ?? se o erro está na programação ou na ligação ??
Há várias questões a serem analisadas antes de tirar conclusões e sugerir ações:
(1) Qual a tensão de alimentação do motor?
(2) Está usando algum tipo de controle de corrente? Ao aumentar a velocidade (frequência de acionamento), a corrente tende a cair se for usada uma tensão de alimentação baixa sem controle por corrente, devido a indutância das fases do motor.
(3) Está usando diodos "free-wheeling" nos enrolamentos ou nos transistores?
(4) Poderia enviar um esquema das ligações do motor, fonte e transistores?
-
Pessoal
Tenho o mesmo problema usando um motor bipolar de 9kg para 1000rpm usando o L298 com avrAT90S2313.
Não consigo acionamento menor que 6ms. Motor está sendo alimentado por uma fonte de 5V 3A. Não tenho nenhuma experiencia com motor de passo, mas com microcontroladores.
veja circuito anexo.
perguntas:
1- Se aumentar a tensão para 24V /5A funciona?
2 - Como faço a rampa de aceleração?
Para solucionar pensei em usar o L297 circuito igual da placa OCX3A, com fet IRF840, aplicando um clock gerado pelo microcontrolador usando um motor unipolar nema23.
1- Se aumentar a tensão para 24V /5A funciona?
2 - Como faço a rampa de aceleração?
Agradeço qualquer ajuda.
-
1- Se aumentar a tensão para 24V /5A funciona?
Funciona, mas deve ser usado um controle por corrente constante, usando um resistor para amostrar a corrente. Leia e se informe sobre circuitos PWM e acionamento de motores de passo com corrente constante. Se ligar 24V ou mais é melhor, mas se não houver controle de corrente vai queimar o motor.
2 - Como faço a rampa de aceleração?
O problema imediato não é a rampa de aceleração, mas o controle de corrente. Depois disso resolvido pense na rampa, que nada mais é que um acionamento com frequência variável e crescente.
Para solucionar pensei em usar o L297 circuito igual da placa OCX3A, com fet IRF840, aplicando um clock gerado pelo microcontrolador usando um motor unipolar nema23.
Você quis dizer CNC3AX? Sim, o ideal seria estudar o L-297 e seguir o seu princípio funcional em seu circuito e software.
-
minilathe,
Obrigado pela sua resposta.
Pelo que li aqui no site a corrente no motor deve ser sempre constante independente do valor da tensão e quanto maior a tensão menor o tempo para atingir a corrente de saturação da bobina.
Veja se estou correto, no caso de usar o L297/7409 e fet (parte do circuito da OCX3A), para acionar um motor 5V/1,2A -1.8º preciso calcular o valor da referencia pino 15, usando um resistor de 0,1R:
0,1*1,2=0,12V ou 120mv
Toda vez que a corrente atingir 1,2A o circuito chopper corta a saída atual e parte acionar a próxima.
para atingir 50 voltas completas em um tempo de 250ms, teria que plicar 2000 pulsos no pino 18 clock no L297 neste tempo.
-
Pelo que li aqui no site a corrente no motor deve ser sempre constante independente do valor da tensão e quanto maior a tensão menor o tempo para atingir a corrente de saturação da bobina.
Sim, isso mesmo. Não é exatamente corrente de saturação, seria a corrente ajustada. O termo corrente de saturação tem a ver com saturação do material magnético do motor. O que não é o caso aqui.
OCX3A
Você quis dizer CNC3AX?
Veja se estou correto, no caso de usar o L297/7409 e fet (parte do circuito da OCX3A), para acionar um motor 5V/1,2A -1.8º preciso calcular o valor da referencia pino 15, usando um resistor de 0,1R:
0,1*1,2=0,12V ou 120mv
Toda vez que a corrente atingir 1,2A o circuito chopper corta a saída atual e parte acionar a próxima.
Sim, a tensão seria de 0,12V. O circuito chopper está sempre fazendo isso com a fase que está sendo demandada pelo controle de movimentação do motor, se o motor estiver parado, só executa isso numa ou duas fases, mas como as fases acionadas não mudam, o motor fica parado com corrente constante.
para atingir 50 voltas completas em um tempo de 250ms, teria que plicar 2000 pulsos no pino 18 clock no L297 neste tempo.
Sim, 2000 pulsos, com uma frequência de:
50*400 = 2000 pulsos / 0,25 s = 8000 Hertz. E com certeza, usando uma curva de aceleração.
-
Há várias questões a serem analisadas antes de tirar conclusões e sugerir ações:
(1) Qual a tensão de alimentação do motor?
(2) Está usando algum tipo de controle de corrente? Ao aumentar a velocidade (frequência de acionamento), a corrente tende a cair se for usada uma tensão de alimentação baixa sem controle por corrente, devido a indutância das fases do motor.
(3) Está usando diodos "free-wheeling" nos enrolamentos ou nos transistores?
(4) Poderia enviar um esquema das ligações do motor, fonte e transistores?
Pessoal desculpa pela demora...
Minilathe segue abaixo o esquema de ligação usado. A tensão do motor é 13.2V e 0,6A de corrente por fase, lembrando que está ligado na forma unipolar.
Estou alimentando com 15V de uma fonte com reguladores de tensão 7815 em paralelo e um capacitor de 10000uF, mas limitando a corrente com um resistor de 1R8 de 10W.
Não estou usando nenhum tipo de diodos "free-wheeling"....
-
Minilathe,
Fico agradecido pela ajuda, e aqui mais uma vez solicito ela novamente.
A tensão de referência está com 0,16v
Veja o circuíto anexo, quando aplico um trem de pulsos de 30ms de largura, o led home pisca e observei com osciloscópio nos pinos de saída (4,6,7 e 9) do L297 são gerados pulsos com largura de 124ms.
O capacitor veio errado com valor de 33nF.
Surgiu um outro problema. Com o osciloscópio, os sinais INH1 e INH2, não são gerados pelo L297, portanto não chaveia a saida do 74L09
Os pinos 17 e 19 em nivel "0",
o pino 11 em GND,
os pinos 20 e 10 estão em vcc.
Grato.
-
Minilathe,
Fico agradecido pela ajuda, e aqui mais uma vez solicito ela novamente.
A tensão de referência está com 0,16v
Veja o circuíto anexo, quando aplico um trem de pulsos de 30ms de largura, o led home pisca e observei com osciloscópio nos pinos de saída (4,6,7 e 9) do L297 são gerados pulsos com largura de 124ms.
O capacitor veio errado com valor de 33nF.
Surgiu um outro problema. Com o osciloscópio, os sinais INH1 e INH2, não são gerados pelo L297, portanto não chaveia a saida do 74L09
Os pinos 17 e 19 em nivel "0",
o pino 11 em GND,
os pinos 20 e 10 estão em vcc.
Grato.
Vamos por partes:
(1) Coloque um filtro RC (passa baixo) entre os resistores de 0.1 e cada entrada de medição de tensão do L-297 (pinos 13 e 14). Use R=4K7 e C=180pF.
(2) Os resistores de polarização de Gate dos FETs devem ser ligados ao +12V e os valores devem ser de 1000 ohms ao invés de 470, para não sobrecarregar o 7409.
(3) Não tem tanto a ver com o que está ocorrendo, mas qual a forma de onda do clock? Para um período de 30ms, use Ton=29.999ms e Toff=1us.
-
Pessoal desculpa pela demora...
Minilathe segue abaixo o esquema de ligação usado. A tensão do motor é 13.2V e 0,6A de corrente por fase, lembrando que está ligado na forma unipolar.
Estou alimentando com 15V de uma fonte com reguladores de tensão 7815 em paralelo e um capacitor de 10000uF, mas limitando a corrente com um resistor de 1R8 de 10W.
Não estou usando nenhum tipo de diodos "free-wheeling"....
Para ter 0,6A por fase com 13,2V acho que vai precisar de controle de corrente constante (PWM) senão vai queimar o motor. Qual a resistência de cada fase do motor?
Vai alimentar o motor com dois reguladores 7815?
Eu usaria diodos "free-wheeling"...
-
Minilathe,
+ uma vez obrigado, consegui fazer funcionar, o problema foi os L297 que comprei em SP (multicomercial) de 15 só 1 funcionou. Troquei o capacitor de 33pf por 2,0nF.
fiz uma rampa para motor pequeno de multifuncional de 12V a primeira vez vai de boas mas as demais nem sempre funciona.
10 pulsos de 15ms
10 pulsos de 8ms
10 pulsos de 4ms
1000 pulsos de 1ms
1- tenho um nema 23km-c051-070 não achei o manual dele especifico, mas no M.Livre fala que é 4V /2A. As cores são Vm+pt+am e Az+bc+lj aciono na ordem vm+am+az+lj, no 12V/500ma bc+pt.
qdo tento rodar ele com 5V/3A nâo vira e o microcontrolador começa a pegar fogo, como evitar isto?.
2 - como faço uma rampa para executar umas 40 voltas no tempo de 200ms para este nema?
Grato
-
Minilathe,
+ uma vez obrigado, consegui fazer funcionar, o problema foi os L297 que comprei em SP (multicomercial) de 15 só 1 funcionou. Troquei o capacitor de 33pf por 2,0nF.
fiz uma rampa para motor pequeno de multifuncional de 12V a primeira vez vai de boas mas as demais nem sempre funciona. Nestes pulsos uso duty cycle de 50%.
10 pulsos de 15ms = 15ms on e 15ms off
10 pulsos de 8ms
10 pulsos de 4ms
1000 pulsos de 1ms
1- tenho um nema 23km-c051-070 não achei o manual dele especifico, mas no M.Livre fala que é 4V /2A. As cores são Vm+pt+am e Az+bc+lj aciono na ordem vm+am+az+lj, no 12V/500ma bc+pt.
qdo tento rodar ele com 5V/3A nâo vira e o microcontrolador começa a pegar fogo, como evitar isto?.
2 - como faço uma rampa para executar umas 40 voltas no tempo de 200ms para este nema?
Grato
-
fiz uma rampa para motor pequeno de multifuncional de 12V a primeira vez vai de boas mas as demais nem sempre funciona.
10 pulsos de 15ms
10 pulsos de 8ms
10 pulsos de 4ms
1000 pulsos de 1ms
Você fez uma "escada" de aceleração e não uma rampa, supondo que Ton=Toff, o primeiro degrau com 10*30=300ms de duração, o segundo com 10*16=160ms, o terceiro com 10*8=80ms o quarto com 1000*2=2s.
Além disso, fez um movimento acelerado e não com aceleração constante. Se a aceleração é constante, o torque é constante e se o torque é constante, um acionamento com corrente constante resolve. Sabendo que T= M x a, num sistema puramente inercial sem atrito (motor sem carga mecânica, apenas o rotor sendo movido), onde T = torque, M = momento de inércia e a=aceleração angular.
Se a aceleração é constante, então a=(V2-V1)/(T2-T1)
T2-T1: duração do degrau
V2: velocidade ao final do degrau (rotações por segundo)
V1: velocidade no início do degrau (rotações por segundo)
Para "a" ser constante, use T2-T1 constante e varie V2-V1 em intervalos regulares, exemplos:
(1) 5, 10, 15, 20, 25, 23, 35, 40, 45, ... um degrau a cada 10 ms
ou então:
(2) 10, 20, 30, 40, 50, ... um degrau a cada 20 ms
Ambos os movimentos acima possuem aceleração de (20-10)/20 = 0,5 rotação/segundo2
Variando a duração ou o acréscimo dos degraus, varia-se a aceleração, ok?
-
Para ter 0,6A por fase com 13,2V acho que vai precisar de controle de corrente constante (PWM) senão vai queimar o motor. Qual a resistência de cada fase do motor?
Vai alimentar o motor com dois reguladores 7815?
Eu usaria diodos "free-wheeling"...
Exatamente Minilathe, a alimentação eu estou usando 2 reguladores 7815 em paralelos.
No datasheet do motor na forma unipolar está
- Resistencia por fase 22Ohm
- 13,2V
- 0,6A
sobre esse diodo "free-wheeling" eu desconheço.
-
Para ter 0,6A por fase com 13,2V acho que vai precisar de controle de corrente constante (PWM) senão vai queimar o motor. Qual a resistência de cada fase do motor?
Vai alimentar o motor com dois reguladores 7815?
Eu usaria diodos "free-wheeling"...
Exatamente Minilathe, a alimentação eu estou usando 2 reguladores 7815 em paralelos.
No datasheet do motor na forma unipolar está
- Resistencia por fase 22Ohm
- 13,2V
- 0,6A
sobre esse diodo "free-wheeling" eu desconheço.
Acho os reguladores 7815 desnecessários, ao invés disso, um controle por corrente seria mais efetivo. No seu circuito atual, se a velocidade de acionamento aumentar a corrente vai cair devido a indutância das fases e o motor vai perder passos.
-
Então como seria a alimentação do motor, o que usar como fonte ?
Sobre o PWM eu não usar, estou usando a seguinte lógica
while (true) //INICIANDO LOOP INFINITO
{
cont=0;
while (cont <= volta)
{
output_d(0b00000101);
delay_ms(vel);
output_d(0b00000110);
delay_ms(vel);
output_d(0b00001010);
delay_ms(vel);
output_d(0b00001001);
delay_ms(vel);
cont ++;
}
-
Então como seria a alimentação do motor, o que usar como fonte ?
Sobre o PWM eu não usar, estou usando a seguinte lógica
while (true) //INICIANDO LOOP INFINITO
{
cont=0;
while (cont <= volta)
{
output_d(0b00000101);
delay_ms(vel);
output_d(0b00000110);
delay_ms(vel);
output_d(0b00001010);
delay_ms(vel);
output_d(0b00001001);
delay_ms(vel);
cont ++;
}
Você executou um ciclo de acionamento das fases do motor (4 passos do motor), mas quanto ciclos são necessários por volta do motor?
Com relação a não usar o PWM, para baixa velocidades não é necessário. Mas se quiser aumentar a velocidade, o motor perderá passos.
-
O motor é unipolar de 1,8°, sendo assim para completar uma volta são 200 passos.
no caso para dar uma volta é feito a seguinte calculo:
volta = (200/4)-1
volta = 49
Então para alta velocidade a melhor opção é o PWM? No caso o L297?
-
O motor é unipolar de 1,8°, sendo assim para completar uma volta são 200 passos.
no caso para dar uma volta é feito a seguinte calculo:
volta = (200/4)-1
volta = 49
Então para alta velocidade a melhor opção é o PWM? No caso o L297?
Sim, PWM seria o ideal para atingir velocidades elevadas, mas pode ser com L-297 ou um microcontrolador ou outro CI dedicado para controle de motores.
-
No meu caso com o microcontrolador não tive sucesso em alta velocidade. Vou estudar o L-297 !
Sobre a tensão de alimentação do motor, aplico a tensão informada no datasheet e controlo a corrente por resistores ?
-
Vou estudar o L-297 !
Boa providência.
Sobre a tensão de alimentação do motor, aplico a tensão informada no datasheet e controlo a corrente por resistores ?
O L297 é um controlador chopper ... em outras palavras, uma fonte de corrente constante chaveada ... a corrente é mensurada por meio de resistores de baixo valor em série com os enrolamentos, um comparador desliga a alimentação quando a corrente atinge o valor determinado por uma tensão de referência e após um tempo fixo a a alimentação é restabelecida e o ciclo se repete, mantendo a corrente constante dentro de estreitos limites.
A tensão de alimentação será determinada pelas características da etapa de potência, não pelo L297.
-
fiz uma rampa para motor pequeno de multifuncional de 12V a primeira vez vai de boas mas as demais nem sempre funciona.
10 pulsos de 15ms
10 pulsos de 8ms
10 pulsos de 4ms
1000 pulsos de 1ms
Você fez uma "escada" de aceleração e não uma rampa, supondo que Ton=Toff, o primeiro degrau com 10*30=300ms de duração, o segundo com 10*16=160ms, o terceiro com 10*8=80ms o quarto com 1000*2=2s.
Além disso, fez um movimento acelerado e não com aceleração constante. Se a aceleração é constante, o torque é constante e se o torque é constante, um acionamento com corrente constante resolve. Sabendo que T= M x a, num sistema puramente inercial sem atrito (motor sem carga mecânica, apenas o rotor sendo movido), onde T = torque, M = momento de inércia e a=aceleração angular.
Se a aceleração é constante, então a=(V2-V1)/(T2-T1)
T2-T1: duração do degrau
V2: velocidade ao final do degrau (rotações por segundo)
V1: velocidade no início do degrau (rotações por segundo)
Para "a" ser constante, use T2-T1 constante e varie V2-V1 em intervalos regulares, exemplos:
(1) 5, 10, 15, 20, 25, 23, 35, 40, 45, ... um degrau a cada 10 ms
ou então:
(2) 10, 20, 30, 40, 50, ... um degrau a cada 20 ms
Ambos os movimentos acima possuem aceleração de (20-10)/20 = 0,5 rotação/segundo2
Variando a duração ou o acréscimo dos degraus, varia-se a aceleração, ok?
Agradeço a explicação mas como sou muito leigo, lá vai perguntas:
neste caso (1) 5, 10, 15, 20, 25, 23, 35, 40, 45, ... um degrau a cada 10 ms
aplico 5 pulsos delay 10ms - 5 pulsos delay 10ms... até 45 pulsos correto?
A pergunta é: qual a duração do pulsos de nivel "alto" e "nivel "baixo" na entrada do clock?
Qdo ligo o circuito do L297, já tem saída ativa e o motor nema23 alimentado com 5V/12V começa a vibrar sem aplicar nenhum pulso, aquecendo obviamente os fet IRF840. Sendo assim não consigo nem testar.
colocando o motor da multifuncional de menor carga eu consigo funcionar, mas ainda não consegui atingir velocidade desejável de 40 voltas em 250ms. Aqui o Enable está sempre habilitado.
O motor nema 23km-C051 6 fios tem as cores pt-vm-am outro bc-lj-az.
pt+bc=12V
saidas a=vm, b=am, c=lj e d az.
Com outro circuito igual do Thiago, montado com 4 tip122, o nema23 funciona porém com baixa rotação.
-
ola esse assunto me interessa to entrando na conversa tambem
sou novo no forum e muito pouco conhecimento
quantos rpm é possivel num motor de 1.8 graus.