¿Los LED conectados a un relé permanecen encendidos?

Construí un proyecto simple con una placa Arduino. Uso la placa para leer los valores de entrada analógica de un sensor de rotación (potenciómetro) y uso los valores para determinar qué relé SSR en un módulo encender. Luego conecté los relés a los LED y el proyecto funciona, pero solo de una manera. Por ejemplo, cuando giro el potenciómetro hacia el máximo, los relés se cierran secuencialmente, como se supone que deben hacerlo. Lo mismo cuando llego al máximo y marco el bote. de vuelta a 0. Puedo moverme en el medio y el Arduino encenderá los relés de acuerdo con los valores analógicos leídos. Esta parte funciona como se supone que debe hacerlo.

El problema es que, cuando conecto los LED a los relés, los LED se encenderán secuencialmente a medida que se encienden los relés, mientras marco el potenciómetro. de 0 hacia el máximo. Pero los LED no se apagan cuando marco el potenciómetro. retrocede hacia 0. Los relés indican que se están apagando en el módulo (cada uno tiene un indicador LED), pero los LED que conecté permanecen encendidos pase lo que pase.

La salida estándar de 5 V de la placa Arduino alimenta el módulo de relé, los LED y el sensor. Cada terreno es común con el Arduino GND.

Entonces, ¿por qué los LED no se apagan? Probablemente sea algo para principiantes que desconozco. Leí en alguna parte que cuando usa un MOSFET para encender y apagar algo, debe conectar una resistencia desplegable a GND, para que el "apagado" funcione. De lo contrario, la luz o el motor o lo que sea permanecerá encendido. ¿Suena como si se aplicara aquí?

Aquí está mi módulo de relé: http://www.sainsmart.com/sainsmart-4-channel-5v-solid-state-relay-module-board-omron-ssr-avr-dsp-arduino.html

Mi sensor de rotación (pot.): https://www.bananarobotics.com/shop/Analog-Rotation-Sensor-V1-Potentiometer?gclid=CjwKEAiAk8qkBRDOqYediILQ5BMSJAB40A5UiGMFbpiVo9rWMI-ooeUwOA2ZfTD-h5ctmCyOAwcUzBoCIo_w_wcB

Y aquí está mi código Arduino, si te sirve de ayuda:

//define the digital pins for controlling the relays on the module
//these pins are connected to the relay gate pins on the module
#define in1 13
#define in2 11
#define in3 10
#define in4 9

void setup(){     //make sure the pins are all output, as 5V will be drawn from them
 pinMode(in1, OUTPUT);
 pinMode(in2, OUTPUT);
 pinMode(in3, OUTPUT);
 pinMode(in4, OUTPUT);
}

void loop(){
 float rotationValue = analogRead(A0);        //read the raw sensor value
 float percentValue = rotationValue / 10.23;      //convert raw value to 0-100

 if(percentValue >= 0.00 && percentValue <= 1.00){        //all relays off
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW); 
 }

 else if(percentValue > 1.00 && percentValue <= 25.00){         //turn on relay 1
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW); 
 }

 else if(percentValue > 25.00 && percentValue <= 50.00){      //turn on relay 1, 2  
  digitalWrite(in1, HIGH);
  digitalWrite(in2, HIGH);
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW); 
 }
 else if(percentValue > 50.00 && percentValue <= 75.00){       //turn on relays 1,2,3
  digitalWrite(in1, HIGH);
  digitalWrite(in2, HIGH);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW); 
 }
 else if(percentValue > 75.00){         //turn on all the relays
  digitalWrite(in1, HIGH);
  digitalWrite(in2, HIGH);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, HIGH); 
 }
}

Respuestas (1)

Lo que tienes ahí son relés de estado sólido. Están diseñados para cambiar CA, no CC.

Dependen de que el voltaje que fluye a través del lado conmutado caiga a 0 V (el punto de "cruce por cero" de una forma de onda de CA) para apagarse.

No son adecuados para conmutar CC.

Ah, tonto de mí. Ni siquiera se molestó en revisar la escritura en los relés. Gracias.