//****************************************************
//****************************************************
//******** Test control relé por puerto serie ********
//****************************************************
//****************************************************
byte rele[5] = {4, 5, 6, 7, 8};
byte estado_rele[5] = {0, 0, 0, 0, 0};
//****************************************************
//******** Configuración *****************************
//****************************************************
void setup()
{
Serial.begin(9600); // Puerto serie 9600 bps
// Inicializa Relés
for (byte zz = 0; zz < 5; zz++)
{
pinMode(rele[zz], OUTPUT); // Configura puerto como salida
digitalWrite(rele[zz], 0); // Desactiva relé
}
}
//****************************************************
//******** Programa principal ************************
//****************************************************
void loop()
{
}
//****************************************************
//******** Recepción datos puerto Serie **************
//****************************************************
void serialEvent()
{
char num_rele = Serial.read() - 49; // Numero relé recibido, 1=ASCII 49.
if (num_rele<0 || num_rele>4) return;
if (estado_rele[num_rele] == 0)
{
digitalWrite(rele[num_rele], 1); // Activa relé
Serial.print("Relé "); Serial.print(num_rele+1); Serial.println(" Activado.");
estado_rele[num_rele] = 1;
}
else
{
digitalWrite(rele[num_rele], 0); // Desactiva relé
Serial.print("Relé "); Serial.print(num_rele+1); Serial.println(" Desactivado.");
estado_rele[num_rele] = 0;
}
}
//****************************************************
//****************************************************
//****************************************************