SerialEvent es una función que se llama automáticamente cuando hay datos esperando a ser leídos en el puerto serie. Se invoca tras cada iteración de la función loop, por lo que cualquier delay o bloqueo en la función loop retrasa su invocación. Es una forma sencilla de integrar la gestión de los datos por puerto serie nuestro código.
void setup() {
Serial.begin(9600);
}
void loop() {
}
void serialEvent() {
//mientras tenga datos que leer
while (Serial.available()) {
//leer datos
}
}
Para las placas que tienen más de un puerto serie existe una función serialEvent distinta para cada uno:
- Serial – serialEvent
- Serial1- serialEvent1
- Serial2 – serialEvent2
- Serial3 – serialEvent3
Esta función no esta disponible para todos los puerto serie de todas las placas, por ejemplo no esta disponible para las placas basadas en microcontroladores SAMD, para Arduino Due o las placas Leonardo, Micro, o Yún que no funciona serialEvent (serialEvent1 si que funciona).
Este texto mejorado y ampliado forma parte de mi libro sobre como mejorar tus programas en Arduino. Puedes echarle un vistazo aquí.