segunda-feira, 21 de setembro de 2015

Interrupções de temporizador


    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