Guia CNC Brasil - Tudo sobre CNC, Router, Laser, Torno e 3D Print

ELETRÔNICA / ELÉTRICA => Eletrônica Básica => Eletrônica - Dúvidas => Tópico iniciado por: everton83 em 03 de Outubro de 2012, 18:20

Título: CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: everton83 em 03 de Outubro de 2012, 18:20
Olá, a todos

Estou no quarto ano de Eng. Mecatrônica e comecei a projetar meu TCC, ele consistem em um sistema controlado com o PIC 16F877A este controlador vai gerenciar todas as entradas e responder através do controle de 4 motores de passo 23KM C051 07V no caso um eixo cartesiano X-Y-Z + Esteira + Garra(servo motor).

Minha dificuldade esta em controlar os motores de passo, pois estava pretendendo utilizar o ULN 20803 ligado ao PIC para estabelecer o controle dos motores, no entanto  como estive lendo cada fase do 23KM C051 07V consomem 2A quatro vezes o que o ULN2803 pode oferecer.

Caso alguém possa me ajudar dizendo quais componentes posso utilizar ou um link de algum circuito já facilita, é importante considerar as seguintes premissas: Irei precisar controlar os motores com PIC, um circuito simples pois não terá muito esforço igual a um CNC. Obrigado!  8)

Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: minilathe em 03 de Outubro de 2012, 18:44
Everton,

Olá, a todos

Estou no quarto ano de Eng. Mecatrônica e comecei a projetar meu TCC, ele consistem em um sistema controlado com o PIC 16F877A este controlador vai gerenciar todas as entradas e responder através do controle de 4 motores de passo 23KM C051 07V no caso um eixo cartesiano X-Y-Z + Esteira + Garra(servo motor).

Minha dificuldade esta em controlar os motores de passo, pois estava pretendendo utilizar o ULN 20803 ligado ao PIC para estabelecer o controle dos motores, no entanto  como estive lendo cada fase do 23KM C051 07V consomem 2A quatro vezes o que o ULN2803 pode oferecer.

Caso alguém possa me ajudar dizendo quais componentes posso utilizar ou um link de algum circuito já facilita, é importante considerar as seguintes premissas: Irei precisar controlar os motores com PIC, um circuito simples pois não terá muito esforço igual a um CNC. Obrigado!  8)

Sendo um TCC, algumas simplificações são às vezes assumidas, visando a redução de custos e prazos de implementação. Assim, se a velocidade não for elevada, um circuito de controle de corrente do tipo PWM (chopper) não seria necessário, partindo para uma solução mais simples (do tipo phase drive).

O motor sendo de 2A, não quer dizer que você precise acioná-lo com 2A. Evidentemente, que usando uma corrente menor (ex.: 1A),  o torque será menor. Desse modo, as premissas do projeto (custo, tempo de implementação e de testes, velocidade da CNC, tensão da fonte, ...) devem ser ajustadas para que o projeto seja efetivamente concluído no prazo e com os custos planejados.

No caso do acionamento dos motores, ao invés do ULN2803 pode ser usado um L298 ou um L6203 associados com uma fonte de corrente constante (LM350) ou com resistores limtadores de corrente. Ou até um chopper, através de um L297, ou do próprio PIC. Mas perceba que o grau de complicação do seu projeto vai aumentando, e você vai ampliando o escopo do seu trabalho, o que implica em maiores incertezas quanto ao atendimento aos prazos esperados e ao orçamento de implementação previsto.
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: everton83 em 03 de Outubro de 2012, 19:48
Obrigado pela rapidez,

Concordo não preciso de um torque de 9,9 Kgf, na minha aplicação, a escolha pelos motores 23KM C051 é custo encontramos com valor mais acessível,  pelos cálculos um de 5 Kgf seria suficiente.

Ainda não compreendi como farei a limitação da corrente. Veja no anexo que já alterei coloquei o L298 e está funcionando corretamente. Pino VCC coloquei 5V e o VS 12V alimentação do motor de passo.

Gostaria que me explica-se mais detalhado como farei a alimentação. Pelo que vi em sua resposta não será simplesmente colocar uma fonte de 12V e só?

