Problema procesos en paralelo- alarma

Hola, soy nueva en Arduino Uno. He trabajado con procesos paralelos para PIC y otros dispositivos, pero no tengo muy claro como hacerlo en Arduino.
El problema que tengo es el siguiente:
Estoy haciendo una alarma antirrobo, con un sensor piroeléctrico. La señal procedente del mismo primero la amplifico para llegar a la entrada de Arduino.
Para que sea como una alarma real, que se pudiera usar, lo que quiero es que, en el momento en que se me estén tomando valores del sensor, se me pueda estar esperando una entrada de teclado. Esta entrada sería la introducción de una contraseña mediante teclado matricial, para poder desactivar esa toma de valores, y que la alarma no pueda sonar. Es decir, lo que quiero es que se esté haciendo un chequeo de los valores del sensor (por si se detecta una persona), pero a su vez un proceso en paralelo donde se me chequee la entrada del teclado matricial (y si se introduce la contraseña correcta, poder desactivar la alarma).
En PIC usaba interrupciones, pero aquí no sé cómo hacerlo.

Gracias de antemano! :slight_smile:

Si dices que has trabajado con interrupciones en un PIC, asumo que conoces los cuidados que hay que tener.

En ese caso, permíteme decirte que en Arduino también se pueden manejar interrupciones.
Existen interrupciones externas, por timer (comparación y desbordamiento), cambio de estado digital en un pin de su grupo (llamado "puerto"); y luego algunas menores (usualmente ya manejadas por la misma IDE y las distintas librerías) como lectura ADC completada, EEPROM lista, memoria flash lista, byte entrante en USART, byte entrante en I2C (creo que también hay cuando se recibe una petición de un maestro), byte entrante en SPI.

Sin contar las interrupciones "menores", tienes bastante para escoger. Si el proyecto ya lo habías hecho, creo que tu sabrás por cuál optar...

Lo primero, gracias por la ayuda!

Sí, había trabajado con interrupciones en PIC pero quería saber si habría alguna otra manera de hacer los procesos paralelos en Arduino sin interrupciones, que no quería pelearme con ellas otra vez, que no me gustan nada!

vane8648:
pero quería saber si habría alguna otra manera de hacer los procesos paralelos en Arduino sin interrupciones, que no quería pelearme con ellas otra vez, que no me gustan nada!

¿Ah es eso entonces?

Para ponértelo simple: evita usar delay y ciclos for/while (excepto el ciclo de loop).
Para visualizarlo mejor, separa cada parte del programa en una función.
En caso de necesitar retrasar la ejecución de cierta parte del programa, utiliza millis. En la IDE hay un ejemplo llamado "BlinkWithoutDelay", ahí verás un uso básico de esta función.

Pues miraré ese ejemplo y probaré a ver! Si tengo algún problema volveré por aquí seguramente :stuck_out_tongue:

Muchísimas gracias!!!!