Introduction: 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.
Step 1: 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.
Step 2: 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.
Comments
4 years ago
Great project thanks for sharing.