tengo una pregunta, estoy elaborando un programa para controlar un sistema de 4 salidas mediante el modulo bluetooth hc 05, es un sistema de seguridad, me encuentro perdido con respecto a que me gustaria conocer algun metodo para que mi programa detecte cuando ya no esta recibiendo datos del modulo a traves del puerto serie y active una secuencia especifica, la idea es hacerlo usando una interrupcion, sin embargo no tengo idea de como realizarlo
#include <SoftwareSerial.h> // libreria que permite establecer pines digitales
SoftwareSerial ITALIKA(2, 3); // pin 10 como RX, pin 11 como TX
char DATO = 0; // variable para almacenar caracter recibido
int claxon = 4; // rele de claxon conectado a pin digital numero 4
int ig = 5; // ignicion a pin digital numero 5
int luces = 6; // luces a pin digital numero 6
int arranque=7; // cortacorrientes a pin digital numero 7
void setup(){
Serial.begin(9600); // comunicacion de monitor serial a 9600 bps
Serial.println("Listo"); // escribe Listo en el monitor
ITALIKA.begin(38400); // comunicacion serie entre Arduino y el modulo a 38400 bps
pinMode(claxon, OUTPUT); //claxon como salida
pinMode(ig, OUTPUT); // igcomo salida
pinMode(luces, OUTPUT); // lucescomo salida
pinMode(arranque, OUTPUT); // arranque como salida
}
void loop(){
if (ITALIKA.available())
Serial.write(ITALIKA.read()); // lee Bluetooth y envia a monitor serial de Arduino
DATO = ITALIKA.read();
if ( DATO == '1' ) // si el caracter recibido es el numero 1
{
digitalWrite(claxon, HIGH); // escribe un valor alto a emparejarse bluetooth
digitalWrite(luces, HIGH); // escribe valor alto al emparejarse via bluetooth
delay(200);
digitalWrite(claxon, LOW); // escribe un valor BAJO a emparejarse bluetooth
digitalWrite(luces, LOW); // escribe valor BAJO al emparejarse via bluetooth
delay(200);
digitalWrite(ig, !digitalRead(ig));
delay(1000);
if(ig == 5){
digitalWrite(arranque, !digitalRead(arranque));
delay(2100);
digitalWrite(arranque, !digitalRead(arranque));
}
else{
digitalWrite(arranque, LOW);
}
}
if ( DATO == '2' ) { // si el caracter recibido es el numero 2
digitalWrite(claxon, HIGH);
delay(300);
digitalWrite(claxon,LOW);
}
if ( DATO == '3' ) { // si el caracter recibido es el numero 3
digitalWrite(luces, !digitalRead(luces));
}}