SSR problem

I'm using a Sharp zero-cross SSR; one of these:
http://www.sharpsma.com/webfm_send/315

I'm driving this from pin 12 on a breadboard Ardy for a project where it goes into an enclosure.

When building all of this up on a breadboard, it worked fine. The project is a timer; when the given time arrives, the pin goes high, the SSR turns on, and passes 115 V.

After soldering it all in and putting it in an enclosure, it still worked fine -- checked with a voltmeter.

However, after closing the enclosure, and trying it for real, it no longer works. I opened the enclosure again, and measured the circuit, and now, when pin 12 goes high, the SSR only passes about 20 V. When pin 12 is low, it passes nothing.
measuring the control circuit shows that I get about 1.3 V across the control pins. That's OK, because the part is specced at 1.2 V, but I wonder -- why is it not 5V? Measuring across the pull-down resistor also gives me 1.3V.

The project is large, but the source code is available at GitHub - jwatte/arduino-chargetimer: A battery charger timer for Arduino

The particular circuit consists simply of pin 12, feeding out to the positive terminal of the SSR, and the negative going to ground. There's also a pull-down of 20 kOhm from pin to ground as well, just to be safe -- this is in parallel to the control circuit, and thus won't voltage divide, just add a little bit of current when on.

So, I probably mashed something when closing up the enclosure, and therefore it doesn't work anymore. However, I haven't yet found what it is. What's extra weird is the measurements, which I can't explain:

  • why 1.3 V from pin 12 to ground when on?
  • why 20 V across the output, instead of 115?

(and, yes, I set pin 12 as OUTPUT in setup() -- first thing I checked :slight_smile:

//  constants
#define LED_PIN 13
#define RELAY_PIN 12

void setup()
{
    //  Turn on indicator, turn off relay
    pinMode(RELAY_PIN, OUTPUT);
    digitalWrite(RELAY_PIN, LOW);
    pinMode(LED_PIN, OUTPUT);
    digitalWrite(LED_PIN, HIGH);
    delay(10);

...

//  Turn on the relay and light
void turnOn()
{
    digitalWrite(LED_PIN, HIGH);
    digitalWrite(RELAY_PIN, HIGH);
}

The words "RELAY_PIN" or "12" don't occur anywhere else in my project.

Nothing like posting publicly to get the troubleshooting juices going.

Turns out, I suck at reading spec sheets. The minimum input voltage is 1.2V – but the maximum is 1.4V. Feeding 5V into it probably worked for a bit, and then fried the SSR :frowning: Luckily, I have a spare :slight_smile:

It sounds like you may have miswired the input circuit to the SSR and possibly damaged the arduino output pin and or the internal SSR led? The input to the SSR is just an internal led and must be driven just like any led wired to a arduino. That means digital output pin to a series resistor then to the anode lead of the SSR input, SSR cathode lead wired to arduino ground pin. No pull-up or pull-down resistor required. Size the resistor for a 20ma current flow.

If in your prior hook up there was no external current limiting resistor wired to the SSR’s led then no telling what it’s condition may be at this time.

Lefty

jwatte:
Nothing like posting publicly to get the troubleshooting juices going.

Turns out, I suck at reading spec sheets. The minimum input voltage is 1.2V -- but the maximum is 1.4V. Feeding 5V into it probably worked for a bit, and then fried the SSR :frowning: Luckily, I have a spare :slight_smile:

Again, stop thinking of that specific SSR as a voltage actived device, it's a current activated input. Nominal 20ma to turn on fully, no current to turn off fully. It's up to you to select external components to convert voltage to the proper current value to switch the SSR on.

Lefty

I don't see how to do the math without putting a voltage in there.

I want the total resistance of the resistor + SSR to give me 20 mA at 5V, which is 250 Ohm. However, I need to know how large the internal resistance of the device is, in order to size the external resistor. Thus, the voltage bit. Let's say the device wants 20 mA at 1.3 volts. That means 3.7 volts at 20 mA across the resistor, which means 185 Ohm external resistor.

Given that the internal resistance isn't specified, how else can I figure out what the proper external resistor is?

You have done the calculation in exactly the right way, except for allowing for the output voltage being a little less than 5v when you draw 20mA from it. However, the trigger current is not critical, the datasheet suggests anywhere between 8mA and 50mA will do. So I suggest using a 180 ohm resistor.

My guess is that the output driver on pin 12 has blown but the pullup is still working.

Great! That's exactly what I wired in series with the input of the new SSR (which is a s216s02, 250V/16A device).
Unfortunately, it still doesn't work, and I haven't figured out how to troubleshoot it yet.
When I measure it without load, when the trigger signal is on, I get about 20V across the output terminal.

o------------------------------o  Neutral
o-----------+SSR+-------------o  +115V

I measure on the left side.

Now, this could be because I measure without load, and the device requires some current to get started. However, even with two devices plugged in on the left, I get no success on the output.

I wanted to use this device so I didn't have to buffer the output from the Ardy to a mechanical relay, but perhaps I just need to bite the bullet and do that. From what I can tell and measure, doing so ought to work great.

Putting an SSR in the neutral side is bad practice, it should be in the live side.

SSRs pass a small current even when off - that's probably why you are measuring 20v across where the load should be.

My guess is that the output driver on pin 12 has blown but the pullup is still working. So try another output pin (with series resistor). You may still find that pin 12 still works as an input, and that your old SSR still works.

Actually, I did put it on the live side -- I labeled the diagram wrong! Thanks for reading my question thoroughly, and calling it out, too!

At least this time it was simple: When soldering in the new SSR, I had reversed the polarity of the driving wires.
Thank you both for taking the time to help me trouble-shoot, and the good news is that it finally works!
I’m not heat-sinking the SSR, but the total load is < 200W so it should do fine without it. Just for anyone else reading this: the data sheet recommends up to a 4x4 inch piece of steel or similar to heat-sink if you want to pull many amps through these devices.