Is it an issue with the L293D?

Arduino Uno, L293D shield, (2x) 12v Solenoid Valve, 12v 1a AC>DC Transformer (its an energizer battery charger transformer.)

The signal from the Arudino sends to the L293D shield np, as it has an led indicator to denote.

Both Solenoids work, but, they are salvage parts.

Solenoid in the A slot fires off perfectly fine, but the Solenoid in the B slot does not, despite being triggered.

(inconveniently mislabeled in the image i have. moter 1 slot not firing off solenoid, but, motor 2 is working fine.)


yes, my code is correct, and so is my wiring. sorry, i forgot to mention, but i did double check.

The L293D can handle only about 600-700 mA continuous current, so it is not suitable for a 1A solenoid.

However, it should close it temporarily. Check all your wiring and connection continuity, especially on a breadboard.

Swap the solenoids to make sure they both work.

the solenoid valve only draws 100ma, i just have a 1a attached to the circuit, because im using salvage parts.

If the solenoids work, then your wiring or code is wrong. You forgot to post those details.

sorry, i forgot to mention, the are "normally closed" solenoid valves. rated at 12v 100ma draw.

the code is correct, as is the wiring. its just test code written to test the solenoids,

void m1(IO) {

analogWrite(solenoidValve1, 255);


also, the for wiring, it is wired into "moter 1" of the image, all the other wiring is fine, as it works perfect for the other lane. maybe i just have a bad chip?

if i zap the solenoid with just straight 12v, it functions as intended. so, i know its not the solenoid, or atleast strongly assume.

analogWrite(solenoidValve1, 255);

This tells us nothing, and will not work if you have chosen the wrong pin.

Use digitalWrite() instead, and use your multimeter to check the continuity of every connection.

ive tripple-checked, init variable, set pin, set to output, and turn to full

wire coresponds to initialized variable, and goes to proper control pin on the shield,

even the shield recognises that it is recieving a signal to move the motor, as it lights with an indicator light.

im pretty sure i said all that already, but, okay. was just trying to save the time that i already spent. even the indicator led that shows the board is being controlled properly lights up at the appropriate time.

I will check the connectivity between the port and the chip i guess, thank you.

Since it doesn't work, there is no reason to accept your assurances. :wink:

Perhaps because the L293 drops too much voltage. Measure the effective coil voltage and power by 15V instead of only 12V. Or use a modern H-bridge with almost no voltage drop.

Or even simpler two 2N2222 transistors and 2 diodes. Use base resistors in the range 150 to 390 ohms (not critical) and a 2N2222 will happily drive 100mA load.
Other small switching BJTs are available.
Don't omit the free-wheel diode across the load. The circuit for relay/solenoid driving isn't hard to search for.

The darlington motor drivers like L293 and L298 drop lots of volts in operation and doesn't seem appropriate here.