Alimentacion caprichosa

Estoy realizando un pequeño montaje formado por dos barreras IR con la intención de medir la velocidad de cualquier objeto que pase entre ambas.

De momento el código está en pañales, pero el problema fundamental me surje porque cuando alimento arduino con 9 voltios las barreras no funcionan, sin embargo la alimento a través del cable usb y sí que funciona. He verificado arduino y con cualquier otro montaje funciona perfectamente, sin embargo con la barrera el programa se ejecuta pero las barreras no detectan paso alguno, he realizado pruebas y el funcionamiento es correcto si el voltaje se baja hasta los 7 voltios.
Como digo, esto solo pase con este montaje.

¿que explicación puede tener esto?

este es el esquema de conexionado.