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

MECÂNICA => Motores em Geral => Tópico iniciado por: rodrigoshaller em 21 de Maio de 2010, 19:54

Título: Ajuda para controlar motor de passo bipolar
Enviado por: rodrigoshaller em 21 de Maio de 2010, 19:54
Olá, estou fazendo um pêndulo invertido no meu projeto de TCC, só que estou com problemas para controlar um motor de passo bipolar de impressora. O controle precisa ser em linguagem C (para PIC 16f877A).


Tenho um circuito com 2 pontes-h (uma para cada bobina) sendo que a ordem de ativação é controlada pelo pic.

Tentei fazer uma "gambiarra" hoje para testar o motor, porém ele fica com uma velocidade muito limitada (limitação que não pode ser do motor, pois um motor de impressora se movimenta em velocidade relativamente rápida)

Código (Programa utilizado: PIC COMPILER):

#include <16f877A.h>             // *1 - identifica microcontrolador alvo
#device ADC=10                   // *2 - define AD para 10 bits, variando de 0 a 1023
#use delay (clock=20000000)      // *3 - define cristal para 20Mhz. Para outros valores, mude e recompile.
#include <cuscostdio_new_01.h>   // *4 - Biblioteca com funções específicas para a Placa CuscoPic
#fuses HS, NOWDT, NOPROTECT, NOBROWNOUT, NOLVP, PUT // *5 - configuração dos fusíveis do PIC
#define t1 10
#define t2 2

// programa principal
void main(void)       
{
   short run = 1;
 
  // laço principal
   while(run)
   {
     while(input(PIN_D0)==1) // Gira para a direita;
     {
         output_high(PIN_C0);// Ativa bobina A;
         delay_ms(t1);
         output_low(PIN_C0);// Desativa bobina A;
         delay_ms(t2);
         
         output_high(PIN_C1);// Ativa bobina B;
         delay_ms(t1);
         output_low(PIN_C1);// Desativa bobina B;
         delay_ms(t2);
         
         output_high(PIN_C2);// Ativa bobina !A;
         delay_ms(t1);
         output_low(PIN_C2);// Desativa bobina !A;
         delay_ms(t2);
         
         output_high(PIN_C3);// Ativa bobina !B;
         delay_ms(t1);
         output_low(PIN_C3);// Desativa bobina !B;
         delay_ms(t2);
     }
     while(input(PIN_D1)==1) // Gira para a esquerda;
     {
         output_high(PIN_C3);// Ativa bobina !B;
         delay_ms(t1);
         output_low(PIN_C3);// Desativa bobina !B;
         delay_ms(t2);
         
         output_high(PIN_C2);// Ativa bobina !A;
         delay_ms(t1);
         output_low(PIN_C2);// Desativa bobina !A;
         delay_ms(t2);
         
         output_high(PIN_C1);// Ativa bobina B;
         delay_ms(t1);
         output_low(PIN_C1);// Desativa bobina B;
         delay_ms(t2);
         
         output_high(PIN_C0);// Ativa bobina A;
         delay_ms(t1);
         output_low(PIN_C0);// Desativa bobina A;
         delay_ms(t2);
     }   
   }
}



Alterei t1 e t2 de várias formas, mas não obtive sucesso em relação a velocidade.

O motor da a impressão de estar dando umas trancadas entre um passo e outro, pois ele fica trepidando.


Alguem sabe por que não está funcionando?
Ou talvez saibam onde há uma biblioteca de controle de motores de passo bipolares que eu possa usar?

Desde já agradeço.
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: C N C N o w ! em 21 de Maio de 2010, 20:03

Rodrigo, para essa aplicação seria recomendável um servo e não um motor de passo.

O motor de passo pode funcionar, mas vc terá que usar um driver chopper ou implementar um com o uC ...

Pesquise sobre chopper no fórum ...

Seu programa não está adequado nem à tarefa, nem ao motor, não há rampa de aceleração / desaceleração e o acionamento está em modo wave drive, o pior. Recomendo que antes de mais nada familiarize-se com a operação de motores de passo ...
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: F.Gilii em 21 de Maio de 2010, 20:06
Não entendo de programação, mas 1 milissegundo não é tempo demais para energizar a fase, e 2 ms tempo maior ainda para desenergizar?

Os drivers que conheço usam tempos mais curtos - por exemplo 5 us...

