Menu

O projeto - Acionamento da carga por voz

 O projeto  - Acionamento da carga por voz 

O objetivo deste tutorial com 4 vídeos é criar um aplicativo, utilizando APP inventor, capaz de interagir com uma placa de desenvolvimento e aplicação utilizando o ESP32 e a IDE do Arduino, diferente do anterior este comando será por voz.





A tela do APP inventor

O desenvolvimento da tela é simples e possui um botão para conectar e um para desconectar do bluetooth embutido no ESP32 da placa de desenvolvimento e aplicação e o status de conexão, cuja finalidade será exibir na tela se o bluetooth está conectado ou não.

Para interação com a PDA há um microfone que quando pressionado chama um reconhecedor de voz e através de palavras chaves fará esta interação.

Um outro ponto abordado é a resposta que também será por voz, além do status da carga na forma de texto.








Os blocos do APP inventor



O Código do Arduino:

/*-----------------------------------------------------------------

www.clubedaeletronica.com.br - Novas tecnologias
Aula 001 - Conectando PDA bluetooth com o APP Inventor
Autor - Clodoaldo Silva
Revisão - 31/03/2021

Site de referência:
https://randomnerdtutorials.com/esp32-bluetooth-classic-arduino-ide/
*/

//------------------------------------------------------------------
//Inclusão de bibliotecas

#include "BluetoothSerial.h" 

//Permite inicializar o bluetooth do ESP32

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif

//Objeto que permite inicializar o Bluetooth do ESP32.
BluetoothSerial SerialBT; 
//------------------------------------------------------------------

//------------------------------------------------------------------
//Definição de entradas e saídas
#define RELE_01 19   // Renomeia o pino 19 da placa como RELE_01
//------------------------------------------------------------------

//------------------------------------------------------------------
//Lista de variáveis
char entrada; // variável que receberá o dado vindo do aplicativo
//------------------------------------------------------------------

//------------------------------------------------------------------
void setup() 
{
Serial.begin(115200);         // inicializa a transmissão serial (115200) 
SerialBT.begin("PDA BT APP"); //inicializa a SerialBT (do ESP)

pinMode(RELE_01, OUTPUT); // Define o RELE_01 como saída
}
//------------------------------------------------------------------

//------------------------------------------------------------------
void loop() 
{
  if(SerialBT.available())        // verifica se ha dado disponivel no serialBT
  {
    entrada=SerialBT.read();      // Lê o dado e transfere para variável entrada

    if(entrada=='A')              // Se o dado na recebido na entrada for 'A'
    digitalWrite(RELE_01,HIGH);   // Liga o RELE_01

    if(entrada=='a')              // Se o dado na recebido na entrada for 'a'
    digitalWrite(RELE_01,LOW);    // Desliga o RELE_01
  }
}
//------------------------------------------------------------------



O teste final




"Para ver muita coisa é preciso despregar os olhos de si mesmo"


Friedrich Nietzsche

www.clubedaeletronica.com.br
Clodoaldo Silva

Projetos com PDA - ESP32 - APP Inventor e Arduino IDE

 O projeto  - Conectando PDA bluetooth com o APP Inventor 

O objetivo deste tutorial com 4 vídeos é criar um aplicativo, utilizando APP inventor, capaz de interagir com uma placa de desenvolvimento e aplicação utilizando o ESP32 e a IDE do Arduino.



A tela do APP inventor

O desenvolvimento da tela é simples e possui um botão para conectar e um para desconectar do bluetooth embutido no ESP32 da placa de desenvolvimento e aplicação e o status de conexão, cuja finalidade será exibir na tela se o bluetooth está conectado ou não.

Para interação com a PDA há botão para ligar e um botão para desligar a carga, além da exibição do status da carga.





Os blocos do APP inventor


Assista o vídeo: Aula 02 - Programando com blocos no APP Inventor.



O Código do Arduino:

/*-----------------------------------------------------------------

www.clubedaeletronica.com.br - Novas tecnologias
Aula 001 - Conectando PDA bluetooth com o APP Inventor
Autor - Clodoaldo Silva
Revisão - 31/03/2021

Site de referência:
https://randomnerdtutorials.com/esp32-bluetooth-classic-arduino-ide/
*/

