Olá a todos,
nesse post demonstraremos como utilizar a funcionalidade de PWM presente em algum dos pinos digitais do Arduino. Note que não existe na linguagem de programação do Arduino uma função para escrevermos valores nos pinos analógicos. Conseguimos um efeito semelhante através de uma técnica chamada PWM (pulse modulation width – modulação de comprimento de pulso).
Essa técnica consiste em criar pulsos em um pino digital que durem um determinado período de tempo. Em diversos circuitos a proporção de tempo em que o pino digital possui o estado LOW ou HIGH funciona como um sinal analógico. Utilizamos essa técnica para controlar a velocidade de motores ou a posição de um servo motor, por exemplo.
Ao contrário dos pinos analógicos, os pinos digitais de PWM possuem resolução de 256 níveis. Portanto o valor 0 significa que o pino ficará sempre em LOW, como um pino desligado. A medida que aumentamos o valor que passamos para a função aumentamos a quantidade de tempo que o pino ficará em HIGH, resultando no efeito de maior tensão no circuito e maior intensidade de luz do LED.
Para demonstrar o uso da técnica de PWM vamos variar a intensidade da luz de um led, mas dessa vez utilizaremos o led de alto brilho. Monte o circuito semelhante ao post Utilizando pinos digitais do Arduino para enviar sinais, porém tome cuidado para conectar o led em um pino digital que possua uma barra ao lado do seu nome. Essa barra indica que o pino possui a função PWM.
Abaixo temos o esquema elétrico e o desenho elaborado no simulador:
O primeiro passo no desenvolvimento do programa é a declaração da constante que indica em qual pino o resistor está ligado. Em seguida configure o pino para que ele envie sinais, utilizando a função pinMode.
O último passo é escrever a função loop para variar a intensidade de luz do led através da quantidade de tempo que o pino fica no estado HIGH. Controlamos essa quantidade de tempo pela função analogWrite que recebe como parâmetros o número do pino e o valor proporcional ao tempo que a pino ficará em HIGH.
Para variar o valor que passamos para a função digitalWrite utilizamos um laço do tipo for. Essa instrução incrementa ou decrementa o valor de uma variável automaticamente e executa um código passando esse valor até que um valor limite seja atingido. Nesse ponto é encerrada a execução desse trecho de código. Note que utilizamos duas vezes essa instrução: uma para acender o led e outra para apagá-lo.
Ligue o a placa na energia e em seguida no computador com o cabo USB. Execute o programa e veja a intensidade do led variar.
Onde encontrar alguns dos componentes:
- Arduino R3 Uno
- DCcEle DCduino (clone do Arduino R3 Uno)
- Protoboard com 400 furos
- Protoboard com 830 furos
- Cabos do tipo macho-macho com 10cm
- Cabos do tipo macho-macho com 20cm
Obrigado pela atenção e até o próximo post!
Um comentário em “Utilizando a função PWM dos pinos digitais do Arduino”