Parece que uno solo de tus interruptores está "goteando" en todo momento. Si ha construido el circuito correctamente Y si los transistores no están dañados, esto no debería ocurrir.
Re Sw1 y Sw2.
Apagado es cerrar, cerrar o abrir, abierto.
La dirección 1 está abierta, cerrada.
La dirección 2 está cerrada.
Con SW1 Sw2 abierto, Mleft y Mright deben estar cerca del suelo.
Con SW1 Sw2 cerrado cerrado, Mleft y Mright deben estar cerca de Vcc.
En cualquiera de estos casos, el motor no puede girar. Si lo hace girar los voltajes anteriores no pueden ser correctos. Identifique qué voltaje es incorrecto y luego por qué: ya sea que la unidad base no sea la esperada o que un transistor esté dañado o que el circuito sea incorrecto. Usted debe "fácilmente" encontrar esto trabajando a través de lo anterior y luego haciendo un seguimiento de las implicaciones cuando un voltaje no es como debería ser.
AÑADIDO
La información adicional deja claro lo que está sucediendo:
Las resistencias sin etiquetar son de 100 ohmios. El motor consume alrededor de 100 mA (un poco menos, alrededor de 98) cuando está conectado directamente al suministro. Los transistores PNP son 2N4403 y yo uso 2 transistores NPN diferentes: BC182 & 2N3904. El BC182 solo admite 100 mA, los demás tienen una clasificación más alta, pero el motor realmente no supera ese nivel ... Mi Arduino suministra 5 voltios, con las resistencias que deberían tener 4.5 mA a la base, no estoy seguro de cómo Interprete las hojas de datos para determinar si esto es suficiente para la saturación.
Llame a los resistores de 4 x 100 Ohm RLU RRU RLL RRL (R_left_upper, R_right_upper ...). 100 ohmios es demasiado bajo en este contexto en relación con R5 y amp; R6 resistencias 1K. Tener Sw1 abierto y eliminar R6 por ahora. Luego: con el suministro de 3V, Q3b (base Q3) estará aproximadamente 0.6V por debajo del suministro = 2.4V con el suministro de 3V. Q1b = anout 0.6V. Por lo tanto, V a través de RLu + Rll = (2.4 - 0.6) = 1.8V, así que a través de RLu y Rll ~ = V / I = 1.8 / 200 = 9 mA. Esto fluye tanto en la base Q1 como en la base Q2 para que puedan admitir la corriente del colector Beta x Ib como corriente de "disparo". Si ahora cierra, Sw1 Q1 está desactivado y Q3 activado según lo previsto. PERO si abre SW1 y vuelve a agregar R6, 1K no es suficiente para atraer el punto central de RLu y RLl hacia arriba lo suficiente como para apagar Q1. Por lo tanto, cuando un interruptor está abierto, el transistor superior se colocará en modo de conducción parcial.
Agh, por aquí veo que Dave Tweed ha dicho lo que estoy diciendo :-) :-(.
Así que más brevemente.
Para superar el efecto anterior, el pullup debe causar el divisor si Rlu, Rll, R6 y los dos "diodos" de la base permiten que el pullup desactive Q3.
Para hacer esto, quiere que R6 tire RLu_b más cerca que ~ = 0.6V de la fuente superior. A grandes rasgos
(Vcc-Vbe_Q1) x R6 / R6 + Rll) < 0.6V.
Con Vcc = 3V y VBe_Q1 = 0.6V (estará cerca pero será diferente a esto) luego RLu < ~ 100 x 0.6 / (3-0.6) = < 25 ohmios.
Esto es "bastante bajo".
En su lugar, puede aumentar los 4 x 100 Ohms a un valor más alto y quizás disminuir un poco R5, R6.
Hoja de datos de BC182 aquí
A una corriente de motor de 100 mA, el BC182 tiene una Beta media nominal (ganancia de corriente) de 80, pero eso es un Vce alto, por lo que Beta es ~ = 25.
Para 100 mA IC, entonces necesita Ib = 4 mA.
Cuando la corriente de base fluye a través de un pullup R6 y Rll y Q1b, se desea una resistencia total inferior.
R = V / I = (Vcc-Vbe) / I = (3-0.6) V / 4mA = 600 Ohmios.
Eso es R6 + RLl.
Y necesitas R6 < < Rll, etc. como arriba.
...