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;
porta "NAND"
pinOutState = !(pinAState & pinBState);
A | B | Out |
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;
porta "XOR"
pinOutState = pinAState ^ pinBState;