Menu

008 - Arduino - Contador simples

Contar sempre foi e sempre será de grande interesse e na eletrônica não é diferente, então vamos conhecer alguns.  

O código

//--------------------------------------------------------------
//  Aulas Online - Arduino
//  Programa/hardware: 008 - Contador simples
//  Autor: Clodoaldo Silva
//  Revisão: 27Set2020
//---------------------------------------------------------------
//---------------------------------------------------------------
//inclui a biblioteca do LCD
//http://www.arduino.cc/en/Tutorial/LiquidCrystalDisplay
#include <LiquidCrystal.h>
//---------------------------------------------------------------
//---------------------------------------------------------------
//DEFINIÇÕES DO HARDWARE DE DESENVOLVIMENTO
//Entradas
//Não há

//Saídas
//Não há

//DEFINE PINOS PARA LCD JÁ NA BIBLIOTECA
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
/*
   Respectivamente
   LCD RS pin to digital pin 12
   LCD Enable pin to digital pin 11
   LCD R/W pin to ground
   LCD D4 pin to digital pin 5
   LCD D5 pin to digital pin 4
   LCD D6 pin to digital pin 3
   LCD D7 pin to digital pin 2
*/
//---------------------------------------------------------------
//---------------------------------------------------------------
//Definindo variáveis
int conta = 0; //A variável int armazena um valor de 16 bits.
//---------------------------------------------------------------
//---------------------------------------------------------------
void setup()
{
  // Inicializa o LCD com 16 colunas e 2 linhas
  lcd.begin(16, 2);

  //Configurando os pinos definidos como entrada.
  //Não há
  //Configurando os pinos definidos como saídas.
  //Não há
  //---------------------------------------------------------------
  //---------------------------------------------------------------
  // Mostra informações iniciais no display
  lcd.setCursor(0, 0); //escreve no LCD (linha,Coluna)
  lcd.print("Contador Simples");
  delay(2000);
  //---------------------------------------------------------------
}
//---------------------------------------------------------------
//---------------------------------------------------------------

void loop()
{
  conta = conta + 1;
  lcd.setCursor(0, 0);
  lcd.print("Contador");
  lcd.setCursor(0, 1);
  lcd.print(conta);
}
//---------------------------------------------------------------

Agora, contaremos os pulsos gerados pelo botão colocado no pino A0 do Arduino.
O código:
//--------------------------------------------------------------
//  Aulas Online - Arduino
//  Programa/hardware: 008 - Ccontador simples
//  Autor: Clodoaldo Silva
//  Revisão: 27Set2020
//---------------------------------------------------------------
//---------------------------------------------------------------
//inclui a biblioteca do LCD
//http://www.arduino.cc/en/Tutorial/LiquidCrystalDisplay
#include <LiquidCrystal.h>
//---------------------------------------------------------------
//---------------------------------------------------------------
//DEFINIÇÕES DO HARDWARE DE DESENVOLVIMENTO
//Entradas
#define CHAVE A0 

//Saídas
//Não há

//DEFINE PINOS PARA LCD JÁ NA BIBLIOTECA
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
/*
   Respectivamente
   LCD RS pin to digital pin 12
   LCD Enable pin to digital pin 11
   LCD R/W pin to ground
   LCD D4 pin to digital pin 5
   LCD D5 pin to digital pin 4
   LCD D6 pin to digital pin 3
   LCD D7 pin to digital pin 2
*/
//---------------------------------------------------------------
//---------------------------------------------------------------
//Definindo variáveis
int conta = 0; //A variável int armazena um valor de 16 bits.
//---------------------------------------------------------------
//---------------------------------------------------------------
void setup()
{
  // Inicializa o LCD com 16 colunas e 2 linhas
  lcd.begin(16, 2);

  //Configurando os pinos definidos como entrada.
  pinMode(CHAVE,INPUT);
  //Configurando os pinos definidos como saídas.
  //Não há
  //---------------------------------------------------------------
  //---------------------------------------------------------------
  // Mostra informações iniciais no display
  lcd.setCursor(0, 0); //escreve no LCD (linha,Coluna)
  lcd.print("Contador Simples");
  delay(2000);
  //---------------------------------------------------------------
}
//---------------------------------------------------------------
//---------------------------------------------------------------

