Você deve projetar um sistema de irrigação que liga uma bomba d’água com base em três condições:
UMID: Sensor de umidade do solo ( 1= seco, 0= úmido)
CHUVA: Sensor de chuva (1 = está chovendo, 0 = tempo seco)
HORARIO: Sensor de tempo ( 1= horário permitido para irrigar, 0= fora do horário)
A bomba deve ser acionada somente se:
O solo estiver seco (UMID = 1)
Não estiver chovendo ( CHUVA =0)
Estiver dentro do horário permitido (HORARIO = 1)
Entradas:
UMID: Sensor de umidade (1 bit)
CHUVA: Sensor de chuva (1 bit)
HORARIO: Sensor de horário (1 bit)
Saída:
BOMBA: Sinal de controle da bomba (1 = liga a bomba, 0= desliga)
Passo 1
O enunciado pede projetar a lógica que controla a bomba com base em três sensores. Perguntas que o problema faz (explícitas ou implícitas): quando a saída \text{BOMBA} deve valer 1 (ligar) ou 0 (desligar)?
Informações relevantes dadas pelo enunciado:
\text{UMID}: sensor de umidade do solo, 1= solo seco, 0= solo úmido.
\text{CHUVA}: sensor de chuva, 1= está chovendo, 0= tempo seco.
\text{HORARIO}: sensor de horário, 1= horário permitido para irrigar, 0= fora do horário.
Condição para ligar a bomba (todas simultâneas):
\text{UMID}=1 (solo seco),
\text{CHUVA}=0 (não está chovendo),
\text{HORARIO}=1 (dentro do horário permitido).
Passo 2
Entendendo como traduzir condições “todas simultâneas” em lógica booleana (aula rápida e prática).
A operação lógica “e” (AND) representa a exigência de que várias condições ocorram ao mesmo tempo. Se temos duas condições A e B, então A AND B só vale 1 quando A=1 e B=1.
A operação lógica “não” (NOT) inverte um sinal: se X=1 então \overline{X}=0, e se X=0 então \overline{X}=1.
No nosso caso, queremos que a bomba ligue quando: \text{UMID}=1 AND (NOT \text{CHUVA}) AND \text{HORARIO}=1.
Em notação booleana direta isso vira um produto de literais (produto = AND, barra = NOT).
Passo 3
Montando a expressão booleana a partir das condições (passo passo):
Traduza “solo seco” por \text{UMID}.
Traduza “não está chovendo” por \overline{\text{CHUVA}}.
Traduza “dentro do horário” por \text{HORARIO}.
Juntando com AND obtemos a expressão canônica (produto de literais):
Construindo a tabela verdade (ensina a usar na prova: listar todas as combinações de entradas e calcular a saída) — há 2^{3}=8 combinações para três entradas. Vou listar cada tripla (\text{UMID},\text{CHUVA},\text{HORARIO}) e a correspondente \text{BOMBA}: (0,0,0)\to 0 (0,0,1)\to 0 (0,1,0)\to 0 (0,1,1)\to 0 (1,0,0)\to 0 (1,0,1)\to 1 (aqui \text{UMID}=1,\\ \overline{\text{CHUVA}}=1,\\ \text{HORARIO}=1 → produto 1) (1,1,0)\to 0 (1,1,1)\to 0
Observação didática: só a linha (1,0,1) dá saída 1 porque é a única onde todas as três condições exigidas são verdadeiras simultaneamente.
Passo 5
Verificando se a expressão pode ser simplificada (aula rápida de simplificação booleana):
Nossa expressão \text{UMID}\cdot\overline{\text{CHUVA}}\cdot\text{HORARIO} já é um produto de literais (mintermo) e não contém termos redundantes. Não há fatores comuns para fatorar que reduzam o número de literais mantendo a mesma função, portanto esta é a forma mínima (no sentido de soma de produtos para essa função específica). Em palavras: a condição “todas simultâneas” leva naturalmente a esta forma mínima.
Passo 6
Implementação prática em portas lógicas (como desenhar no caderno da prova):
Use uma porta NOT para inverter \text{CHUVA} e obter \overline{\text{CHUVA}}.
Use uma porta AND de três entradas (ou duas portas AND em cascata) para calcular \text{UMID}\cdot\overline{\text{CHUVA}}\cdot\text{HORARIO}.
Exemplo de cascata com portas de duas entradas: primeiro AND entre \text{UMID} e \overline{\text{CHUVA}}, depois AND do resultado com \text{HORARIO}. Isso é equivalente e fácil de desenhar numa prova.
Passo 7
Como usar a fórmula rapidamente na prova (exemplos práticos para ganhar confiança):
Se \text{UMID}=1, \text{CHUVA}=0, \text{HORARIO}=1 então \text{BOMBA}=1 (liga).
Se qualquer uma das três entradas falhar na condição (por exemplo \text{CHUVA}=1 ou \text{HORARIO}=0 ou \text{UMID}=0) então \text{BOMBA}=0 (desliga).
Dica de prova: escreva a expressão booleana e avalie substituindo 0 ou 1 — se algum fator do produto for 0, o produto inteiro é 0; só precisa checar que todos são 1 para ter saída 1.