Menu

004 - Arduino - Sequência de LEDs

Nos sistemas industriais, pressionamos um botão e iniciá-se um processo que se repetirá até que pressionamos um botão para desligar. O melhor circuito para esta ideia é uma sequência de LEDs. Então, vamos a ele. 

O hardware:


O código:

//-----------------------------------------------------------
//Arduino - Aula online
//Projeto: Sequência de LEDs
//Autor: Clodoaldo Silva
//Revisão:26/07/2020
//-----------------------------------------------------------
//-----------------------------------------------------------
//Definições de hardware
//Entradas ( Nome do pino e número do pino)
#define Liga 3
#define Desliga 2

//Saídas ( Nome do pino e número do pino)
#define LED_vermelho 8
#define LED_amarelo 11
#define LED_verde 13
//-----------------------------------------------------------
//-----------------------------------------------------------
//Variáveis auxiliares
bool X = 0; //Variável auxiliar
//-----------------------------------------------------------
//-----------------------------------------------------------
void setup()
{
  //Nome do pino e modo de trabalho(entrada ou saída)

  pinMode(Liga, INPUT);
  pinMode(Desliga, INPUT);
  pinMode(LED_vermelho, OUTPUT);
  pinMode(LED_amarelo, OUTPUT);
  pinMode(LED_verde, OUTPUT);
}
//-----------------------------------------------------------
//-----------------------------------------------------------
void loop()
{
  if (digitalRead(Liga) == HIGH) //se liga for 1
  {
    X = 1; //coloca a variável X em 1 
  }
  if (X == 1) //se X for 1
  {
    digitalWrite(LED_vermelho, HIGH); // inicia o processo...
    digitalWrite(LED_amarelo, LOW);
    digitalWrite(LED_verde, LOW);
    
    delay(500);
    
    digitalWrite(LED_vermelho, LOW); 
    digitalWrite(LED_amarelo, HIGH);
    digitalWrite(LED_verde, LOW);
    
    delay(500);

    digitalWrite(LED_vermelho, LOW); 
    digitalWrite(LED_amarelo, LOW);
    digitalWrite(LED_verde, HIGH);
    delay(500);
  }

  if (digitalRead(Desliga) == HIGH) // se desliga for 1 
  {
    X = 0; // coloca X em 0 
  }
  if (X == 0) // se x for 0 
  {
    digitalWrite(LED_vermelho, LOW); // desliga o processo...
    digitalWrite(LED_amarelo, LOW);
    digitalWrite(LED_verde, LOW);
  }
}