Básico - Projeto 79

Interrupção por timer no Arduino - alarme com sensor touch TP223B

Objetivo

Neste projeto vou mostrar como realizar interrupções por timer (leds piscando alternadamente) através do acionamento de um sensor de toque capacitivo TTP2233B por uma interrupção externa no Arduino. Assim, ao tocarmos o sensor, geramos uma interrupção externa que dispara um alarme, cuja ação será dois leds piscando alternadamente a cada segundo. Para que os leds pisquem a cada segundo utilizaremos interrupções por timer para executar uma função a cada intervalo de tempo pré-definido.

Sensor Touch Capacitivo TTP223B: Sensor baseado no CI TTP223B que foi desenvolvido para detectar toques. Seu funcionamento é bem simples: ao tocar a região indicada, a saída do sensor é ativada (HIGH).

Obs.: Os sensores de toque, assim como os botões de pressão (push button ou chaves tácteis) apenas mudam seu estado enquanto estamos pressionando ou tocando, voltando ao seu estado original quando liberados. Neste projeto, teremos uma rotina para atribuir a um só sensor duas funções: ligar e desligar um componente eletrônico qualquer através de uma interrupção externa.

Interrupção externa (External Interrupts)

É quando o programa do Arduino está instruído para reagir à mudança de um sinal externo, por exemplo, mudança do nível lógico de um sinal gerado por um botão ou por um sensor qualquer (Referência Arduino). Faça o projeto Projeto 78 - Como realizar interrupção externa no Arduino usando sensor de toque para entender melhor como funciona a interrupção externa.

  • A ideia de utilizar a interrupção externa no Arduino em certos projetos, é quando precisamos realizar duas ou mais tarefas ao mesmo tempo.

Interrupção por timer (Timer Interrupts)

Embora semelhante à interrupção externa, a interrupção por timer ocorre através do tempo e não por uma ação externa do hardware, como um toque no sensor, por exemplo. Assim, a cada período podemos executar uma função independente, sem que a contagem do tempo seja interferida pelos demais comandos do programa. A interrupção por timer substitui as funções: delay(), millis() e o controle de loop for, gerando um intervalo de tempo independente.

Obs.: Para utilizarmos o recurso da interrupção por timer no Arduino precisaremos instalar a biblioteca TimerOne, conforme mostraremos durante o tutorial do projeto.

Aplicação

Para fins didáticos e projetos gerais.

Componentes necessários

Protoboard Protoboard 830 pontos 1 Resultado de imagem para protoboard 830v

No mínimo utilizar protoboard com 400 pontos

Jumpers Kit cabos ligação macho / macho 1  
Sensor de toque capacitivo Sensor touch TP223B
1