No arduino o usuário dispõem de interrupções que são disparadas por eventos externos, também pode disparar eventos pelo ISRs chamando-as como resultado de eventos ocorridos com o tempo. Essa capacidade poderá ser realmente útil se você precisar fazer algo crítico envolvendo tempo.
A boblioteca "TimerOne" facilita o uso de interrupções controladas pelo tempo. Faça o download da biblioteca TimerOne no site oficial do arduino.
Munido dessa biblioteca você podera usar o temporizador para gerar sinais PWM. Isso pode parecer reduntante porque a função analogWrite já faz isso, mas o método que usa a biblioteca TimerOne oferece um controle melhor do sinal PWM. Especificamente, permite que você ajuste o ciclo de trabalho para valores entre 0 e 1023, em vez de 0 a 255, como no caso de analogWrite. Além disso, quando usamos analogWrite, a frequência do sinal PWM está fixada em 500Hz, ao passo que, quando usamos a biblioteca TimerOne, podemos alterar o período do temporizador e, com isso, a frequência.
Para usar a biblioteca Timer1 e gerar sinais PWM, utilize a função pwm de timerOne1, como mostra o seguinte exemplo.
#include <TimerOne.h>
void setup(){
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
Timer1.initialize(1000);
Timer1.pwm(9, 512);
Timer1.pwm(10, 255);
}
void loop(){
}
Nesse caso, está ajustado o período para 1000 microssegundos, resultando uma frequência PWM de 1 KHz. A figura abaixo mostra como fica as ondas em um osciloscópio.
Você pode reparar que os ciclos de trabalho ainda se assemelham muito a 25 e 50%, respectivamente.
fonte: Programação com arduino vol 2 - Simon Monk
Nenhum comentário:
Postar um comentário