se eu fiz a conta certa (posso ter errado) 1 ms = 1000 us...
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: rodrigoshaller em 21 de Maio de 2010, 20:44
Citar
Seu programa não está adequado nem à tarefa, nem ao motor, não há rampa de aceleração / desaceleração e o acionamento está em modo wave drive, o pior. Recomendo que antes de mais nada familiarize-se com a operação de motores de passo ...

Por isso que eu disse: Gambiarra.

Citar
Rodrigo, para essa aplicação seria recomendável um servo e não um motor de passo.

Tarde demais para voltar atraz agora. Mas desde que o motor consiga atingir uma velocidade parecida com a de "impressão" está ótimo.

Citar
O motor de passo pode funcionar, mas vc terá que usar um driver chopper ou implementar um com o uC ...

Você saberia me dizer como implementar no microcontrolador? Realizei uma pesquisa no forum, mas não encontrei nada satisfatório.

Citar
Não entendo de programação, mas 1 milissegundo não é tempo demais para energizar a fase, e 2 ms tempo maior ainda para desenergizar?

Os drivers que conheço usam tempos mais curtos - por exemplo 5 us...

se eu fiz a conta certa (posso ter errado) 1 ms = 1000 us...

Estes valores são exemplos, mas o valor mais baixo que o motor conseguiu andar foi 5ms, menos que isso ele não funcionava (a menos que fosse feita uma aceleração gradual, por exemplo: iniciar o motor com 100ms, depois diminuir para 10ms, e depois para 1ms).

Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: rodrigoshaller em 21 de Maio de 2010, 21:17
Citar
Tenho um circuito com 2 pontes-h (uma para cada bobina) sendo que a ordem de ativação é controlada pelo pic.

Isto não é carácterizado como Chopper?

"Qualquer sistema de potência a semicondutor empregado para retificar, inverter, ou mesmo para modular a potência de saída de uma fonte de energia DC ou AC é chamado de sistema conversor ou sistema de condicionamento de potência.
O “chopper” (que pode ser traduzido por cortador, pulsador, interruptor, etc.) que, devido ao princípio de operação, permite variar a tensão média DC aplicada a uma dada carga sem que ocorra uma grande dissipação de potência nos elementos chaveadores (tiristores ou transistores)."
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: C N C N o w ! em 21 de Maio de 2010, 22:10
Isto não é carácterizado como Chopper?

Não. Chopper pode ser designação genérica para fonte chaveada, mais especificamente no que se refere a motores de passo é uma fonte de corrente constante chaveada, regulada em malha fechada, o que não é o caso apresentado.
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: C N C N o w ! em 21 de Maio de 2010, 22:38
Rodrigo, não tenho código à mão para essa função, não é muito difícil implementar, mas requer conhecimentos de eletrônica tb ... talvez seja mais simples vc usar um driver qualquer e concentrar-se no programa de controle, que é o que interessa mais. De quebra vc alivia o uC ...

Há muitos exemplos de pêndulos por aí, acho que vale a pena pesquisar um pouco ...

PS: Esta nota de aplicação da Microchip pode ajudar:

http://ww1.microchip.com/downloads/en/AppNotes/00907a.pdf

Tb costumo indicar isto:

http://www.cs.uiowa.edu/~jones/step/
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: minilathe em 22 de Maio de 2010, 13:38

