I'm having some trouble driving some automotive relays properly. I have an Arduino with a shift register connected to a ULN2803. I've followed all the directions for hooking up a common auto relay, the 87 or 87a. When I power on the setup and the ULN2803 flashes all outputs to on (I know I need to fix that) the auto relays trigger. It would not seem to be a power or wiring issue.
I have two buttons hooked into the Arduino that I've assigned to trigger pins 0 and 1 on the ULN2803. When I press the buttons (HIGH) I can hear a high pitched buzzing but the relays don't trigger. I've tested the code using LEDs in place of the relays and the LEDs light correctly when the buttons are pressed.
How come the initial boot up of the ULN2803 is sufficient to activate the relays but my code isn't? I'm just sending the pins to HIGH using registerWrite(0, HIGH). Fiddling with it some more it almost sounds like sometimes the initial boot up isn't quite enough to trigger the relays either. It must be just on the edge of how much amps it needs.
Anyone have any insight into this? It looks like the ULN2803 can output up to 500ma per pin which should be plenty for the 87a relay.

