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