void loop()
{
  if(digitalRead(CHAVE)==HIGH)
  {
  conta = conta + 1;
  lcd.setCursor(0, 0);
  lcd.print("Contador");
  lcd.setCursor(0, 1);
  lcd.print(conta);
  }
  while(digitalRead(CHAVE)==HIGH);
}
//---------------------------------------------------------------

007 - Arduino - Um pouco de lógica

Sistemas lógicos sempre fizeram e sempre farão parte da eletrônica, porém, aquelas portas 74XX serão substituídas por programação, então vamos conhecer um pouco.

Operadores Boleanos

! (NÃO lógico) Resulta em verdadeiro se o operando é falso, e vice-versa. Vale lembrar que condições verdadeiras e falsas na linguagem Arduino são representadas por true e false respectivamente.

&& (E lógico) Resulta em verdadeiro, apenas se ambos os operandos são verdadeiros. Vale lembrar que condições verdadeiras e falsas na linguagem Arduino são representadas por true e false respectivamente.

|| (OU lógico) - Resulta em verdadeiro se pelo menos um dos operandos é verdadeiro .Vale lembrar que condições verdadeiras e falsas na linguagem Arduino são representadas por true e false respectivamente.

 Mais em https://www.arduino.cc/reference/pt/ 

O hardware:


O Código: Lógica AND (&&)

//--------------------------------------------------------------
//  Aulas Online - Arduino
//  Programa/hardware: 007 - Um pouco de lógica com status no LCD
//  Autor: Clodoaldo Silva
//  Revisão: 25Abr2020
//---------------------------------------------------------------
//---------------------------------------------------------------
//inclui a biblioteca do LCD
//http://www.arduino.cc/en/Tutorial/LiquidCrystalDisplay
#include <LiquidCrystal.h>
//---------------------------------------------------------------
//---------------------------------------------------------------
//DEFINIÇÕES DO HARDWARE DE DESENVOLVIMENTO
//Entradas
#define BL1 A3
#define BL2 A2

//Saídas
#define LED_01 13

//DEFINE PINOS PARA LCD JÁ NA BIBLIOTECA
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
/*
   Respectivamente
   LCD RS pin to digital pin 12
   LCD Enable pin to digital pin 11
   LCD R/W pin to ground
   LCD D4 pin to digital pin 5
   LCD D5 pin to digital pin 4
   LCD D6 pin to digital pin 3
   LCD D7 pin to digital pin 2
*/
//---------------------------------------------------------------
//---------------------------------------------------------------
//Definindo variáveis
//não há
//---------------------------------------------------------------
//---------------------------------------------------------------
void setup()
{
  // Inicializa o LCD com 16 colunas e 2 linhas
  lcd.begin(16, 2);

  //Configurando os pinos definidos como entrada.
  pinMode(BL1, INPUT);
  pinMode(BL2, INPUT);

  //Configurando os pinos definidos como saídas.
  pinMode(LED_01, OUTPUT);
  //---------------------------------------------------------------
  //---------------------------------------------------------------
  // Mostra informações iniciais no display
  lcd.setCursor(0, 0); //escreve na primeira linha coluna, primeira linha
  lcd.print("Aula 007 - Lógica  ");
  delay(2000);
  //---------------------------------------------------------------
}
//---------------------------------------------------------------
//---------------------------------------------------------------

void loop()
{
  // Lógica AND = &&
  // Lógica OR = ||
  // Lógica NOT = !

  if ((digitalRead(BL1) == HIGH) && (digitalRead(BL2) == HIGH))
  {
    digitalWrite(LED_01, HIGH);
    lcd.setCursor(0, 0);
    lcd.print("LED Ligado....  ");
  }
  else
  {
    digitalWrite(LED_01, LOW);
    lcd.setCursor(0, 0);
    lcd.print("LED Desligado...");
  }
}
//---------------------------------------------------------------

