Electronic – arduino – MCU to switch single coil latching relay not working (attempting array with common gnd)

arduinorelayuln2003

I have several single coil latching relays, (low rep points so not hyperlinking), mouser.com/ds/2/212/KEM_R7002_EC2_EE2-540906.pdf (EC2-5SNU).

I am trying to control them by an MCU; connected directly they work fine, but I am iffy about keeping it this way so I'm trying to power them through a darlington pair array: ti.com/lit/ds/symlink/ulq2004a.pdf (ULN2003).

Using the non-latching type, these work fine through the ULN2003, but attempting to interface the code below with the latching type isn't going so well and i can't figure out why:

int right = 12;
int left = 10;

void setup() {                
  pinMode(right, OUTPUT);     
  pinMode(left, OUTPUT);    
}

void loop() {
  digitalWrite(right, HIGH);  //reset
  digitalWrite(left, LOW);  
  delay(2000);              
  digitalWrite(right, LOW); //set
  digitalWrite(left, HIGH);   
  delay(2000);       
}

I have four connected with a common pin, but to simplify i've tried and failed to have the code above work on a single relay, as shown below:

enter image description here

enter image description here

Measuring the voltages out of the MCU show the correct levels, keeping in mind the ULN2003 acts an inverter, so i've set the boolean logic accordingly.

The voltages at the output of the ULN seem to stick at 0.6V, I've tried a bunch of permutations, including having one pin (on the common pin setup) connected directly to the MCU.

Does anyone have any ideas?

Best Answer

As I think you understand, for this model of the relay there is only one coil and set and reset are carried out by polarity reversal. This is indicated on the schematic symbol.

enter image description here

Figure 1. Coil polarity for set and reset operation.

The problem is with the ULN2003.

enter image description here

Figure 2. The ULN2003 inverter and a detail of one output stage.

Notice that this is an open-collector transistor output stage. It can only pull low (sink) and cannot source (supply) current.

schematic

simulate this circuit – Schematic created using CircuitLab

Figure 3. (a) What you created (in top schematic). (b) What you need - H-bridge.

You need a little redesign. A simple H-bridge would do the trick.

I don't know which coil voltage you are using but it may be possible to drive the relay coils directly from the micro-controller. Calculate the current required from the coil specifications on page 8 of the datasheet. Then compare this to the maximum source and sink currents of the micro-controller. Watch the chip total current too. You might be constrained to energising one coil at a time.


schematic

simulate this circuit

Figure 3. Snubbing options. Option (b) integrates the four diodes into a bridge rectifier saving some PCB space and soldering.