Para cada motor de passo terei um L298 correto, e qual a implicação ao circuito de acionar por exemplo 3 motores simultaneamente (X-Y + Esteeira)?


Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: minilathe em 03 de Outubro de 2012, 22:29
Everton,

Ainda não compreendi como farei a limitação da corrente. Veja no anexo que já alterei coloquei o L298 e está funcionando corretamente. Pino VCC coloquei 5V e o VS 12V alimentação do motor de passo.

Como o motor estará alimentado no modo bipolar, não é necessário ligar nenhuma fonte de alimentação ao motor, apenas o +Vs do L298.

Gostaria que me explica-se mais detalhado como farei a alimentação. Pelo que vi em sua resposta não será simplesmente colocar uma fonte de 12V e só?

Não basta uma fonte e só.... Aliás, depende... se a velocidade de sua CNC puder ser baixa, sendo apenas uma prova de conceito e pode ser uma CNC do tipo tartaruga, uma fonte apenas, sem controle de corrente algum atende. De novo...., depende das restrições e premissas de seu projeto e de seus conhecimentos / experiência com eletrônica e programação.

Para manter o torque em qualquer velocidade de acionamento do motor, a corrente no motor de passo deve ser constante. Isso se consegue através de: (1) resistor limitador, (2) regulador série, (3) circuito chopper. As opções estão em ordem de complexidade. A segunda solução (2) me parece a mais indicada se você busca algo simples, de implementação rápida e pouca programação. Isso se quiser uma "tartaruguinha" mais esperta.

Para cada motor de passo terei um L298 correto, e qual a implicação ao circuito de acionar por exemplo 3 motores simultaneamente (X-Y + Esteeira)?

A princípio não há problema acionar tres motores, cada um com um L298 e um controlador de corrente, a limitação é o seu software. Se for mal escrito, pode ficar mais lenta.
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: everton83 em 10 de Novembro de 2012, 22:36
Boa noite, Minilathe

Para fechar o assunto: estou utilizando um L298 para cada um dos 3 motores de passo dos eixos X, Y e Z.

Os pinos ENABLEA e ENABLEB do L298 estou colocando em nível alto e aterrando os pinos SENA e SENB.
Através dos pinos IN1 a IN4 o PIC 16F877A controla as saídas OUT1 a OUT4 com valor de tensão de 12V alimentado pelo pino VS do L298.

Pelo que estudei sobre pontos que postou acredito que esteja correto, no entanto a fonte que estou utilizando é de um PC com tensão de alimentação de 12V e 22A.

Com esta fonte posso alimentar direto o L298 sem problemas?
A configuração que estou citando acima e no anexo estão corretas?

Agradeço pela ajuda!
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: minilathe em 10 de Novembro de 2012, 23:24
Everton,

Boa noite, Minilathe

Para fechar o assunto: estou utilizando um L298 para cada um dos 3 motores de passo dos eixos X, Y e Z.

Os pinos ENABLEA e ENABLEB do L298 estou colocando em nível alto e aterrando os pinos SENA e SENB.
Através dos pinos IN1 a IN4 o PIC 16F877A controla as saídas OUT1 a OUT4 com valor de tensão de 12V alimentado pelo pino VS do L298.

Pelo que estudei sobre pontos que postou acredito que esteja correto, no entanto a fonte que estou utilizando é de um PC com tensão de alimentação de 12V e 22A.

Com esta fonte posso alimentar direto o L298 sem problemas?
A configuração que estou citando acima e no anexo estão corretas?

Agradeço pela ajuda!

Seu circuito não possui controle de corrente pwm (chopper), portanto, não possibilita a operação do motor em tensões mais altas, no caso, 12 ou 22V, bem acima da tensão nominal do motor. Isto pode causar queima do motor por sobrecorrente e consequente aquecimento excessivo. Desse modo, seu circuito funcionará em baixas velocidades e tensões de alimentação da ordem de 6 a 10V (a ser testado).