O Código: Lógica OR (||)
/--------------------------------------------------------------
//  Aulas Online - Arduino
//  Programa/hardware: 007 - Um pouco de lógica com status no LCD
//  Autor: Clodoaldo Silva
//  Revisão: 25Abr2020
//---------------------------------------------------------------
//---------------------------------------------------------------
//inclui a biblioteca do LCD
//http://www.arduino.cc/en/Tutorial/LiquidCrystalDisplay
#include <LiquidCrystal.h>
//---------------------------------------------------------------
//---------------------------------------------------------------
//DEFINIÇÕES DO HARDWARE DE DESENVOLVIMENTO
//Entradas
#define BL1 A3
#define BL2 A2

//Saídas
#define LED_01 13

//DEFINE PINOS PARA LCD JÁ NA BIBLIOTECA
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
/*
   Respectivamente
   LCD RS pin to digital pin 12
   LCD Enable pin to digital pin 11
   LCD R/W pin to ground
   LCD D4 pin to digital pin 5
   LCD D5 pin to digital pin 4
   LCD D6 pin to digital pin 3
   LCD D7 pin to digital pin 2
*/
//---------------------------------------------------------------
//---------------------------------------------------------------
//Definindo variáveis
//não há
//---------------------------------------------------------------
//---------------------------------------------------------------
void setup()
{
  // Inicializa o LCD com 16 colunas e 2 linhas
  lcd.begin(16, 2);

  //Configurando os pinos definidos como entrada.
  pinMode(BL1, INPUT);
  pinMode(BL2, INPUT);

  //Configurando os pinos definidos como saídas.
  pinMode(LED_01, OUTPUT);
  //---------------------------------------------------------------
  //---------------------------------------------------------------
  // Mostra informações iniciais no display
  lcd.setCursor(0, 0); //escreve na primeira linha coluna, primeira linha
  lcd.print("Aula 007 - Lógica  ");
  delay(2000);
  //---------------------------------------------------------------
}
//---------------------------------------------------------------
//---------------------------------------------------------------

void loop()
{
  // Lógica AND = &&
  // Lógica OR = ||
  // Lógica NOT = !

  if ((digitalRead(BL1) == HIGH) || (digitalRead(BL2) == HIGH))
  {
    digitalWrite(LED_01, HIGH);
    lcd.setCursor(0, 0);
    lcd.print("LED Ligado....  ");
  }
  else
  {
    digitalWrite(LED_01, LOW);
    lcd.setCursor(0, 0);
    lcd.print("LED Desligado...");
  }
}
//---------------------------------------------------------------

O Código: Lógica NOT (!)
//--------------------------------------------------------------
//  Aulas Online - Arduino
//  Programa/hardware: 007 - Um pouco de lógica com status no LCD
//  Autor: Clodoaldo Silva
//  Revisão: 25Abr2020
//---------------------------------------------------------------
//---------------------------------------------------------------
//inclui a biblioteca do LCD
//http://www.arduino.cc/en/Tutorial/LiquidCrystalDisplay
#include <LiquidCrystal.h>
//---------------------------------------------------------------
//---------------------------------------------------------------
//DEFINIÇÕES DO HARDWARE DE DESENVOLVIMENTO
//Entradas
#define BL1 A3
#define BL2 A2

//Saídas
#define LED_01 13

//DEFINE PINOS PARA LCD JÁ NA BIBLIOTECA
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
/*
   Respectivamente
   LCD RS pin to digital pin 12
   LCD Enable pin to digital pin 11
   LCD R/W pin to ground
   LCD D4 pin to digital pin 5
   LCD D5 pin to digital pin 4
   LCD D6 pin to digital pin 3
   LCD D7 pin to digital pin 2
*/
//---------------------------------------------------------------
//---------------------------------------------------------------
//Definindo variáveis
//não há
//---------------------------------------------------------------
//---------------------------------------------------------------
void setup()
{
  // Inicializa o LCD com 16 colunas e 2 linhas
  lcd.begin(16, 2);

  //Configurando os pinos definidos como entrada.
  pinMode(BL1, INPUT);
  pinMode(BL2, INPUT);

  //Configurando os pinos definidos como saídas.
  pinMode(LED_01, OUTPUT);
  //---------------------------------------------------------------
  //---------------------------------------------------------------
  // Mostra informações iniciais no display
  lcd.setCursor(0, 0); //escreve na primeira linha coluna, primeira linha
  lcd.print("Aula 007 - Logica  ");
  delay(2000);
  //---------------------------------------------------------------
}
//---------------------------------------------------------------
//---------------------------------------------------------------

