As variáveis de saída MS e MD deverão comandar o motor para fazer o elevador subir(MS=1 e MD=0), descer (MS=0 e MD=1), parar(MS=MD=0) e, ainda, continuar um movimento iniciado ( MS=MD=1 ).
As variáveis de entrada serão os interruptores memorizadores dentro da cabine ( T interligado com o botão de chamada no piso térreo e S interligado com o do piso superior), e os sensores ( P T e P S ) colocados nos pisos, para indicar a presença correta do compartimento no andar. Considere o não funcionamento do motor com qualquer das portas abertas, a desativação da chamada na chegada ao piso de destino e a devida temporização antes do início de um novo ciclo de operação.

Passo 1

Beleza, vamos resolver um problema de lógica booleana para controlar um elevador.
Conteúdo: Álgebra Booleana e mapas de Karnaugh (ou simplificação direta).
O que precisamos:
  • Entender as variáveis de entrada e saída.
  • Montar a função lógica que dê, simultaneamente, os quatro comandos:
    • subir (M_S=1, M_D=0)
    • descer (M_S=0, M_D=1)
    • parar (M_S=0, M_D=0)
    • continuar movimento (M_S=1, M_D=1)
  • Simplificar com álgebra booleana (ou Karnaugh).

Passo 2

Definindo as variáveis:
• T = botão de chamada no piso térreo (memorizado enquanto não atendido)
• S = botão de chamada no piso superior (idem)
• P_T = sensor “está no térreo?” (1 se sim)
• P_S = sensor “está no superior?” (1 se sim)
Saídas:
• M_S (manda subir)
• M_D (manda descer)
Agora, pensando em cada caso:
  1. Se S=1 e P_S=0 → preciso ir pra cima ⇒ quero (M_S=1, M_D=0).
  2. Se T=1 e P_T=0 → preciso ir pra baixo ⇒ (M_S=0, M_D=1).
  3. Se P_S=1 ou P_T=1 chegou no destino e zera o pedido ⇒ (M_S=0, M_D=0).
  4. Se T=1 e S=1 e estou entre andares (P_S=0,P_T=0) → quero “continuar” o movimento ⇒ (M_S=1, M_D=1).
  5. Se T=0 e S=0 → sem chamado ⇒ (M_S=0, M_D=0).

Passo 3

Vamos traduzir essas regras em funções booleanas.
Repare:
  • Sempre que S=1 e P_S=0 eu tenho M_S=1.
  • Sempre que T=1 e P_T=0 eu tenho M_D=1.
  • Nos demais casos (cheguei ou sem chamado) esse produto cai a zero.
    Logo as expressões candidatas são:
    M_S = S ⋅ ¬P_S
    M_D = T ⋅ ¬P_T

Passo 4

Verificação rápida em cada cenário:
  • S=0, T=0 → M_S=0⋅…=0, M_D=0⋅…=0 ⇒ parar.
  • S=1,P_S=0,T=0,P_T=x → M_S=1, M_D=0 ⇒ subir.
  • T=1,P_T=0,S=0,P_S=x → M_S=0, M_D=1 ⇒ descer.
  • S=1,T=1,P_S=0,P_T=0 → M_S=1,M_D=1 ⇒ continuar.
  • Se cheguei no destino (P_S=1 ou P_T=1) zera o termo ⇒ 0,0 ⇒ parar.
Está tudo certinho!

Resposta

M_S = S · ¬P_S
M_D = T · ¬P_T

Exercícios relacionados