Para aproveitar o circuito, o ideal seria se o mesmo utilizasse controle chopper. O que requer o uso dos comparadores do PIC medindo a corrente através de resistores, bem como software adequado.
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: Joao Henrique em 11 de Novembro de 2012, 03:20
Everton,
tenho uma aplicação parecida com a que você quer. Fiz uma controladora com PIC e uso drives CNC3AX-M para acionamento dos motores em modo unipolar.
É só pesquisar aqui no forum sobre CNC3AX-M.

João Henrique
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: everton83 em 24 de Novembro de 2012, 00:11
Galera,

Fiz as alterações conforme citado nos cementatórios e com base nos artigos que li aqui no site Guia CNC.

Estou utilizando os ICS L297 e L298, com isso o PIC fica apenas com a função de gerar o Clock, definir o sentido do giro do motor e habilitar / desabilitar o motor.

Estou anexando a foto do circuito gostaria que descem uma olhada e comentassem, no simulador Proteus esta funcionando corretamente no entanto na pratica não testei só o farei com tiver certeza que não estou cometendo nenhum engano.

Os componentes que utilizei para para ligação nos L297 e L298 foram os seguintes:

Resistor de 0R47 Carbono 5% 1/4W - Pinos SENS1 / SENS2
Resistor de 22K Carbono 5% 1/4W - Pino VREF
Trimpot Multivoltas 3296W 20K - Pino VREF
Capacitor Eletrolítico 4700uF x 25V - Pino VS


Grato, pelos comentários!
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: everton83 em 16 de Dezembro de 2012, 17:30
Gil,

Algum comentário do circuito elétrico que postei acima.

Estou empregando de forma correta o circuito de 'controle de corrente pwm (chopper)'?

Agradeço pelos comentários!
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: minilathe em 16 de Dezembro de 2012, 18:15
Gil,

Algum comentário do circuito elétrico que postei acima.

Estou empregando de forma correta o circuito de 'controle de corrente pwm (chopper)'?

Agradeço pelos comentários!

Sugestões:
-Faltam o par RC no pino OSC num dos L-297 (localizado na parte superior de seu desenho) para que o oscilador do chopper  funcione e seja sincronizado em todos os L-297.
-Use um capacitor de 0.1 uF nos pinos Vref dos L-297.
-Ligue diodos nas saídas para as fases dos motores nos L-298.
-Deixe os pinos HOME dos L-297 sem conexão.

Consulte os manuais do L-297 e L-298, lá encontrará referências para as minhas sugestões.
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: carlos.felipe88 em 30 de Dezembro de 2012, 20:52
minilathe, tudo bem ?

saberia me dizer se os diodos nas saidas do L-298 poderiam ser os 1N4007 ?

pelo que li no datasheet do CI, teriam que ser diodos de recuperação rapida de ate tff = 200ns

esses diodos atenderiam ?

Obrigado
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: everton83 em 30 de Dezembro de 2012, 22:43
Gil, boa noite

Eu perderia muito desempenho dos motores se fosse controla-los com este circuito que encontrei aqui no fórum?

http://www.guiacnc.com.br/microcontroladores/controladora-de-motor-de-passo-unipolar-sem-pc/ (http://www.guiacnc.com.br/microcontroladores/controladora-de-motor-de-passo-unipolar-sem-pc/)


Para tal teria uma tensão constante de alimentação nos fios branco e preto do motor ligado em unipolar?

grato,

Everton
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: minilathe em 30 de Dezembro de 2012, 23:59
minilathe, tudo bem ?

saberia me dizer se os diodos nas saidas do L-298 poderiam ser os 1N4007 ?

pelo que li no datasheet do CI, teriam que ser diodos de recuperação rapida de ate tff = 200ns

esses diodos atenderiam ?

Obrigado

Os diodos para essa aplicação devem possuir capacidade de corrente, velocidade e tensão máxima reversa adequadas. O 1N4007, de junção tipo PN, não atende em velocidade e corrente máxima. O ideal seriam diodos do tipo Schottky.
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: minilathe em 31 de Dezembro de 2012, 00:05
Gil, boa noite

Eu perderia muito desempenho dos motores se fosse controla-los com este circuito que encontrei aqui no fórum?

http://www.guiacnc.com.br/microcontroladores/controladora-de-motor-de-passo-unipolar-sem-pc/ (http://www.guiacnc.com.br/microcontroladores/controladora-de-motor-de-passo-unipolar-sem-pc/)