Um pêndulo invetido requer pelo menos um motor e um sensor de posição e um algoritmo de controle em malha fechada (que pode ser do tipo PID, Fuzzy, ...). O motor deve ser rápido e de baixo momento de inércia (um motor DC seria mais indicado) para poder reverter o sentido de rotação rapidamente.  Eu usaria um motor DC e um potenciômetro. Há um tópico sobre pêndulo invertido no Forum. Eu estou entalado com esses projeto por unica e exclusivamente falta de tempo  :(

Mas, breve eu concluo...

Mas se quiser ir fazendo o seu, podemos orientar.
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: rodrigoshaller em 22 de Maio de 2010, 15:35
Citar
Um pêndulo invetido requer pelo menos um motor e um sensor de posição e um algoritmo de controle em malha fechada (que pode ser do tipo PID, Fuzzy, ...).

Ele tem um sensor de posição incremental e estou fazendo o algorítimo PID.


Citar
Mas se quiser ir fazendo o seu, podemos orientar.

Eu quero. Na verdade, já está quase concluído.

Só que encontrei essa pedra no meu caminho... (Controlar o motor de passo bipolar)

Sou leigo em programação, sei somente o básico...

Por isso preciso de ajuda para elaborar um algorítimo de controle para o motor.
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: minilathe em 22 de Maio de 2010, 18:21
Citar
Um pêndulo invetido requer pelo menos um motor e um sensor de posição e um algoritmo de controle em malha fechada (que pode ser do tipo PID, Fuzzy, ...).

Ele tem um sensor de posição incremental e estou fazendo o algorítimo PID.

O motor de passo possui um sensor incremental? Acho muito mais fácil, para voce, processar sinal de um potenciômetro. Quantos passos por volta o seu encoder gera?

Sou leigo em programação, sei somente o básico...

Por isso preciso de ajuda para elaborar um algorítimo de controle para o motor.

Controlar um motor CC é fácil, além de ser um motor mais adequado a esta aplicação. O algoritmo PID não é dificil ser feito, ainda mais em C.

Antes de partir para o algoritmo é melhor resolver a parte do sensor (sugestão: potenciômetro) e atuador (motor CC).
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: rodrigoshaller em 23 de Maio de 2010, 21:54
Citar
Quantos passos por volta o seu encoder gera?


É um sensor de mouse de "bolinha", não estou com ele no momento, mas creio que são em média uns 50 passos por volta.

Citar
O algoritmo PID não é dificil ser feito, ainda mais em C.
O algorítimo não é problema, o único problema mesmo é o controle do motor de passo.

Mesmo sabendo que o ideal é um motor CC, vou insistir com o motor de passo.

Se ele alcança uma alta velocidade quando controlado pela impressora, significa que há uma maneira de fazê-lo.

Só preciso de uma ajudinha! :D
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: minilathe em 23 de Maio de 2010, 23:12
Citar
Quantos passos por volta o seu encoder gera?


É um sensor de mouse de "bolinha", não estou com ele no momento, mas creio que são em média uns 50 passos por volta.

Considere o seguinte, se o sensor fornece 50 passos por volta, são 360/50 = 7,2 graus por passo. Acho um valor alto para um controle eficiente. Ou seja, o pêndulo vai se mover no mínimo +/- 7,2 graus, voce não acha isso muito?

Citar
O algoritmo PID não é dificil ser feito, ainda mais em C.
O algorítimo não é problema, o único problema mesmo é o controle do motor de passo.

Mesmo sabendo que o ideal é um motor CC, vou insistir com o motor de passo.

Se ele alcança uma alta velocidade quando controlado pela impressora, significa que há uma maneira de fazê-lo.

Só preciso de uma ajudinha! :D

O que voce chama de "alta velocidade" deve ser pensando com cuidado, o que deve ser considerada é a dinâmica do sistema. Por exemplo, se o braço do pêndulo for pequeno, o momento de inércia é baixo e a velocidade do sistema também, ou seja, o motor de passo pode não servir dependendo do seu sistema. Além disso, um motor de passo, se não usar microstepping, vai se mover em trancos, o que não seria recomendável num pêndulo. Mas, é apenas minha opinião, apesar de mais de dez anos de experiência com controle de processos, sempre aprendemos algo novo...

Tenho o costume de projetar, planejar e pensar antes de sair fazendo... :)
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: rodrigoshaller em 24 de Maio de 2010, 08:27
Citar
Considere o seguinte, se o sensor fornece 50 passos por volta, são 360/50 = 7,2 graus por passo. Acho um valor alto para um controle eficiente. Ou seja, o pêndulo vai se mover no mínimo +/- 7,2 graus, voce não acha isso muito?


Bem, não tenho experiência nenhuma, mas, ao meu ver, não acho que seja muito.

A engrenagem que gira a correia possui 20mm de circunferência; São 50 passos em 20mm.

Isso da 0,4mm por passo.


Sei que o projeto que estou fazendo está muito longe do ideal, fiz ele com os recursos que possuía e com o pouco conhecimento que tinha.

Não imaginei que teria problemas com o motor de passo, pelo contrário, pensei que seria até melhor.


Está um pouco em cima da hora para mudar o sensor e o motor, por isso estou disposto a continuar tentando desta maneira.


Isso serve de experiência para projetos futuros.


Citar
Tenho o costume de projetar, planejar e pensar antes de sair fazendo... :)


Eu entendo o que você quer dizer, até mesmo pesquisei antes de iniciar o projeto, mas creio que um pouco pela falta de experiência, não dei a devida importância para coisas simples.

