48V Relay not reliably switching off

Hi everyone,

I am currently trying to operate four CCTV cameras that are being powered via PoE (so needing a 48V supply). In order to be able to individually switch them on and off, I am using an Arduino Uno R3 and an Arduino A000110 Relay Shield which is rated at max 48V load and 60W (the cameras individually don't exceed the power limit but do operate indeed at the upper voltage boundary). The relay is not mounted on top of the Uno and is only being powered by the Uno's 5V supply while the 3.3V is being used elsewhere. The relay is obviously grounded to the Uno's GND pin and the number 4, 7, 8, and 12 digital pins of each are connected to each other for simplicity (4 controls Channel 1, 7 controls Channel 2, etc).

The 48V supply is being fed to the COM of each channel and exits the channel out of the NC pole and into the cameras. The issue that I experience is that after a short while of the cameras being switched on, either one of the four channels starts refusing to turn off. I hear the switching sound but the voltage drop between ground of the 48V supply and the NC remains at 48V. Can anyone suggest what could be the cause and fix?

The code is attached and the corresponding incomingByte is being sent by pressing buttons on a WinForms GUI.

Thank you for your help!

#define cam1 4
#define cam2 7
#define cam3 8
#define cam4 12

bool on1 = false;
bool on2 = false;
bool on3 = false;
bool on4 = false;
int incomingByte = 0;

void setup() {
  initKillSwitch();
  Serial.begin(9600);
}

void loop() {
  killSwitch();
  delay(200);
}

void killSwitch() {
  // send data only when you receive data
  if (Serial.available()) {

    incomingByte = Serial.read();
    if (incomingByte == 1) {
      on1 = !on1;
    }
    if (incomingByte == 2) {
      on2 = !on2;
    }
    if (incomingByte == 3) {
      on3 = !on3;
    }
    if (incomingByte == 4) {
      on4 = !on4;
    }
    if (incomingByte == 5) {
      reset();
    }
  }
  digitalWrite(cam1, on1 ? LOW : HIGH);
  digitalWrite(cam2, on2 ? LOW : HIGH);
  digitalWrite(cam3, on3 ? LOW : HIGH);
  digitalWrite(cam4, on4 ? LOW : HIGH);
}

void initKillSwitch() {
  pinMode(cam1, OUTPUT);
  pinMode(cam2, OUTPUT);
  pinMode(cam3, OUTPUT);
  pinMode(cam4, OUTPUT);
  reset();
}

void reset() {
  on1 = false;
  on2 = false;
  on3 = false;
  on4 = false;
}

StefanCanSat:
The 48V supply is being fed to the COM of each channel and exits the channel out of the NC pole and into the cameras.

I don’t have an answer but I do have a question. Why the NC pole and not the NO?

Because I first tried with NO and the NO pole ended up being stuck on 48V too

The relays are obviously not man enough for the job and you need a flyback diode across the contacts as well as the coils. Switching DC is more arduous than switching AC and most relays are AC rated . Derate bu a factor of three is a good starting point .

Those relays(*) are rated for 1A at 24Vdc absolute maximum. Bearing in mind twice the DC voltage is about four times harder to switch, you are utterly overloading the relays.

(*) Omron G5V-2-H1 signal relays from the pictures I found for the A000110

You want a power relay, not a signal relay, to switch power.