Problema con servo y motor DC

Hola, tengo un pequeño problema con mis motores y es que no puedo hacer funcionar el motor DC, no sé si es por la librería del servo pero ya busque información y nada :c
La idea de este programa es hacer girar el servo hasta un cierto angulo, luego encender el motor DC, que pare y que regrese el servo pero el motor DC ni se mueve

Este es el programa:

[quote]
#include <Servo.h>

Servo servo_1;
int pos_servo_1;
int tiempo = 10;
int pasos = 6;
int motor=9;
int i;

void setup]() {

pinMode(motor, OUTPUT);
servo_1.attach(3);
analogWrite(motor, 0);
}

void loop () {

servo_1.write(0);
delay(1000);

for (pos_servo_1 = 0; pos_servo_1 <= 45 ; pos_servo_1 += pasos) { 
servo_1.write(pos_servo_1); 
delay(tiempo);
}

for(i=0; i<=40; i++){
 analogWrite(motor, i); 
 delay(500);
}

for (i=40; i>=0; i--){
 analogWrite(motor, i);  
 delay(500);
}

delay(1000);
for[ (pos_servo_1 = 45; pos_servo_1 >= 0 ; pos_servo_1 -= pasos) { 
servo_1.(pos_servo_1);
(tiempo);
}
delay(1000);
}

[/quote]

Hola, buen día, suponiendo que tienes bien conectado el hardware (digo suponiendo porque no das detalles de como tienes conectado tu motor), creo que el problema está en la forma que lo quieres hacer girar.
Estas usando analogWrite y subes desde 0 a 40 con el for, entonces, eso quiere decir que solo alcanza un ciclo de trabajo de aproximadamente el 16%, y esto no sea suficiente para que el motor gire, ademas que pones medio segundo de retardo entre cada aumento, esto quiere decir que va a tardar 20 segundos en alcanzar ese 16%.

Te pregunto: ¿porque no usas digitalWrite esperas el tiempo que lo necesitas encendido y luego lo apagas?
Ahora que si es obligatorio que el motor suba las RPM gradualmente, entonces sube el valor del 40 por uno mas alto en el for y veras que el motor comienza a girar.