Agora é tarde demais para voltar atraz, falta menos de 1 mês para a conclusão do projeto.

Quero concluí-lo, nem que seja para demonstrar o motivo pelo qual o projeto não funcionou.
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: C N C N o w ! em 24 de Maio de 2010, 08:42
Bem, não tenho experiência nenhuma, mas, ao meu ver, não acho que seja muito.

É muito sim.

Citar
A engrenagem que gira a correia possui 20mm de circunferência; São 50 passos em 20mm.

Explique melhor, não tá fazendo sentido ... vc tá misturando dimensão angular (passos) com linear (mm) ...

Citar
Não imaginei que teria problemas com o motor de passo, pelo contrário, pensei que seria até melhor.

Vc pode sim utilizar motor de passo, mas tem que pensar sistemicamente, tudo tem que ser coerente ... a princípio é má escolha, considerando um sistema simples e pequeno.

Citar
Está um pouco em cima da hora para mudar o sensor e o motor, por isso estou disposto a continuar tentando desta maneira.

Há quem diga que quando estamos com pressa é melhor fazer devagar ... e fazer certo logo da primeira vez ...

Citar
... pela falta de experiência, não dei a devida importância para coisas simples.

Na verdade a simplicidade de um sistema desses é apenas aparente ...

Citar
Agora é tarde demais para voltar atraz, falta menos de 1 mês para a conclusão do projeto.

Não sei da sua disponibilidade, mas acho que dá pra rever o projeto sim ...

Citar
Quero concluí-lo, nem que seja para demonstrar o motivo pelo qual o projeto não funcionou.

Não deixa de ser um critério, mas não seria melhor demonstrar pq funcionou ?
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: rodrigoshaller em 24 de Maio de 2010, 09:12
Citar
Explique melhor, não tá fazendo sentido ... vc tá misturando dimensão angular (passos) com linear (mm) ...

Me refiro à distância que o carro vai percorrer por passo.
Se o carro vai andar 20mm por volta do motor, ele vai andar 0,4mm por passo do motor.

Citar
Não sei da sua disponibilidade, mas acho que dá pra rever o projeto sim ...

O problema é que, como se já não bastasse resolver problemas mecânicos (que é extremamente difícil para mim), alterar o projeto envolve também uma série de pesquisas que devem ser mostradas na monografia, criação de placas de circuito impresso, compra de materiais, retrabalho, etc.

Apostar nisso sem ter certeza de que tudo vai funcionar de primeira é um tiro no escuro.

E quanto à minha disponibilidade de tempo... Não é muita!


Citar
Não deixa de ser um critério, mas não seria melhor demonstrar pq funcionou ?
Concerteza.
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: F.Gilii em 24 de Maio de 2010, 09:14
A engrenagem que gira a correia possui 20mm de circunferência; São 50 passos em 20mm.
Isso da 0,4mm por passo.
Me metendo no assunto um pouco, me pareceu que aqui pode estar havendo alguma confusão...

Não estaria se referindo ao diametro neste caso?
Uma polia de 20mm de diametro teria um perímetro de 62,83mm...

Se ela de fato tiver 20mm de "perímetro", seu diametro seria de 6,36mm???

A resolução por passo está certa, mas se recere à um deslocamento linear - se estão falando de um pêndiulo, não será que temos que pensar em deslocamentos angulares?

Ou este movimento é só do carro para direita e esquerda, para tentar manter o pendulo parado?

Se for, creio que não é importante, pois é a eletronica quem decide o quanto e o quão rápido o carro deva se mover para manter o pendulo em equilibrio - estou certo?
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: minilathe em 24 de Maio de 2010, 09:56

Eu entendi que o sensor angular será aplicado ao pêndulo, sem redução. Com um ângulo de 7,2 e um pêndulo com comprimento de 30 cm (por exemplo), significa um deslocamento da extremidade do mesmo de 30 x sen (6,7o) = 3,5 cm. Isso quer dizer que o pêndulo vai oscilar com uma amplitude de +3,5 / 2 cm de um lado para o outro sem que o controlador perceba, pois esta é a resolução mínima do sensor, ok? E se a malha / sistema estiverem bem sintonizados...

Acho que usar um potenciômetro é simples e ainda é possível com um mês de prazo, sendo uma solução mais eficaz.

