Manual

do

Maker

.

com

Como fazer um gatilho de interrupção com sinal analógico

Como fazer um gatilho de interrupção com sinal analógico

Eu estava aqui devaneando sobre alguns dados dos artigos em meus rascunhos e acabei chegando a um ponto em que achei interessante escrever sobre essa dica, que é simples, mas muitas pessoas ainda não utilizam. Pense que você tem um programa no fluxo principal do seu Arduino e gostaria de ter uma interrupção para quando ocorrer um evento externo. Porém, o dispositivo externo (seja ele qual for) só disponibiliza um sinal analógico (5V ou mais, não importa). Para um exemplo real, suponhamos que você quer saber quando a lâmpada de um determinado interruptor foi ligada. Claro que você poderia ler constantemente um valor no pino analógico do Arduino (ou outra MCU ou CPU, não importa), mas esse trabalho haveria de entrar no código principal, no loop, e somente seria lido no momento em que se iniciasse um novo ciclo.

Como gerar o gatilho

Tudo o que você precisa fazer quando tem um sinal analógico é definir o limite de tensão que gerará o gatilho. Por exemplo, você tem um sinal que varia entre 0V e 5V e quer definir um limite em 3V para tomar uma ação. Antes do pino digital da interrupção, coloque um divisor de tensão, definindo o limite que deve passar. Supondo que haja variação comum em torno de 3.5V, nada passará para o pino digital antes do limite estipulado de 3V e então esse 0.5 até 5V-3V será seu gatilho.

Divisor resistivo

Para fazer esse divisor resistivo é simples. Tome por base esse outro artigo, onde trato apenas sobre isso.

Interrupções com Arduino

E para fazer a interrupção, apenas siga os passos descritos nesse outro tutorial.

Pronto, agora você já tem um gatilho baseado em um sinal analógico para utilizar com interrupção. Legal ou não?

Inscreva-se no nosso canal Manual do Maker no YouTube.

Também estamos no Instagram.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.