Hola.
Quiero desarrollar una aplicación para activar un conjunto de luminarias, para lo cual necesito comandar siete reguladores DALI: cuatro conectados a un relé (grupo I) y los otros tres conectados a sus respectivos relés (grupo II, III y IV). La intensidad máxima de cada regulador DALI es de 1A.
La carga máxima que soporta mi relé es de 2A, de modo que estos relés (a partir de ahora los llamaré "relés de control" alimentados a 5Vdc) son usados para alimentar otros relés ("relés de potencia" alimentados a 230Vac) cuya carga máxima aceptada es de 8A.
Ahora bien, al recorrer en mi programa de Arduino una lista de combinaciones para los relés, he observado que pasado un tiempo, en el grupo I sigue habiendo tensión cuando el relé debería estar en estado de reposo.
Los relés de control tienen una entrada de control (válgame la redundancia) de 5V (que sale de una GPIO de una Arduino UNO), cuyos contactos NO van a los terminales A2 de mis relés de potencia, que van a 230V; los cuales carecen de señal de control. Así, cerrando o abriendo el neutro puedo activar o desactivar estos relés de alterna. Estos últimos también utilizan el neutro de mis reguladores DALI (en contactos NO) para encender o apagar los reguladores.
Cabe decir que mis relés de control conmutan en LOW, es decir, son low level trigger.
Mi pregunta es: ¿por qué pasado un tiempo mido 230V entre fase y neutro de mis reguladores DALI en el grupo I, si de acuerdo a lo programado en mi Arduino, en ese momento debería estar sin tensión?
Adjunto el programa de Arduino:
#define GroupLed1Pin 4
#define GroupLed2Pin 8
#define GroupLed3Pin 10
#define GroupLed4Pin 11
struct Relay {
int led1;
int led2;
int led3;
int led4;
};
static Relay comb[16] = {
{ HIGH, HIGH, HIGH, HIGH }, // 0
{ HIGH, HIGH, HIGH, LOW }, // 1
{ HIGH, HIGH, LOW, HIGH }, // 2
{ HIGH, HIGH, LOW, LOW }, // 3
{ HIGH, LOW, HIGH, HIGH }, // 4
{ HIGH, LOW, HIGH, LOW }, // 5
{ HIGH, LOW, LOW, HIGH }, // 6
{ HIGH, LOW, LOW, LOW }, // 7
{ LOW, HIGH, HIGH, HIGH }, // 8
{ LOW, HIGH, HIGH, LOW }, // 9
{ LOW, HIGH, LOW, HIGH }, // 10
{ LOW, HIGH, LOW, LOW }, // 11
{ LOW, LOW, HIGH, HIGH }, // 12
{ LOW, LOW, HIGH, LOW }, // 13
{ LOW, LOW, LOW, HIGH }, // 14
{ LOW, LOW, LOW, LOW }, // 15
};
void setup() {
pinMode(GroupLed1Pin, OUTPUT);
pinMode(GroupLed2Pin, OUTPUT);
pinMode(GroupLed3Pin, OUTPUT);
pinMode(GroupLed4Pin, OUTPUT);
digitalWrite(GroupLed1Pin, HIGH);
digitalWrite(GroupLed2Pin, HIGH);
digitalWrite(GroupLed3Pin, HIGH);
digitalWrite(GroupLed4Pin, HIGH);
}
void loop() {
for (int i = 0; i <= 15; i++) {
setRelay(i);
delay(10000);
}
}
void setRelay(int iLed) {
digitalWrite(GroupLed1Pin, comb[iLed].led1);
digitalWrite(GroupLed2Pin, comb[iLed].led2);
digitalWrite(GroupLed3Pin, comb[iLed].led3);
digitalWrite(GroupLed4Pin, comb[iLed].led4);
}
Adjunto el diagrama de conexión:
Gracias por adelantado.