DIY Arduino Relay Module From Old E-waste

Nowadays, humanity produces a lot of e-waste. We can talk about millions of tons per year and I will not say here how toxic it is for our planet. The most interesting thing is that most electronic components inside electronic devices that people throw away are in working condition. Most of this trash heap has not yet exhausted its resource and has satisfactory technical parameters. Therefore, I often use the rule "3R" - Reduce, Reuse and Recycle.

► CRT Monitor Board


Old boards with relays that are controlled by transistor switches are an excellent source of ready-made (already calculated) relay modules for Arduino. Below is a photo of the board from the old CRT monitor SAMTRON 56E which is designated as "AN15V(M)1.1".

Arduino

This board has one relay 12V/5A250V (SDT-S-112LMR) in the kinescope demagnetization circuit (degaussing system) and I found a datasheet for this monitor without much effort, so I did not have to redraw it directly from the board - I just sketched it from there as is.

Arduino

The relay is controlled by a simple transistor switch with a minimal set of elements (plus a resistor in the collector wire at 47 ohms): a NPN transistor KSC945Y (marked as "C945Y"), a protective diode 1N4148 and a resistor in the base wire for 10 kilohm.

// Blink (1 relay)

  int relayPin = 4;

void setup () {

  pinMode (relayPin, OUTPUT);

}

void loop () {

  digitalWrite (relayPin, HIGH);
  delay (1000);
  digitalWrite (relayPin, LOW);
  delay (1000);

}  // Arduino IDE 1.8.4
Arduino

To test this relay module, I used a standard sketch for blinking LED through the 13th pin with a time delay of 1 second, after changing the variable name for this pin and the number of this pin. Everything is very simple here and it does not need a special detailed explanation.

Now, purely for the sake of interest, I will calculate (approximately) the saturation coefficient of the transistor that the engineer chose when designing this section of the scheme.

► 1. The load of the transistor is a relay (SDT-S-112LMR) with a coil resistance of 580 ohms (Rc1) and a resistor with a resistance of 47 ohms (Rc2). Calculate the collector current of the transistor (Ic):

Ic = Vcc/(Rc1+Rc2) = 13/(580+47) = 0.021A = 21mA (Vce(sat) => 0)

► 2. Calculate the base current (for checking - the measured value Ib = 0.4mA):

Ib = Vr/Rb = (Vin-Vbe)/Rb = (5-0.7)/10000 = 0.00043A = 0.43mA

► 3. The DC current gain (β) of the transistor (KSC945Y) is 120...240, so I take the minimum value β = 120 and calculate the saturation coefficient of the transistor (S):

Ib = S*(Ic/β) => S = (β*Ib)/Ic = (120*0.00043)/0.021 = 2.5

(!) Usually for such transistor switches it is recommended to take this value within 3...5.

► Air Conditioner Indoor Unit Control Board


I had an old air conditioner indoor unit control board of 2007 issue (2007.07.19) which is marked as "CE-KFR32G/N1Y-R1.D.01.NP1-1 [v1.3]" and I took two relays from there.

Arduino

This board has two identical parallel-connected relays 12V/5A250V (SJ-S-112DM) which are also controlled by an identical parallel-connected transistor switches. Unfortunately, I did not find the datasheet for this board, so I had to redraw the circuit directly from the board.

Arduino

Both of these relays is controlled by a simple transistor switches with a minimal set of elements (a NPN transistor STS9014, a protective diode 1N4148 and a resistor in the base wire about 2 kilohm) of which I made two independent and miniature relay modules.

// Blink (2 relays)

  int relay1Pin = 4;
  int relay2Pin = 19;

void setup () {

  pinMode (relay1Pin, OUTPUT);
  pinMode (relay2Pin, OUTPUT);

}

void loop () {

  digitalWrite (relay1Pin, HIGH);
  digitalWrite (relay2Pin, LOW);
  delay (1000);
  digitalWrite (relay1Pin, LOW);
  digitalWrite (relay2Pin, HIGH);
  delay (1000);

}  // Arduino IDE 1.8.4
Arduino

To test these two relay modules, I used the first sketch "Blink (1 relay)" and modified it a little. Each relay module also turns on for 1 second, but they are triggered alternately (in the photo both relay modules are turned on simultaneously, but I did it only for demonstration).

Just as in the first case, for the sake of interest, I will calculate (approximately) the saturation coefficient of the transistor that the engineer chose when designing this transistor switch.

► 1. The load of the transistor is a relay (SJ-S-112DM) with a coil resistance of 320 ohms (Rc). Calculate the collector current of the transistor (Ic):

Ic = Vcc/Rc = 12/320 = 0.038A = 38mA (Vce(sat) => 0)

► 2. Calculate the base current (for checking - the measured value Ib = 2.1mA):

Ib = Vr/Rb = (Vin-Vbe)/Rb = (5-0.7)/2000 = 0.0022A = 2.2mA

► 3. The DC current gain (β) of the transistor (STS9014) is 100...1000, so I take the minimum value β = 100 and calculate the saturation coefficient of the transistor (S):

Ib = S*(Ic/β) => S = (β*Ib)/Ic = (100*0.0022)/0.038 = 5.8

(!) As I said above, the saturation coefficient of the transistor in such cases is recommended to be taken within 3...5 and this result is quite acceptable for an approximate calculation.

► Conclusion


Thus, I managed to make several miniature relay modules with small control currents from old discarded rubbish, as well as calculate some important parameters of their switches.

Arduino

(!) For visual control of the current state of the relay modules (ON/OFF), I soldered parallel to their coils (12V) a LED with a resistor of 1 kilohm and this is not shown in the diagrams.
Payoneer

Since 2005, Payoneer's cross-border payments platform has empowered millions of entrepreneurs across the world to expand beyond their borders and grow successful and sustainable businesses. Thousands of leading companies and marketplaces including Airbnb, Amazon, Google, Upwork and others rely on Payoneer's services to send funds to their merchants worldwide. Register NOW and get your Payoneer prepaid MasterCard!