//------------------------------------------------------------------
//Inclusão de bibliotecas

#include "BluetoothSerial.h" 

//Permite inicializar o bluetooth do ESP32

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif

//Objeto que permite inicializar o Bluetooth do ESP32.
BluetoothSerial SerialBT; 
//------------------------------------------------------------------

//------------------------------------------------------------------
//Definição de entradas e saídas
#define RELE_01 19   // Renomeia o pino 19 da placa como RELE_01
//------------------------------------------------------------------

//------------------------------------------------------------------
//Lista de variáveis
char entrada; // variável que receberá o dado vindo do aplicativo
//------------------------------------------------------------------

//------------------------------------------------------------------
void setup() 
{
Serial.begin(115200);         // inicializa a transmissão serial (115200) 
SerialBT.begin("PDA BT APP"); //inicializa a SerialBT (do ESP)

pinMode(RELE_01, OUTPUT); // Define o RELE_01 como saída
}
//------------------------------------------------------------------

//------------------------------------------------------------------
void loop() 
{
  if(SerialBT.available())        // verifica se ha dado disponivel no serialBT
  {
    entrada=SerialBT.read();      // Lê o dado e transfere para variável entrada

    if(entrada=='A')              // Se o dado na recebido na entrada for 'A'
    digitalWrite(RELE_01,HIGH);   // Liga o RELE_01

    if(entrada=='a')              // Se o dado na recebido na entrada for 'a'
    digitalWrite(RELE_01,LOW);    // Desliga o RELE_01
  }
}
//------------------------------------------------------------------

O teste final




"Tudo o que um sonho precisa para ser realizado é alguém que acredite que ele possa ser realizado."

Roberto Shinyashiki
www.clubedaeletronica.com.br
Clodoaldo Silva

009 - Arduino - Utilizando funções

A utilização de funções na programação, além de facilitar no desenvolvimento do código o deixa muito mais organizado. 

Este código colocamos três botões pulsantes, onde cada um chamará uma função.

O esquema no thinkercad.


O código:
//--------------------------------------------
//Aulas Online - Arduino
//Aula:- Otimizando o código ( uso de funções )
//Auto:- Clodoaldo
//Revisão:- 06Out2020
//--------------------------------------------
//--------------------------------------------
//DEFINIÇÃO DE ENTRADAS E SAÍDAS
//ENTRADAS
#define S0 A0
#define S1 A1
#define S2 A2

//SAÍDAS
#define VM 8
#define AM 7
#define VD 6
//--------------------------------------------

//--------------------------------------------
//DEFINIÇÃO DE VARIÁVEIS
// aqui suas variáveis

//--------------------------------------------
//--------------------------------------------
//INCLUI AS BIBLIOTECAS NECESSÁRIAS
#include <LiquidCrystal.h>   // biblioteca do LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Pinos onde o LCD está ligado
//--------------------------------------------

//--------------------------------------------
void setup()
{
  lcd.begin(16, 2); //Inicializa LCD
  //pinos configurados com entrada
  pinMode(S0, INPUT);
  pinMode(S1, INPUT);
  pinMode(S2, INPUT);
  
  //pinos configurados com Saídas
  pinMode(VM, OUTPUT);
  pinMode(AM, OUTPUT);
  pinMode(VD, OUTPUT);
}
//-------------------------------------
//Função secundária
void HORARIO()
{
  lcd.setCursor(0,0);
  lcd.print("horario          ");
  
  digitalWrite(VM, HIGH);
  delay(500);
  digitalWrite(AM, HIGH);
  delay(500);
  digitalWrite(VD, HIGH);
  delay(500);
  }
//-------------------------------------

//-------------------------------------
//Função secundária
void ANTIHORARIO()
{
  lcd.setCursor(0,0);
  lcd.print("Antihorario      ");
  
  digitalWrite(VD, HIGH);
  delay(500);
  digitalWrite(AM, HIGH);
  delay(500);
  digitalWrite(VM, HIGH);
  delay(500);
  }