void loop()
{
  // Lógica AND = &&
  // Lógica OR = ||
  // Lógica NOT = !

  if (!digitalRead(BL1) == HIGH)
  {
    digitalWrite(LED_01, HIGH);
    lcd.setCursor(0, 0);
    lcd.print("LED Ligado....  ");
  }
  else
  {
    digitalWrite(LED_01, LOW);
    lcd.setCursor(0, 0);
    lcd.print("LED Desligado...");
  }
}
//---------------------------------------------------------------

“Dificuldades preparam pessoas comuns para destinos extraordinários” 
C.S Lewis

006 - Arduino - Liga/Desliga LED com status no LCD

Quando ligamos uma carga, precisamos informar ao usuário que a carga foi ligada e o LCD nos ajudará nesta etapa...

O Hardware:

O código:

//--------------------------------------------------------------

//  Aulas Online - Arduino
//  Programa/hardware: 006 - Ligando um LED com status no LCD
//  Autor: Clodoaldo Silva
//  Revisão: 25Abr2020
//---------------------------------------------------------------
//---------------------------------------------------------------
//inclui a biblioteca do LCD
//http://www.arduino.cc/en/Tutorial/LiquidCrystalDisplay
#include <LiquidCrystal.h>
//---------------------------------------------------------------
//---------------------------------------------------------------
//DEFINIÇÕES DO HARDWARE DE DESENVOLVIMENTO
//Entradas
#define Liga A3
#define Desliga A2

//Saídas
#define LED_01 13

//DEFINE PINOS PARA LCD JÁ NA BIBLIOTECA
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
/*
   Respectivamente
   LCD RS pin to digital pin 12
   LCD Enable pin to digital pin 11
   LCD R/W pin to ground
   LCD D4 pin to digital pin 5
   LCD D5 pin to digital pin 4
   LCD D6 pin to digital pin 3
   LCD D7 pin to digital pin 2
*/
//---------------------------------------------------------------
//---------------------------------------------------------------
//Definindo variáveis
bool X = 0; //variável auxiliar
//---------------------------------------------------------------
//---------------------------------------------------------------
void setup()
{
  // Inicializa o LCD com 16 colunas e 2 linhas
  lcd.begin(16, 2);

  //Configurando os pinos definidos como entrada.
  pinMode(Liga, INPUT);
  pinMode(Desliga, INPUT);

  //Configurando os pinos definidos como saídas.
  pinMode(LED_01, OUTPUT);
  //---------------------------------------------------------------
  //---------------------------------------------------------------
  // Mostra informações iniciais no display
  lcd.setCursor(0, 0); //escreve na primeira linha coluna, primeira linha
  lcd.print("Arduino-Online  ");
  delay(2000);
  //---------------------------------------------------------------
}
//---------------------------------------------------------------
//---------------------------------------------------------------

void loop()
{
  if (digitalRead(Liga) == HIGH) // Se a chave estiver pressionada o pino receberá 0.
  {
    X = 1;
  }
  if (X == 1)
  {
    digitalWrite(LED_01, HIGH);
    lcd.setCursor(0, 0);
    lcd.print("LED Ligado....  ");
  }
  if (digitalRead(Desliga) == HIGH)
  {
    X = 0;
  }
  if (X == 0)
  {
    digitalWrite(LED_01, LOW);
    lcd.setCursor(0, 0);
    lcd.print("LED Desligado...");
  }
}
//---------------------------------------------------------------

"Tente mover o mundo – o primeiro passo será mover a si mesmo."
Platão

005 - Arduino - Usando um LCD

Escrever no LCD é muito importante, pois informa ao usuário o que está acontecendo no sistema. Faremos, um programa básico que pode ser otimizado para qualquer processo.

O Hardware:


O código:


//--------------------------------------------------------------
//  Aulas Online - Arduino
//  Programa/hardware: 005 - Interface para o usuário LCD
//  Autor: Clodoaldo Silva
//  Revisão: 25Abr2020
//---------------------------------------------------------------
//---------------------------------------------------------------
//inclui a biblioteca do LCD
//http://www.arduino.cc/en/Tutorial/LiquidCrystalDisplay
#include <LiquidCrystal.h>
//---------------------------------------------------------------
//---------------------------------------------------------------
//DEFINIÇÕES DO HARDWARE DE DESENVOLVIMENTO
//Entradas
#define S3 A2

//Saídas
//não há

//DEFINE PINOS PARA LCD JÁ NA BIBLIOTECA
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
/*
   Respectivamente
   LCD RS pin to digital pin 12
   LCD Enable pin to digital pin 11
   LCD R/W pin to ground
   LCD D4 pin to digital pin 5
   LCD D5 pin to digital pin 4
   LCD D6 pin to digital pin 3
   LCD D7 pin to digital pin 2
*/
//---------------------------------------------------------------
void setup()
{
  // Inicializa o LCD com 16 colunas e 2 linhas
  lcd.begin(16, 2);

  //Configurando os pinos definidos como entrada.
  pinMode(S3, INPUT);

  //Configurando os pinos definidos como saídas.
  //não há

  // Mostra informações iniciais no display
  lcd.setCursor(0, 0); //escreve na primeira linha coluna, primeira linha
  lcd.print("Aulas Online      ");
  lcd.setCursor(0, 1); //escreve na primeira linha coluna, segunda linha
  lcd.print("Arduino           ");
  delay(2000);
}
//---------------------------------------------------------------
//---------------------------------------------------------------
void loop()
{
  if (digitalRead(S3) == HIGH) // Se a chave estiver pressionada o pino receberá 0.
  {

    lcd.clear(); // limpa o LCD
    lcd.setCursor(0, 0);
    lcd.print("Teste do LCD ..."); 
    delay(1000);
    lcd.setCursor(0, 1);
    lcd.print("LCD OK          ");
    delay(1000);
  }
  else // Senão
  {
    //mensagem no LCD
    lcd.setCursor(0, 0);
    lcd.print("Pressione S3     ");
    lcd.setCursor(0, 1);
    lcd.print(".............    ");
  }
}
//---------------------------------------------------------------

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);
  }
}


003 - Arduino - SET e RESET

Um bom observador notou que no programa anterior tenhamos que manter o botão pressionado para que o LED permanecesse aceso. 

Nas aplicações industriais, devemos ter um botão para ligar e um botão para desligar o sistema e o Arduino também pode ser usado para tal, porém, assim como nos comandos elétricos precisamos de um selo (contato auxiliar) no Arduino também precisamos só que de uma variável auxiliar.

O hardware:  

O código:

Programa 003 - Utilizando variáveis auxiliares. 

//---------------------------------------------------------------
//Arduino - Aula online 
//Projeto 003 - SET e RESET
//Autor: Clodoaldo Silva
//Revisão:26/07/2020
//---------------------------------------------------------------
//---------------------------------------------------------------
//Definições de hardware
//Entradas ( Nome do pino e número do pino)
#define Liga 6
#define Desliga 5

//Saídas ( Nome do pino e número do pino)
#define LED_vermelho 11
#define LED_verde 8
//---------------------------------------------------------------
//---------------------------------------------------------------
//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);
  
}
//---------------------------------------------------------------
//---------------------------------------------------------------
void loop()
{
  
  if(digitalRead(Liga)== HIGH) // se liga fou igual a 1 
    {
    X=1; // coloca a variável X em 1
    }   
    if(X==1) // Se a variável X for 1
        {
        digitalWrite(LED_vermelho, HIGH); //Liga o LED
        }
    if(digitalRead(Desliga)== HIGH) // Se desliga for 1
    {
    X=0; // coloca a variável X em 0
      }   
      if(X == 0) // se a variável x for 0 
      {
       digitalWrite(LED_vermelho, LOW); apaga o LED
      }
}
//---------------------------------------------------------------