Parece que o motor possui uma redução e está acoplado ao carro (se move com o carro) ou pode mover o carro através de uma correia (motor fixo). E a cada passo o carro se move 0,4 mm? É isso? O motor está fixo?
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: C N C N o w ! em 24 de Maio de 2010, 09:58
Me refiro à distância que o carro vai percorrer por passo.

OK, tá mais claro.

Citar
Se o carro vai andar 20mm por volta do motor, ele vai andar 0,4mm por passo do motor.

Só pra conferir: qual é a disposição do motor, polias, carro ? Como vc está calculando o avanço do carro ? Tem algum desenho do sistema ?

Citar
Apostar nisso sem ter certeza de que tudo vai funcionar de primeira é um tiro no escuro.

Pois é, por isso mesmo acho que seria mais aconselhável utilizar uma solução provada, com referências abundantes ... tiro no escuro é partir para algo que não foi provado ... perdoe a franqueza se for excessiva, mas se vc tá enrolado com o acionamento do motor, que é possivelmente o aspecto mais simples de todo o projeto e já dá pano pra manga, imagino as dificuldades que vai enfrentar com o encoder e a malha PID ... pra não falar de questões mecânicas, com as quais vc já declarou não estar familiarizado e não dispor de recursos pra lidar com elas ...

Entenda bem, não quero desanimá-lo, ao contrário. Durante minha vida profissional, que já se faz longa, sempre tive que lidar com aspectos conflitantes e aprendi - a duras penas - que é melhor estar "apoiado em ombros de gigantes" ... ou seja, aproveitar tanto quanto possível a experiência prévia de outros e a partir daí aperfeiçoar, adaptar, modificar ... este fórum é um exemplo dos mais eloquentes ...

Citar
E quanto à minha disponibilidade de tempo... Não é muita!

Pois é ... pois é ... o tempo disponível costuma ser a pior das restrições ... lidar bem com ele, avaliar realisticamente os recursos disponíveis é a grande virtude de quem tem que administrar projetos ...

De qualquer modo estamos todos à postos para ajudá-lo no que for possível e torcendo pelo seu sucesso ...  ;D
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: F.Gilii em 24 de Maio de 2010, 10:05
Um encoder magnético ajuda?

http://www.austriamicrosystems.com/eng/Products/Magnetic-Encoders/Rotary-Encoders/AS5043
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: Eneias Eringer em 24 de Maio de 2010, 10:05
Vou dar uma opnião no meio termo ...rsrs ... porque vc não usa um motor de passo unipolar que é mais facil de programar , acho eu ... desculpe se falei besteira rs...
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: C N C N o w ! em 24 de Maio de 2010, 11:09
... porque vc não usa um motor de passo unipolar que é mais facil de programar ...

Dá na mesma ...
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: rodrigoshaller em 24 de Maio de 2010, 11:50
Bom, vamos por partes:

Citar
Ou este movimento é só do carro para direita e esquerda, para tentar manter o pendulo parado?
Sim, os 0,4mm aos quais me referi são de deslocamento do carro.

Citar
Se for, creio que não é importante, pois é a eletronica quem decide o quanto e o quão rápido o carro deva se mover para manter o pendulo em equilibrio - estou certo?

É isso que eu penso também.

Citar
Acho que usar um potenciômetro é simples e ainda é possível com um mês de prazo, sendo uma solução mais eficaz.

Como sensor angular estou utilizando um potenciômetro sim. Esqueci de mencionar isso.
E como sensor de posição estou utilizando um foto-diodo/foto-transistor com uma engrenagem de mouse furada passando por entre eles.

O sensor incremental está acoplado no eixo do motor (que por sua vez está FIXO) e, na medida que o eixo do motor se movimenta, a engrenagem gira, gerando os pulsos no foto-transistor.

Citar
Parece que o motor possui uma redução e está acoplado ao carro (se move com o carro) ou pode mover o carro através de uma correia (motor fixo). E a cada passo o carro se move 0,4 mm? É isso? O motor está fixo?
Citar
Só pra conferir: qual é a disposição do motor, polias, carro ? Como vc está calculando o avanço do carro ? Tem algum desenho do sistema ?

O motor está FIXO no trilho e move o carro por meio de uma correia. A cada passo, o carro se move 0,4mm.

Não tenho nenhum desenho.

Citar
De qualquer modo estamos todos à postos para ajudá-lo no que for possível e torcendo pelo seu sucesso ...  ;D

