FUNCIONES LÓGICAS

Me gustaría saber cómo se escribe en arduino las funciones lógicas tales como EXNOR, NAND y NOR.

El caso es que llevo horas y horas buscando información sobre esas puertas y no soy capaz de encontrar la información.

He encontrado las siguientes funciones:

AND: &&
OR: ||
NOT: !
EXOR: ^

Me gustaría saber cual es la nomenclatura de las puertas mencionadas anteriormente: EXNOR, NAND Y NOR.

A riesgo de equivocarme diría que no existen.
La forma es que hagas una AND y luego la niegues, eso ya lo sabes.
NOR lo mismo
EXNOR no se, para mi no existe EXOR sino XOR pero es semántica. una XOR negada es lo mismo.

Jamás he visto o leído algo parecido.

Hola:

Busca bien por aquí y te dará ideas.

Saludos.

En enlace que propones Metaconta no tiene nada diferente o lo vi demasiado superficialmente.

Sñr Surbyte, creo que has dado con la solución a mi problema.

¿Podrías decirme cómo puedo hacer para negar una AND?

Darte las gracias Metaconta por la aportación, ya busqué información en esa página antes de hacer la consulta, es muy útil la página, pero no consiguió resolver mi duda.

Encontre cierta información por internet, estaria bien hecha la negación de la siguiente forma:

((pulsador1!=true) && (pulsador2!=true)): NAND

((pulsador1!=true) ^ (pulsador2!=true)): XNOR

((pulsador1!=true) || (pulsador2!=true)): NOR

miguelpereira:
Encontre cierta información por internet, estaria bien hecha la negación de la siguiente forma:

((pulsador1!=true) && (pulsador2!=true)): NAND

((pulsador1!=true) ^ (pulsador2!=true)): XNOR

((pulsador1!=true) || (pulsador2!=true)): NOR

No es exactamente asi,por ejemplo,una puerta NAND es el inverso de hacer un AND de dos entradas(Segun tu ejemplo pulsador1 y pulsador2),osea haces el and del estado de las dos entradas y el resultado se invierte.Entonces tienes 4 combinaciones segun el estado de los pulsadores:

pulsador1 pulsador2 resultado AND inversa

LOW/0 LOW/0 LOW/0 HIGH/1
LOW/0 HIGH/1 LOW/0 HIGH/1
HIGH/1 LOW/0 LOW/0 HIGH/1
HIGH/1 HIGH/1 HIGH/1 LOW/0

Esto traducido en codigo seria:

//ejemplo NAND

#define pulsador1 2 
#define pulsador2 3 // 

void setup() {
  Serial.begin(9600);
  pinMode(pulsador1,INPUT);
  pinMode(pulsador2,INPUT);
}

void loop() {
 int estado_pulsador1 = digitalRead(pulsador1);
 int estado_pulsador2 = digitalRead(pulsador2);
 int  resultado = ! (estado_pulsador1 && estado_pulsador2); // Negar el resultado de hacer un AND con las dos entradas.
 Serial.println(resultado);
}

Intentalo con la NOR ,XNOR....

A riesgo de equivocarme diría que no existen.
La forma es que hagas una AND y luego la niegues, eso ya lo sabes.
NOR lo mismo
EXNOR no se, para mi no existe EXOR sino XOR pero es semántica. una XOR negada es lo mismo.

C = !(A & B); // NAND
C = !(A | B);  // NOR
C = !(A^B);  // NXOR

Ya está resuelto. Muchas gracias a todos.

Entonces edita el título y agrega [SOLUCIONADO]