Lógico que você notou que o LED verde não ligou, isso porque ele não foi incluído do sistema. Agora, faremos um botão para ligar e um botão para desligar uma saída de estacionamento. 

O código:

Programa 003 - Saída de estacionamento com Liga / Desliga. 
//-----------------------------------------------------------
//Arduino - Aula online
//Projeto: SET e RESET
//Autor: Clodoaldo Silva
//Revisão:26/07/2020
//-----------------------------------------------------------
//-----------------------------------------------------------
//Definições de hardware
//Entradas ( Nome do pino e número do pino)
#define Liga 6
#define Desliga 5

//Saídas ( Nome do pino e número do pino)
#define LED_vermelho 11
#define LED_verde 8
//-----------------------------------------------------------
//-----------------------------------------------------------
//Variáveis auxiliares
int 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_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_verde, LOW);
    delay(300);
    digitalWrite(LED_vermelho, LOW);
    digitalWrite(LED_verde, HIGH);
    delay(300);
  }

  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 sistema
    digitalWrite(LED_verde, LOW);
  }
}


002 - Arduino - Chave liga LED

Receber sinais provenientes de sensores, chaves ou botões é algo muito comum.Para fazermos isso com o Arduino, precisamos de mais uma função.

//--------------------------------------------------------------------------------------------------------------------
Função digitalRead()
Esta função permite ler o valor a partir de um pino digital especificado, sendo os valores possíveis HIGH (1) ou LOW (0).

Sintaxe:
digitalRead(pino)

Parâmetro:
pino é o número do pino cujo valor precisamos ler.

Esta função retorna um valor para o programa, alto (HIGH) ou baixo (LOW).
//--------------------------------------------------------------------------------------------------------------------

O hardware:


O código:
Programa padrão - Chave liga LED
//-------------------------------------------------------------------------
// Aulas online
// Projeto - Chave Liga LED
// Autor: Clodoaldo Silva
// REV: 04/Ago2020

//-------------------------------------------------------------------------
//Definição de I/O

//Entradas (nome e número do pino)
#define Chave_01 12

//Saídas (nome e número do pino)
#define LED_01 2

//-------------------------------------------------------------------------
void setup()
{
  pinMode(LED_01, OUTPUT); // Define o LED_01 como saída
  pinMode(Chave_01, INPUT);// Define a Chave_01 como entrada
}

//-------------------------------------------------------------------------
void loop()
{
  if(digitalRead(Chave_01) == HIGH) //Se a Leitura da Chave_01 for 1(HIGH) 
    digitalWrite(LED_01, HIGH); //Escreve 1 (HIGH) no LED_01
        
  else  //senão
    digitalWrite(LED_01, LOW); //Escreve 0 (LOW) no LED_01
  }
//-------------------------------------------------------------------------
Programa 002 - Chave pisca LED

Agora, que conhecemos as entradas uniremos os dois, ou seja, uma chave que se precionada fará com que o LED pisque.

 O código:
//-----------------------------------------------------------------------
// Aulas Online
// Projeto - Chave Pisca LED
// Autor: Clodoaldo Silva
// REV: 04/Ago2020
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//Definição de I/O
//Entradas (nome e número do pino)
#define Chave_01 12

//Saídas (nome e número do pino)
#define LED_01 2
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
void setup()
{
  pinMode(LED_01, OUTPUT); // Define o LED_01 como saída
  pinMode(Chave_01, INPUT);// Define a Chave_01 como entrada
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
void loop()
{
  if(digitalRead(Chave_01) == HIGH) //Se a Leitura da Chave_01 for 1(HIGH) 
  {
    digitalWrite(LED_01, HIGH); //Escreve 1 (HIGH) no LED_01
    delay(500);  //Espera 500ms
    digitalWrite(LED_01, LOW); //Escreve 1 (LOW) no LED_01
    delay(500);  //Espera 500ms
  }     

  else  //senão
    digitalWrite(LED_01, LOW); //Escreve 0 (LOW) no LED_01
  }
//-----------------------------------------------------------------------

"A persistência é o caminho do êxito."
Charles Chaplin