Para tal teria uma tensão constante de alimentação nos fios branco e preto do motor ligado em unipolar?

grato,

Everton

Depende da aplicação. Para mover motores de passo lentamente, um circuito PWM ou chopper não seriam necesários. Bastaria uma fonte de tensão e acionamento sob tensão constante mesmo. Mas, se a aplicação demandar motores em controle em ampla faixa de velocidades, um chopper é bem melhor.

Esse circuito do link não serve para velocidades mais altas.
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: everton83 em 17 de Janeiro de 2013, 21:56
Gil, boa noite

Acredito que cheguei ao final do projeto apos seguir as orientações, estudar os data sheets e materiais do fórum.

Estou enviando anexo o esquemático de montagem, apenas da parte de controle de um motor depois vou acrescentar o PIC 16F877A e estender para mais 3 motores.

Estou mandando também a lista de materiais que pretendo utilizar, pois fiquei com duvida na especificação dos componentes.

Poderia fazer suas considerações e se os componentes estão especificados corretamente.

Por exemplo os resistores de carbono e de filme de metal.

Agradeço pelas informações.
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: minilathe em 17 de Janeiro de 2013, 23:13
Everton,

Eu acrescentaria um capacitor de 100nF x 50V em paralelo com RV1. Também acrescentaria mais dois resistores de 1 ohm x 0,5 Watts em paralelo com os existentes (Rsense), no caso de corrente de fase do motor ser mais elevada (2,5A). Se não usar, a placa fica com furos a mais para uso futuro.
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: everton83 em 01 de Maio de 2013, 17:49
Gil, boa tarde

Recentemente finalizei a montagem do circuito com o par L297/L298 para controlar os motores no entanto ainda não consegui sucesso. Colocando uma das saídas do L298 no osciloscópio obtenho um sinal com um degrau que acredito que não deveria existir segue anexo uma foto para facilitar o entendimento.
Com isso o motor fica apenas com um ruido e não gira, de maneira geral o sinal fica em nível alto durante 1 seg, porem neste período o nível alto oscila entre 5 e 12 V.
Na leitura do osciloscópio o valor esta multiplicado por 10x.

Poderia sitar algumas das possibilidades para o defeito, grato.
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: minilathe em 01 de Maio de 2013, 23:24
Recentemente finalizei a montagem do circuito com o par L297/L298 para controlar os motores no entanto ainda não consegui sucesso. Colocando uma das saídas do L298 no osciloscópio obtenho um sinal com um degrau que acredito que não deveria existir segue anexo uma foto para facilitar o entendimento.
Com isso o motor fica apenas com um ruido e não gira, de maneira geral o sinal fica em nível alto durante 1 seg, porem neste período o nível alto oscila entre 5 e 12 V.
Na leitura do osciloscópio o valor esta multiplicado por 10x.

Explique melhor.

Na tela do osciloscópio há um sinal com tensão pico a pico de aproximadamente 1V, se o sinal real está multiplicado por 10x (provavelmente está em uso uma ponta de prova com atenuação) seriam 10 Vpp? É isso? Essa seria a tensão numa das fases do motor? Onde foi medido?

Mas o motor não gira? E o sinal da(s) outra(s) fase(s)?
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: everton83 em 02 de Maio de 2013, 22:25
Cada quadro do osciloscópio representa 5V com uma frequência de 1 s por tanto o sinal sobe para 5V durante 0,2 s, depois sobe para 12v durante 0,6 s cai para 5V por mais 0,2 s. Este é o sinal do out1 do L298.
Os fios do motor conectei da seguinte forma fios preto e branco no 12V e os demais nos out1, out2, out3 e out4 do L298.
Ambas as fases tem este mesmo comportamento, o motor faz um ruido e não gira.
Segue um anexo da simulação do Proteus mas não ocorre o degrau de 5v, fica apenas nos 12V.

