Professional Documents
Culture Documents
seu Arduino
Imagine que voc esteja fazendo seu bolo e no meio da receita seu telefone toque.
Possivelmente voc ir parar o que est fazendo e ir atender o telefone, assim que
encerrar a chamada voc ir retornar ao ponto que parou em sua receita.
Quando estamos executando um tarefa muitas vezes temos que a interromper para
resolver outra tarefa importante para s depois retornar do ponto que se parou. Isso
se chama interrupo e usada com frequncia na programao de
microcontroladores.
Para aprender como implementar uma interrupo, vamos fazer uma experincia
simples para depois explica-l. Nela voc poder entender melhor esse conceito de
interrupo em um microcontrolador.
ndice [Ocultar]
1 Usando a interrupo externa no seu Arduino
2 Mos obra Implementando uma interrupo
o 2.1 Montando o projeto
o 2.2 Conectando o Arduino ao computador
o 2.3 Programando
o 2.4 Colocando para funcionar
3 Entendendo a fundo
o 3.1 Entendendo o Hardware
o 3.2 Entendendo o programa
4 Fechamento
Montando o projeto
Agora vamos conectar os componentes do projeto. Para isso, monte seu circuito
conforme a figura a seguir.
Garanta que seu Arduino esteja desligado durante a montagem e que o seu LED
esteja conectado corretamente, com a perna mais longa (Anodo) conectado ao
resistor e a perna menor (catodo) ao GND.
Antes de carregar um programa, voc precisa selecionar qual porta voc deseja
usar para fazer carregar o programa no Arduino (upload). Dentro do Arduino IDE,
clique no menu Ferramentas (tools) e abra o submenu Porta(Port). Clique na porta
que seu Arduino est conectado, tal como COM3 ou COM4. Geralmente aparece o
nome da placa Arduino : COM3 (Arduino/Genuino Uno).
Voc tambm precisa garantir que o tipo de placa apropriado est selecionado em
Ferramentas(Tools) no submenu Placa (Board).
Programando
Crie um programa (sketch) e salve com o nome de programa_interrupcao_externa.
Com o seu programa salvo, escreva nele o cdigo conforme escrito abaixo.
Aps escrever o cdigo, clique em Carregar (Upload) para que o programa seja
transferido para seu Arduino.
Entendendo a fundo
Entendendo o Hardware
As placas Arduino possuem pinos que podem desempenhar a funo de entrada de
sinal para interrupo externa. No Arduino UNO so as portas digitais 2 e 3, que
para tal funo so nomeadas de INT0 e INT1, respectivamente. Veja a tabela a
seguir com os pinos de cada placa Arduino que possuem essa qualidade.
Mega,
2, 3, 18, 19, 20, 21
Mega2560, MegaADK
Uno, Ethernet 2 3
Mega2560 2 3 21 20 19 18
Due,
Zero, MKR1000, interrupt number = pin number
101
Dessa forma, para que seja possvel o uso da interrupo externa, escolhemos o
pino digital 2 (INT0), no qual conectamos o boto.
Entendendo o programa
Considerando que voc j sabe o bsico , voc j pode entender a maioria dos
programas. Dessa forma, iremos nos ater s novidades.
Configurando a interrupo externa no Arduino
Para que o Arduino leia uma interrupo, devemos configur-lo. Para tal usaremos
o comando attachInterrupt().
INT: Nmero da porta usada para a interrupo. No Arduino UNO INT 0 corresponde
porta digital 2 e INT 1 corresponde porta digital 3; Como explicado anteriormente,
numa interrupo temos dois pontos chaves: a condio da interrupo e a funo
que ser executada. Dessa forma, o comando attachInterrupt usado para informar
ao programa esses dados. So eles:
Funo interrupcao()
Funo um bloco de tarefas a serem executadas pelo programa quando solicitada.
Caso voc queira saber mais sobre interrupo externa no Arduino, voc pode ler
sobre ela no site oficial da Arduino. Link
Fechamento
Esperamos que tenham gostado, deixe seu comentrio com duvidas, sugestes ou
com a foto ou vdeo de seu projeto!! Compartilhe vontade.
Allan Mota
Estudante de Engenharia Eltrica da UFES e Fundador do Vida de Silcio. Sonhador com
uma nica pretenso, fazer a diferena.
Post Views: 1.427
Compartilhe:
inShare
Salvar
Curtir isso:
4 COMMENTS
Eduardo
24 de setembro de 2017, 13:40
Gostei muito, claro, direto e tem tudo o que precisa, obrigado
REPLY
Guilherme
27 de setembro de 2017, 01:50
Boa noite.
Como possvel adicionar um parmetro funo a ser chamada na interrupo?
Usei o seguinte:
void interruptButton1(int estado){
}
void setup(){
()
attachInterrupt(0, interruptButton1(estado), RISING);
}
e obtive o seguinte error de compilao:
error: invalid use of void expression
REPLY
Allan Mota
27 de setembro de 2017, 09:33
Essa funo interruptButton1 no para ter esse parmetro estado. Caso precise
usar algum dado dentro da funo, voc pode usar uma varivel global.
Ex.:
int estado
void interruptButton1(){
estado=estado+1;
}
Essa varivel estado pode ser usada no loop para verificar uma condio, por
exemplo.
REPLY