Su esquema es correcto, básicamente.
Aunque no se muestra explícitamente en su diagrama, asumo que tiene el Arduino enchufado a un puerto USB que lo suministra con energía.
¿Qué sucede si conecta la fuente de alimentación de 9 V directamente al motor?
Por supuesto, el motor debe girar constantemente a toda velocidad. Esto prueba que la tensión de esta fuente de alimentación se adapta adecuadamente a su motor, y la fuente de alimentación puede generar suficiente corriente para hacer funcionar el motor.
Ahora, ¿qué sucede con el cable desconectado del pin 9 en el Arduino y conectado a + 5V en el Arduino? Si el transistor y otras partes están cableadas correctamente, esto también hará que el motor gire constantemente a la máxima velocidad.
Si esto no funciona, verifique dos veces el pinout del transistor.
Ahora, en su software, intente encender el motor con una sola declaración digitalWrite (MotorPin, HIGH) en la parte de configuración de su programa.
No pongas nada dentro del bucle en esta etapa.
Esto solo debería hacer que su motor se encienda y permanezca encendido todo el tiempo a toda velocidad.
Ahora, si eso funciona, intente algo como analogWrite (MotorPin, 128) ejecutado una vez en la parte de configuración de su programa, sin nada en el bucle. Ahora el motor debe encenderse y permanecer encendido constantemente, a velocidad reducida.
¿Es la corriente del motor demasiada para que la 2N2222 pueda manejarla? (Una vez que sepa cuáles son las especificaciones reales del motor para el consumo de corriente, verifique la corriente del colector en la hoja de datos 2N2222). Es posible que deba considerar la sustitución de un transistor de corriente superior, como un TIP120 o BD675.