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