Desenvolvido por 

Curso de Arduino Básico 1 Parte 6/6 – Interrupção

Olá, amantes de robótica, tudo bem? Agora que você já aprendeu na parte 5 de 6 como usar as saídas PWM, a controlar a intensidade do brilho de um LED, vamos continuar falando das Interrupções.

 

Interrupção

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 interrupção e é usada com freqüência na programação de microcontroladores.

Uma interrupção tem dois pontos chaves, são eles:

  • Condição de interrupção

É a condição que indica uma interrupção. Ela avisa ao programa que é a hora de executar uma tarefa extraordinária. No nosso exemplo, essa condição é o toque do

telefone.

  • Função a ser executada

Quando algo indica a interrupção, temos que executar uma lista de instruções referentes a essa interrupção. No exemplo dado, temos que parar de fazer o bolo e ir atender ao telefone. A função atender telefone é uma função extraordinária que só é executada pelo fato de ter ocorrido a condição de interrupção, o toque do telefone.

Para aprender como implementar uma interrupção, vamos fazer a experiência 5. Nela você poderá entender melhor esse conceito de interrupção em um microcontrolador.

Experiência 6 – Implementando uma interrupção

Ingredientes

Compre nosso kit básico de arduino para fazer essa experiencia e muitas outras, Loja.SeuRobo.com.br Clique aqui

  • Botão de pressão
  • LED 5mm
  • Resistor 1kΩ
  • Resistor 470Ω
  • Fios Jumper’s
  • Protoboard

Misturando os ingredientes

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.

Circuito da experiência 6

Levando ao forno

Conecte seu Arduino ao computador e abra a IDE Arduino. No menu Ferramentas (Tools), certifique-se que a porta serial (serial port) está selecionada e que a placa configurada é a que você está usando (board).

Preparando a cobertura

Crie um programa (sketch) e salve com o nome de “programa_interrupcao”. Com o seu programa salvo, escreva nele o código conforme escrito abaixo.

// Existe um LED conectado no pino 13 da maioria dos Arduinos
// Daremos um nome a este pino:
int led = 13;
void interrupção(){
digitalWrite(led, HIGH); // Liga o LED (HIGH = nível lógico alto)
delay(5000);
}
// Esta função "setup" roda uma vez quando a placa e ligada ou resetada
void setup() {
pinMode(led, OUTPUT); // Configura o pino do led (digital) como saída
attachInterrupt(0,interrupcao,RISING); //Configurando a interrupção
}
// Função que se repete infinitamente quando a placa é ligada
void loop() {
digitalWrite(led, HIGH); // Liga o LED (HIGH = nível lógico alto)
delay(1000); // Espera um segundo
digitalWrite(led, LOW); // Desliga o LED (LOW = nível lógico baixo)
delay(1000); // Espera um segundo
}

void interrupção(){ //Função executada quando ocorre a interrupção externa
digitalWrite(led, HIGH); // Liga o LED (HIGH = nível lógico alto)
delay(5000);
}

Depois de escrever o código, clique em Upload para que o programa seja transferido para seu Arduino.

Experimentando o prato

Caso tenha ocorrido tudo como esperado, o LED deve piscar intermitentemente. Quando você apertar o botão, o LED da protoboard permanecerá aceso por 5 segundos. Caso você não pressione o botão novamente, ele voltará a piscar.

Entendendo o Hardware

As placas Arduino possuem pinos que podem desempenhar a função de entrada de sinal para interrupção externa. No Arduino UNO são as portas digitais 2 e 3, que para tal função são nomeadas de INT0 e INT1, respectivamente. Veja a tabela a seguir com os pinos de cada placa Arduino que possuem essa qualidade.

Dessa forma, para que seja possível o uso da interrupção externa, escolhemos o pino digital 2 (INT0), no qual conectamos o botão.

Entendendo o programa

Com o conhecimento adquirido até agora, você já pode entender a maioria dos programas. Dessa forma, iremos nos ater as novidades.

Configurando a interrupção

Para que o Arduino leia uma interrupção, devemos configurá-lo. Para tal usaremos o comando attachInterrupt().

attachInterrupt(INT,FUNÇÂO,MODO); //Configurando a interrupção

Como explicado anteriormente, numa interrupção temos dois pontos chaves: a condição da interrupção e a função que será executada. Dessa forma, o comando attachInterrupt é usado para informar ao programa esses dados. São eles:

