nodeMCU: Utilizando PWM

O PWM ou Pulse-Width Modulation (Modulação por largura de pulso) é amplamente utilizado em projetos, onde, por meio de um canal de dados, seja em uma comunicação ou apenas em um sinal modulado para  controlar uma carga.
Um exemplo de uso muito famoso para PWM é o efeito fade, ou esmaecimento, onde através do controle da largura do pulso (Duty-Cycle ou a razão de tempo em que o sinal está ativo/alto) enviado, por exemplo, pode-se controlar a luminosidade de um LED.

No ESP8266, é possível utilizar esta funcionalidade muito facilmente em até 3 GPIO’s simultaneamente.

Para a utilização do PWM no ESP com o nodeMCU, temos que seguir os seguintes passos:

Configurar o PWM:

pwm.setup(x, y, z)

Onde:

  • x
    • Pino de saída do ESP (pino 1 até 12)
  • y
    • Frequência do clock (1 até 1000)
  • z
    • Duty-Cycle (0 até 1023)

Iniciar o PWM no pino x selecionado:

pwm.start(x)

Configurar a largura do pulso (Duty-Cycle) no pino x com largura de pulso de z

pwm.setduty(x,z)

Liberar o pino x para outro uso:

    pwm.stop(x)

Com a utilização destes comandos, fica possível controlar a saída digital com PWM e utilizar o módulo em algum projeto de controle de luminosidade de fita LED, por exemplo.

Vale lembrar que para controle de cargas de maior potencia, deve-se utilizar um transistor ou MOSFET para cargas DC, pois o módulo não consegue fornecer corrente suficiente para a carga ou um TRIAC para cargas DC.

Happy Hacking!