11 abril 2016

Arduino - Programa 07: Interrupção (Parte 2)

Prosseguindo o tutorial 7 vou apresentar o segundo modo de interrupção. Este modo permite que ao interrompermos o programa e acionarmos o botão novamente, o hardware inicie de onde parou, ou seja, é realizado uma pausa no programa.

Para este programa será utilizado o mesmo código anterior com acréscimo de algumas instruções que apresentarei no decorrer deste tutorial. O programa é este abaixo.


// 07 Programa Arduino Interrupção parte 2

volatile int state = HIGH;

int ledArray[]= {8,9,10,11,12};

int count = 0;

int timer  = 75;

int pause = 500;

void setup(){

  for(count=0; count<5; count++){

    pinMode(ledArray[count], OUTPUT);

  }

  attachInterrupt(0, ledOnOff, FALLING);

}

void loop(){

  if(state){

    for(count=0; count<5; count++){

      digitalWrite(ledArray[count], HIGH);

      delay(timer);

      if(!state){

        break;

      }

    }

    delay(pause);

    if(state){

      for(count=0; count<5; count++){

        digitalWrite(ledArray[count], LOW);

      }

      delay(pause);

    }

  }

}

void ledOnOff(){

  static unsigned long lastMillis = 0;

  unsigned long newMillis = millis();

  if(newMillis - lastMillis < 50){

  }

  else{

    state = !state;

    lastMillis = newMillis;

  }

}

Como pode ser observado este programa é o mesmo, exceto pelo acréscimo do comando break, então analisarei somente as modificações feitas a fim de acelerar o tutorial visto que a análise deste programa pode ser vista aqui

A instrução break será utilizada posteriormente com o comando switch. Mas aqui neste exemplo ele tem a função de fazer com que quando o botão for pressionado, saia do loop e mantenha os LEDs acesos, ou seja, funciona como uma pausa mantendo a rotina do programa intacta. E quando o botão for pressionado novamente ele retorna o programa de onde parou.


Para montarmos este exemplo será necessários os seguintes componentes:

  • Arduino Uno;
  • 5 LEDs;
  • 5 resistores de 150 Ohm;
  • 1 botão de pressão;
  • Fios ou jumpers.
O esquema para conectar o hardware é este abaixo.
Figura 1 - Esquema do hardware
Logo abaixo algumas fotos da minha montagem.
Figura 2 - Minha montagem 
Figura 3 - Minha montagem
Como pode ser visto pelas fotos a montagem é a mesma. Em seguida trago um vídeo demonstrando o funcionamento deste programa.



Você também pode baixar este e outros programas neste link.

Se você gostou, ajude o blog Eletrônica de Garagem compartilhando em suas redes sociais ou curtindo nossa fan page.

Até o próximo tutorial ! 


EmoticonEmoticon