Controle De Velocidade Para Motor
by filipi_saci in Circuits > Raspberry Pi
271 Views, 0 Favorites, 0 Comments
Controle De Velocidade Para Motor

Trabalho para disciplina de Sistemas Embarcados da 9ª fase de Engenharia da Computação SATC.
Este trabalho tem como objetivo fazer um controle da velocidade desejada e o tempo de subida/descida para um motor de corrente contínua utilizando um Raspberry e uma ponte H.
Programa


Foi desenvolvido um software para controlar a velocidade de setpoint e o tempo de rampa para que o motor atinja a velocidade final desejada. Este mesmo tempo foi utilizado para fazer a rampa de descida.
Ainda na tela é exibido a velocidade atual do motor que é lida através de um sensor FC-51 IR.
Todo o calculo da velocidade, entre outros detalhes está disponível no código fonte abaixo.
Considerações




Um dos maiores desafios foi fazer o cálculo da velocidade de acordo com o número de dentes e o período (tempo que leva para uma volta completa).
Outra curiosidade para o calculo que percebi, foi que o tempo de bouncetime para o intervalo de leituras dos dentes da engrenagem acoplada no motor é diferente para cada faixa de velocidade.
Além disso foi preciso fazer com que o programa lesse o sensor e então atualizasse o valor da velocidade em RPM da tela, para isso seria preciso de uma interrupção ou Timer. Como não encontrei isso no Raspberrya acabei utilizando a biblioteca de Threding. Com ela consegui instanciar um Timer e neste momento surgiu outros desafios, como por exemplo, controlar a quantidade de total de Threads e a troca do valor do bouncetime de acordo com o novo valor de setpoint.