Simular portas lógicas

Existe muitas vezes a necessidade de simular condições com o arduino de modo a obter uma saída em função de várias entradas.
As portas lógicas externas podem executar essas funções mas, na maior parte dos casos, o arduino pode simular e atuar em função das necessidades

Pretende-se que, em função das entradas Pinos (2,3) se obtenha uma saída no Pino (6)
Aqui fica um exemplo da porta AND


int pinOut = 6;
int pinA = 2;
int pinB = 3;

void setup()
{
  pinMode(pinOut, OUTPUT);
  pinMode(pinA, INPUT);
  pinMode(pinB, INPUT);
}
void loop()
{
  boolean pinAState = digitalRead(pinA);
  boolean pinBState = digitalRead(pinB);
  boolean pinOutState;
  // a próxima linha define a condição lógica neste caso "and"
  pinOutState =pinAState & pinBState;
  digitalWrite(pinOut, pinOutState);
}

Outras portas podem ser usadas alterando a linha que executa a função.

porta "AND"

pinOutState =pinAState & pinBState;
ABOut
000
010
100
111

porta "NAND"

pinOutState = !(pinAState & pinBState);
ABOut
0 0 1
0 1 1
1 0 1
1 1 0

porta "NOR"

pinOutState = !(pinAState | pinBState);
A B Out
0 0 1
0 1 0
1 0 0
1 1 0

porta "OR"

pinOutState = pinAState | pinBState;
A B Out
0 0 0
0 1 1
1 0 1
1 1 1

porta "NOT"

pinOutState = !pinAState;
AQ
01
10

porta "XOR"

pinOutState = pinAState ^ pinBState;
ABQ
000
011
101
110

Artigos Relacionados