Estás viendo exactamente el comportamiento que yo esperaría.
Cuando están activados, los transistores Silicon BJT necesitan un \ $ V_ {be} \ $ (que es el voltaje de la base con respecto al emisor) de alrededor de \ $ \ approx0.7 \ mathrm {V} \ $. Eso significa que si su salida de Arduino está en \ $ 5 \ mathrm {V} \ $, entonces si el emisor es más alto que \ $ 5-0.7 = 4.3 \ mathrm {V} \ $, el transistor se apagará.
Si coloca el motor entre el emisor y la conexión a tierra, significa que no puede tener más de \ $ 4.3 \ mathrm {V} \ $ en el motor, porque el transistor se apagaría. Sin embargo, obtendrá la corriente suficiente para que la tensión del motor llegue a eso. Si no tiene una resistencia de base, la corriente que fluye hacia la base en este escenario será bastante alta y superará con creces la capacidad de fuente actual del ATMega IC, lo que hará que la tensión de salida caiga debido a la resistencia interna, que Es por eso que ve más cerca de \ $ 3 \ mathrm {V} \ $ a través de su motor.
Si, en cambio, conecta el emisor a tierra y el motor al colector (y el otro lado del motor a la fuente de alimentación), cuando aplique \ $ 5 \ mathrm {V} \ $ a la base, tendría \ $ V_ {be} = 5 \ mathrm {V} \ $ porque el emisor está a potencial de tierra. Esto activaría completamente el transistor y tendría cerca de \ $ 12 \ mathrm {V} \ $ a través del motor. Sin embargo, esto tampoco es bueno: podría freír su transistor o freír el pin de control (o ambos).
Los dispositivos BJT son fuentes de corriente controladas actuales : esto significa que la corriente que fluye del colector al emisor es proporcional a la corriente que fluye de la base al emisor. Es decir, aumentar la tensión base no es la forma en que controla la salida, sino que necesita cambiar la corriente. Si aumenta el voltaje de la base demasiado alto en el transistor, terminará con corrientes muy altas que fluyen hacia la base (el transistor es efectivamente un diodo desde la base hasta el emisor) que lo dañará.
Entonces, lo que debe hacer es convertir la salida de tensión \ $ 5 \ mathrm {V} \ $ del pin Arduino a la \ $ \ approx0.7 \ mathrm {V} \ $ requerida por el transistor a una corriente segura nivel: esto se hace simplemente agregando una resistencia de tamaño adecuado entre el pin Arduino y la base del transistor, de este modo:
Fuente de imagen