继电器突然冻结



大家好,我为一家需要包装机的工厂做了一个项目,所以我用了一些使用arduino、继电器和IR传感器的气缸
我附上了我的代码和模式的图片,因为有时我的继电器突然冻结,它们只需要关闭电源,然后再打开电源,就可以了。
Btw;我只为一个具有所有元素的中继附加模式,代码用于4个
中继
你知道这个吗?

模式的图片

int relay1 = 13;
int relay2 = 12;
int relay3 = 11;
int relay4 = 10;
int sensor1 = 5;
int sensor2 = 6;
int sensor3 = 3;
int sensor4 = 2;

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(relay1, OUTPUT);
pinMode(sensor1, INPUT);
pinMode(relay2, OUTPUT);
pinMode(sensor2,INPUT);
pinMode(relay 3, OUTPUT);
pinMode(sensor3,INPUT);
pinMode(relay4, OUTPUT);
pinMode(sensor4,INPUT);
pinMode(LED_BUILTIN,OUTPUT);
}
void loop() {
digitalWrite(relay1, LOW);
delay(2000);
digitalWrite(relay1, HIGH);
delay(2000); 
digitalWrite(relay2, LOW);
delay(2000);
digitalWrite(relay2, HIGH);
delay(2000); 
digitalWrite(relay 3, LOW);
delay(2000);
digitalWrite(relay3, HIGH);
delay(2000); 
digitalWrite(relay4, LOW);
delay(2000);
digitalWrite(relay4, HIGH);
delay(2000);

while(1){
delay(100); 
if(digitalRead(sensor2) == LOW)
{
Serial.println("Eggs on");
digitalWrite(relay1,HIGH);
delay(350); // shpejtesia sensorit // sensor speed
}
else
{
Serial.println("No eggs");
digitalWrite(relay1,LOW);
delay(50); // sa mu kthy shpejt klipi mbrapa // speed of cylinder getting back
}

if(digitalRead(sensor1) == LOW)
{
Serial.println("Eggs on");
digitalWrite(relay2,HIGH);
delay(350); // shpejtesia sensorit // sensor speed
}
else
{
Serial.println("No eggs");
digitalWrite(relay2,LOW);
delay(50); // sa mu kthy shpejt klipi mbrapa // speed of cylinder getting back
}
if(digitalRead(sensor3) == LOW)
{
Serial.println("Eggs on");
digitalWrite(relay3,HIGH);
delay(350); // shpejtesia sensorit // sensor speed
}
else
{
Serial.println("No egs");
digitalWrite(relay3 ,LOW);
delay(50); // sa mu kthy shpejt klipi mbrapa // speed of cylinder getting back
}

if(digitalRead(sensor4) == LOW)
{
Serial.println("Eggs on");
digitalWrite(relay4,HIGH);
delay(100); // shpejtesia sensorit // sensor speed
}
else
{
Serial.println("No eggs");
digitalWrite(relay4 ,LOW);
delay(50); // sa mu kthy shpejt klipi mbrapa // speed of cylinder getting back
}
}

我设计了在生产工厂运行的带有继电器的系统。继电器卡滞是一种罕见的情况,但在某些情况下可能会发生。

继电器线圈电压稳定性----如果继电器线圈电压不足,那么继电器可能无法接通。我会测量线圈接通时的电压,以确保继电器线圈电压稳定。为了获得最佳效果,我将从单独调节的(5 VDC)电源为继电器线圈供电。这确保了继电器线圈对电源电压的任何负载影响都不会导致Arduino电源中断并停止程序。

感应负载引起的继电器触点腐蚀----继电器触点可能会随着时间的推移而被侵蚀,偶尔会卡住,最终导致焊接关闭。当关闭感应负载时会发生损坏。感应负载的能量在触点之间放电,如果感应产生的电压足够高,则会在触点间隙中产生电弧。然后等离子体侵蚀触点。一种解决方案是在额定值高于正常负载电压(例如,高于24 VDC)的触点上添加一个跨接线。这将无害地吸收感应能量。另一种选择是RC滤波器。有关此主题的更多信息,请参阅继电器制造商的技术指南。

您的系统中可能存在一些问题。由于缺少一些电路,从张贴的电路图中看不出细节。

接地隔离----确保Arduino和24V电源的接地电压未连接。否则,当打开和关闭电磁阀时,可能会出现Arduino接地电压尖峰。这可能会绊倒阿杜因诺并停止该程序。Arduino电源和24 VDC电源应独立且浮动。

继电器驱动器隔离----在继电器驱动器电路中添加光学隔离器,以便在Arduino和继电器驱动器之间至少有一个1000 V的屏障。

继电器线圈电压抑制----在线圈两端增加一个反向极性二极管,以在继电器线圈放电时吸收感应能量。否则,该能量可能会对arduino输出引脚造成损坏。

祝你的系统好运

最新更新