//-------------------------------------
//Função secundária
void DESLIGA()
{
  lcd.setCursor(0,0);
 lcd.print("Testa funcao...");
  
  digitalWrite(VD, LOW);
  digitalWrite(AM, LOW);
  digitalWrite(VM, LOW);
}
//-------------------------------------
//-------------------------------------
//Chama função principal
void loop() 
{
  lcd.setCursor(0,0);
  lcd.print("Testa funcao...");
  
  if(digitalRead(S0)==HIGH)
    {
    HORARIO(); // chama função horário
    }
  if(digitalRead(S1)==HIGH)
    {
     ANTIHORARIO(); // chama função horário 
    }
  if(digitalRead(S2)==HIGH)
    {
     DESLIGA(); // chama função desliga 
    }    
}

Agora, vamos programas um semáforo com um bo
tão para ligar e um para desligar. Ainda não utilizamos interrupção, portando, devemos manter BD um tempo pressionado.

O esquema no thinkercad.
www.clubedaeletronica.com.br

O código:

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

//Aulas: Arduino Online
//Projeto: M4A - Semáforo com função
//Autor: Clodoaldo
//Revisão: 07_10_2020
//-------------------------------------------------

//-------------------------------------------------
//DEFININIÇÃO DE ENTRADAS E SAÍDAS (TAG)
//Saídas
#define VM1 2
#define AM1 3
#define VD1 4
#define VM2 5
#define AM2 6
#define VD2 7

//Entradas
#define LIGA 12
#define DESLIGA 13
//-------------------------------------------------
//DEFININIÇÃO DE VÁRIÁVEIS AUXILIARES
//Variáveis
 bool SELO = 0;
//-------------------------------------------------
void setup()
{
  pinMode(VM1, OUTPUT);
  pinMode(AM1, OUTPUT);
  pinMode(VD1, OUTPUT);
  pinMode(VM2, OUTPUT);
  pinMode(AM2, OUTPUT);
  pinMode(VD2, OUTPUT);

  pinMode(LIGA, INPUT);
  pinMode(DESLIGA, INPUT);
}

void ESTADO_00()
{
  digitalWrite(VM1, LOW);
  digitalWrite(AM1, LOW);
  digitalWrite(VD1, LOW);
  digitalWrite(VM2, LOW);
  digitalWrite(AM2, LOW);
  digitalWrite(VD2, LOW);
}

void ESTADO_01()
{
  digitalWrite(VM1, HIGH);
  digitalWrite(AM1, LOW);
  digitalWrite(VD1, LOW);
  digitalWrite(VM2, LOW);
  digitalWrite(AM2, LOW);
  digitalWrite(VD2, HIGH);
}

void ESTADO_02()
{
  digitalWrite(VM1, HIGH);
  digitalWrite(AM1, LOW);
  digitalWrite(VD1, LOW);
  digitalWrite(VM2, LOW);
  digitalWrite(AM2, HIGH);
  digitalWrite(VD2, LOW);
}

void ESTADO_03()
{
  digitalWrite(VM1, LOW);
  digitalWrite(AM1, LOW);
  digitalWrite(VD1, HIGH);
  digitalWrite(VM2, HIGH);
  digitalWrite(AM2, LOW);
  digitalWrite(VD2, LOW);
}

void ESTADO_04()
{
  digitalWrite(VM1, LOW);
  digitalWrite(AM1, HIGH);
  digitalWrite(VD1, LOW);
  digitalWrite(VM2, HIGH);
  digitalWrite(AM2, LOW);
  digitalWrite(VD2, LOW);
}
void loop()
{
  if(digitalRead(LIGA)==HIGH)
    {
    SELO=HIGH; 
    }
      if(SELO==HIGH)
      {
      ESTADO_01();
      delay(2000);
      ESTADO_02();
      delay(2000);
      ESTADO_03();
      delay(2000);
      ESTADO_04();
      delay(2000);
      }
  if(digitalRead(DESLIGA)==HIGH)
    {
    SELO=LOW;
    }
    if(SELO==LOW)
      {
      ESTADO_00();
      }    
}


"Todo grande problema deve ser dividido em problemas menores"
www.clubedaeletronica.com.br

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