Светодиоды, подключенные к реле, остаются включенными?

Я построил простой проект с платой Arduino. Я использую плату для считывания аналоговых входных значений с датчика вращения (потенциометра) и использую значения, чтобы определить, какое реле SSR на модуле включить. Затем я подключил реле к светодиодам, и проект работает, но только одним способом. Например, когда я поворачиваю потенциометр на максимум, реле последовательно замыкаются, как и должно быть. То же самое, когда я достигаю максимума и набираю банк. обратно к 0. Я могу ерзать посередине, и Arduino включит реле (реле) в соответствии с считанными аналоговыми значениями. Эта часть работает так, как должна.

Проблема в том, что когда я подключаю светодиоды к реле, светодиоды будут включаться последовательно по мере включения реле, когда я набираю потенциометр. от 0 до максимума. Но светодиоды не гаснут, когда я набираю потенциометр. обратно вниз к 0. Реле показывают, что они выключаются на модуле (каждое из них имеет светодиодный индикатор), но светодиоды, которые я подключил, остаются включенными, несмотря ни на что.

Стандартный выход 5 В с платы Arduino питает модуль реле, светодиоды и датчик. Каждая земля является общей для Arduino GND.

Так почему светодиоды не гаснут? Это, вероятно, очень начинающие вещи, о которых я не знаю. Я где-то читал, что когда вы используете MOSFET для включения и выключения чего-либо, вы должны подключить подтягивающий резистор к GND, чтобы «отключение» сработало. В противном случае свет, двигатель или что-то еще останется включенным. Похоже, это применимо здесь?

Вот мой релейный модуль: http://www.sainsmart.com/sainsmart-4-channel-5v-solid-state-relay-module-board-omron-ssr-avr-dsp-arduino.html

Мой датчик вращения (пот.): https://www.bananarobotics.com/shop/Analog-Rotation-Sensor-V1-Potentiometer?gclid=CjwKEAiAk8qkBRDOqYediILQ5BMSJAB40A5UiGMFbpiVo9rWMI-ooeUwOA2ZfTD-h5ctmCyOAwcUzBoCIo_w_wcB

А вот мой код Arduino, если поможет:

//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); 
 }
}

Ответы (1)

То, что у вас есть, это твердотельные реле. Они предназначены для переключения переменного тока, а не постоянного тока.

Они полагаются на то, что напряжение, протекающее через переключаемую сторону, падает до 0 В (точка «пересечения нуля» сигнала переменного тока) для отключения.

Они не подходят для коммутации постоянного тока.

Ах, глупый я. Надписи на реле даже не удосужился посмотреть. Спасибо.