terça-feira, 8 de março de 2011

Picaxe PWM



Se preferir assista no youtube.

Alguns circuitos são básicos para muitas montagens mecatrônicas, controlar a velocidade de rotação de um motor de corrente continua por PWM é um deles. O circuito mostrado aqui usa um potenciômetro ligado a uma entrada analógica de um Picaxe 08M (conversor AD de 10 bits), como usado na montagem com servomotor, para controlar a rotação de um motor DC.


O sinal PWM gerado no picaxe é aplicado ao gate do MOSFET IRF540, através do acoplador óptico 4n25. O diagrama completo do circuito é mostrado ao lado. Um resistor de 330R é usado para limitar a corrente no led do 4n25. O resistor ligado entre  o gate do mosfet e o GND é de 10k. O potenciômetro pode ser de qualquer valor.

Para testar o circuito foi usada uma pequena furadeira que em 12V tem corrente,  à vazio,  menor  que  1A, mas o mosfet usado pode suportar correntes superiores a 10A respeitando-se, é claro, as recomendações do datashet para limite de corrente que além das características eletrônicas do componente é influenciado pelo tipo de dissipador adotado.

O programa

No código, mostrado abaixo, o valor do potenciômetro é lido  0 - 1023 e aplicado ao pino 4 através da função "pwmout" que precisa de três parâmetros: pino (pino de saída do sinal), período (período do sinal, 0 a 255) e ciclo de trabalho  (grosseiramente falando é o valor do PWM, 0 a 1023).

symbol pot_value = w1

symbol motor_pin =  2

main: 'loop principal

READADC10 4, pot_value ' le o valor do potenciometro 

pwmout motor_pin,255,pot_value ' envia o valor para o pino 2

goto main 'fim do loop principal