Trabalhando com PWM na interface GPIO do Raspberry Pi
Nas postagens anteriores, mostrei como trabalhar com entradas e saídas na GPIO do RPi através do modulo GPIO.RPi e Python. Nas saídas podemos também trabalhar com PWM. No RPi se compararmos com o Arduino, temos um controle melhor, já que podemos alterar afreqüência também. Para começar, primeiro precisamos criar a instancia PWM com:
p = GPIO.PWM (channel, frequency)
Onde channel será o pino usado e frequency a freqüência PWM em HZ.
Para iniciar o PWM usamos:
p.start(dc)
Onde dc é o duty cycle (ciclo de trabalho) que varia de 0 a 100.
Para parar o PWM usamos:
p.stop()
Para alterar a freqüência usamos:
p.ChangeFrequency(freq)
Onde freq é a freqüência usada.
Para alterar o ciclo de trabalho usamos:
p.ChangeDutyCycle(dc)
Onde novamente dc é o ciclo de trabalho de 0 a 100.
Em um exemplo simples colocaremos a frequencia de trabalho em 1/2 hz e o ciclo de trabalho em 30. O programa ficará pausado no input esperando um ENTER no teclado, com isso o led na porta 18 irá piscar uma vez a cada seg. Aumentando a freqüência para 1 hz ele passa a piscar uma vez a cada meio segundo, para 2 hz uma vez a cada 1/4 segundo e assim por diante. Após o ENTER o programa para o PWM e limpa as GPIO deixando sem configurações.
Neste Segundo exemplo o led irá fazer um fade, subindo e descendo o brilho intermitentemente até algum comando do teclado. Neste caso teremos um loop (while) onde dentro dele temos dois for, o primeiro sobe o brilho usando o range de 0 a 101 de 5 em 5 passos. No segundo o brilho desce de 100 a -1 de -5 em -5 passos. O try/except funciona para poder parar o processo com o comando do teclado.
Fonte: http://sourceforge.net/p/raspberry-gpio-python/wiki/PWM/
Comentários
Postar um comentário