Fico no aguardo dos comentários, obrigado!
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: minilathe em 03 de Maio de 2013, 00:16
Cada quadro do osciloscópio representa 5V com uma frequência de 1 s por tanto o sinal sobe para 5V durante 0,2 s, depois sobe para 12v durante 0,6 s cai para 5V por mais 0,2 s. Este é o sinal do out1 do L298.
Os fios do motor conectei da seguinte forma fios preto e branco no 12V e os demais nos out1, out2, out3 e out4 do L298.
Ambas as fases tem este mesmo comportamento, o motor faz um ruido e não gira.
Segue um anexo da simulação do Proteus mas não ocorre o degrau de 5v, fica apenas nos 12V.

Fico no aguardo dos comentários, obrigado!

Os motores estão ligados errados. O L298 é um driver para motor bipolar (a 4 fios) e você ligou o motor como unipolar (a 6 fios). Não precisa ligar o motor (tap central dos enrolamentos) ao +Vmot. Ao invés disso, ligue o motor como bipolar série (primeiramente), para isso, é só desconectar o fio central de cada enrolamento do +Vmot.

Além disso, o sinal da outra fase (que não foi mostrado) deve estar defasado de 180 graus, senão, também não funciona. O ideal seria mostrar os dois sinais (de cada fase), um em cada canal do osciloscópio, para comparação.

Nota: +Vmot=+12V
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: everton83 em 05 de Maio de 2013, 18:55
Boa noite,

Primeiramente agradeço pelas dicas, depois de varias leituras e tentativas consegui montar o Driver e fazer o motor de passo funcionar.
No entanto estive vendo na internet que é possível extrair uma velocidade muito superior a que eu consegui.
No meu caso estou gerando o clock para o L297 com um Pic 16F628A com um cristal oscilador de 8 MHz.
Os intervalos de clock estão ajustados para 100 ms, quando diminuo o valor o motor pula alguns passos fica instável, pensei se seria o caso de colocar um cristal com uma frequência maior.

Gil, poderia me orientar como posso obter maior velocidade?

Link com o vídeo do motor que estou acionando>> 23KM C051 07V (http://www.youtube.com/watch?v=5MEjwpB_hls#)
LinK com o mesmo motor com velocidade muito superior >> Teste da placa Cnc3AX - cnc caseira - controladora 3 eixos - motores de passo - homemade (http://www.youtube.com/watch?v=hvzht8rV_sQ#)
Título: Re:CONTROLE DE MOTOR DE PASSO 23KM C051 COM PIC 16F877A
Enviado por: minilathe em 05 de Maio de 2013, 23:01
Boa noite,

Primeiramente agradeço pelas dicas, depois de varias leituras e tentativas consegui montar o Driver e fazer o motor de passo funcionar.
No entanto estive vendo na internet que é possível extrair uma velocidade muito superior a que eu consegui.
No meu caso estou gerando o clock para o L297 com um Pic 16F628A com um cristal oscilador de 8 MHz.
Os intervalos de clock estão ajustados para 100 ms, quando diminuo o valor o motor pula alguns passos fica instável, pensei se seria o caso de colocar um cristal com uma frequência maior.

Gil, poderia me orientar como posso obter maior velocidade?

Sim, é possível extrair velocidades maiores, tendo em vista que você está usando um driver bipolar, que, se bem utilizado, é superior a CNC3AX.  Algumas coisas que você deve observar para obter maior desempenho:

(1) Utilizar tensões de alimentação do motor elevadas (36V, por exemplo).

(2) Verifique com cuidado a sua lógica de controle chopper, que pode não estar operando corretamente (suponho que você esteja fazendo um controle por corrente através dos comparadores do PIC). Procure "copiar" o funcionamento de um L-297, com um acionamento do tipo "set dominant". Para isso, um osciloscópio é peça chave durante os testes e depuração do software. Um controle de corrente deficiente resulta em baixo torque em altas velocidades. O ideal seria usar interrupções comandada pelos comparadores, para que o controle chopper por software efetue o comando correto do motor.

(3) Use rampas de aceleração/desaceleração, para que não haja perda de passos.

(4) Para gerar o clock do motor, não é indispensável um clock maior associado a um comando de sleep(xxx), por exemplo. Um controle através de divisores e contadores internos do PIC associado a uma interrupção também funciona muito bem, com um clock não muito elevado.