Tenho fé na ajuda de vocês e sou muito grato.

Citar
Um encoder magnético ajuda?

http://www.austriamicrosystems.com/eng/Products/Magnetic-Encoders/Rotary-Encoders/AS5043

Seria de grande utilidade no início (quando estava tentando decidir que tipo de sensor angular iria utilizar), mas agora é indiferente, pois estou utilizando um potenciometro e não problema algum com ele.

O ponto principal é o controle do motor de passo, o resto está ok.

Mas muito obrigado pela referência, inclusive, vou pedir um sample para trabalhos futuros.
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: minilathe em 24 de Maio de 2010, 12:11
Pensando em algo tipo basicão, acho que o sensor angular é desnecessário, pois voce já possui um potenciômetro para medir a posição do pêndulo. Só precisa deslocar o carro (onde o pêndulo estará preso??) de um lado para o outro, através do motor, de maneira a manter o pêndulo (ou o sinal do potencômetro) equilibrado. Será um controle do tipo SISO (sinlge input single output), mas já atende... só não pode deixar o carro chegar nas extremidades, senão o carro vai ficar batendo nos limites (batentes) de movimentação do carro.
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: rodrigoshaller em 24 de Maio de 2010, 12:30
Citar
Pensando em algo tipo basicão, acho que o sensor angular é desnecessário, pois voce já possui um potenciômetro para medir a posição do pêndulo. Só precisa deslocar o carro (onde o pêndulo estará preso??) de um lado para o outro, através do motor, de maneira a manter o pêndulo (ou o sinal do potencômetro) equilibrado. Será um controle do tipo SISO (sinlge input single output), mas já atende... só não pode deixar o carro chegar nas extremidades, senão o carro vai ficar batendo nos limites (batentes) de movimentação do carro.

Eu estava considerando o potenciômetro como sensor angular.  :P
O pêndulo está preso no potenciômetro e os dois estão acoplados no carro.
Conforme o pêndulo se movimenta, o potenciometro altera sua resistência.

O controle que estou fazendo é do tipo PID.
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: minilathe em 24 de Maio de 2010, 12:57
Citar
Pensando em algo tipo basicão, acho que o sensor angular é desnecessário, pois voce já possui um potenciômetro para medir a posição do pêndulo. Só precisa deslocar o carro (onde o pêndulo estará preso??) de um lado para o outro, através do motor, de maneira a manter o pêndulo (ou o sinal do potencômetro) equilibrado. Será um controle do tipo SISO (sinlge input single output), mas já atende... só não pode deixar o carro chegar nas extremidades, senão o carro vai ficar batendo nos limites (batentes) de movimentação do carro.

Eu estava considerando o potenciômetro como sensor angular.  :P
O pêndulo está preso no potenciômetro e os dois estão acoplados no carro.
Conforme o pêndulo se movimenta, o potenciometro altera sua resistência.

O controle que estou fazendo é do tipo PID.

Com certeza, um pêndulo apenas gira, não é? E o potenciômetro medirá ângulos...

Sugiro um potenciômetro multivoltas de fio, existem alguns com baixo atrito, além disso, possuem maior repetibilidade na resposta de resistência x ângulo, maior tempo de vida (mais ciclos) e permite que o pêndulo possa chegar embaixo.

O controle será PID, Ok.
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: rodrigoshaller em 24 de Maio de 2010, 14:10
Citar
Com certeza, um pêndulo apenas gira, não é? E o potenciômetro medirá ângulos...

Sugiro um potenciômetro multivoltas de fio, existem alguns com baixo atrito, além disso, possuem maior repetibilidade na resposta de resistência x ângulo, maior tempo de vida (mais ciclos) e permite que o pêndulo possa chegar embaixo.

O controle será PID, Ok.

O potenciômetro que estou utilizando é um multivoltas (10k e 10 voltas).
Título: Re: Ajuda para controlar motor de passo bipolar
Enviado por: rodrigoshaller em 24 de Maio de 2010, 21:41
Realizei novos testes com o controle do motor.

Consegui fazer ele andar um pouco mais rápido (aumentando a frequencia), só que para isso era necessário um "empurrãozinho" inicial para tirar o motor da inércia.

Como o amigo Jorge Lourenço Jr. disse, falta uma rampa de aceleração.

Alguém tem uma idéia de algum algorítimo que realize tal função?


O que seria wave drive?


Grato.