INT: Número da porta usada para a interrupção. No Arduino UNO INT 0 corresponde à porta digital 2 e INT 1 corresponde à porta digital 3;

FUNÇÃO: Nome da função que será chamada quando ocorre a interrupção;

MODO: Define em qual tipo de variação do sinal a interrupção será disparada.

As opções são:

  • LOW: Dispara a interrupção quando a tensão no pino está em 0V
  • CHANGE: Dispara sempre que o sinal no pino muda de estado, borda 0V (0) para 5V(1) ou vice-versa;
  • RISING: Dispara somente borda de subida, 0v (0) para 5V ( 1);
  • FALLING: Dispara somente borda de descida, 5V (1) para 0V (0)

Em nosso programa, usaremos esse comando da seguinte forma:

attachInterrupt(0,interrupcao,RISING); //Configurando a interrupção

Portanto, temos como condição de interrupção a mudança de estado de 0V (0) para 5V(1) no pino digital 2 (INT 0) e a função a ser executa se chama interrupção.

Função interrupcao()

Como já explicado no etapa 2, função é um bloco de tarefas a serem executadas pelo programa quando solicitada.

void interrupção(){ //Função executada quando ocorre a interrupção externa
digitalWrite(led, HIGH); // Liga o LED (HIGH = nível lógico alto)
delay(5000);
}

No nosso caso, a função será solicitada quando ocorrer a interrupção. As tarefas a serem executadas serão: acender o LED e esperar 5 segundos.

 

Finalização

Já parou pensar o que aconteceria se todos soubessem como criar robôs? Todos compartilhando seus conhecimentos e ajudando outras pessoas em seus projetos, projetos inovadores sendo criados a todo instante. Tudo isso sendo feito por um único propósito, mudar o mundo.

Essa revolução já vem acontecendo e a internet tem unido as pessoas de forma nunca vista antes. O conhecimento nunca foi tão acessível como tem sido agora e a pessoas têm cada vez mais aderido à filosofia do Open Source.

O Seu Robô quer fazer parte de tudo isso ajudando as outras pessoas a construírem um mundo melhor. Tem muita coisa para ser criada ou melhorada, como por exemplo, a robótica de reabilitação, área que ainda tem muito para evoluir.

Para isso, montamos uma loja onde oferecemos a maior variedade possível de itens para confecção de projetos de robótica, eletrônica e automação, com preços amigáveis.

Além disso, temos esse blog com tutoriais bacanas e didáticos para que todos possam aprender a usar um Arduino e outras placas de desenvolvimento, de forma simples e prática.

Conheça nossa loja (Loja.SeuRobo.com.br), ficaremos felizes em lhe receber!

Parabéns por concluir o curso!

Nosso curso acabou. 🙁

Postaremos mais cursos de arduino ao longo do ano, assine nossa lista de email para ficar por dentro das novidades, é só digitar seu email na barra da direita no campo “Assine nossa Newsletter”. 🙂

Atenciosamente,

Equipe Seu Robô


⇒ Acesse nossa loja virtual de robótica: LOJA

⇒ Veja os serviços que fazemos para facilitar a vida para você: SERVIÇOS

⇒ Quer um tutorial de um projeto ou de robô, gratuitamente? É só preencher o formulário que iremos analisar

⇒ Conseguiu melhorar o código fonte de algum projeto nosso? Então nós envie a melhoria para ajudar outras pessoas


 

Compartilhe com outro amante de robótica!

Comentários

Deixe um comentário

Veja os Tutoriais de ROBÔS mais recentes

Veja os TUTORIAIS mais recentes

Veja os Tutoriais de PROJETOS mais recentes

Conheça nossa lista completa de Serviços de Suporte

  • Fazemos seu Código Fonte
  • Esquemático em Protoboard
  • Placa de Circuito Impresso
  • Soldagem de Componentes
  • Projetos, criação e montagem de robôs
  • Desenvolvimento de Projetos

Curso de Introdução ao Arduino

Em nosso EXCLUSIVO curso de Arduino, TOTALMENTE EM PORTUGUÊS, você irá aprender como escolher, montar, soldar e programar estas maravilhas da computação moderna para adaptá-las a TODOS os seus projetos e necessidades. Em nosso curso, você irá aprender:

  • Como escolher e reconhecer as placas
  • Como reconhecer os módulos adicionais
  • Como projetar o código fonte
  • Como fazer o projeto no Protoboard
  • Soldagem de Componentes
  • Como expandir seus projetos
  • E MUITO MAIS...