Saludos de nuevo,
en primer lugar gracias por vuestro apoyo, indicaciones y felicitaciones aunque esto último no creo que sea para tanto porque creo que voy dando palos de ciego a pesar de ir aprehendiendo tantas pequeñas cosas con la programación (que sigue siendo mi archienemigo).
Dicho esto os cuento.
Ayer estuve trabajando con un código básico para comprender a controlar los motores con el driver.
void setup() {
for(int j=4;j<=9;j++){ //declarar Pines del 4 al 9
pinMode(j,OUTPUT); // declarar pines anteriores como SALIDA
}
// Los pines 4,7,8, y 9 empienzan en LOW //RECUERDA LOW = 0, HIGH = 1
digitalWrite(4,0);
digitalWrite(7,0);
digitalWrite(8,0);
digitalWrite(9,0);
Serial.begin(9600);
}
void loop() {
digitalWrite(7,0);
digitalWrite(4,0);
digitalWrite(8,0);
digitalWrite(9,1);
analogWrite(5, 100); //motor 1 // Manejarme entre valores del 50 al 255
analogWrite(6, 80); //motor 2 // Manejarme entre valores del 50 al 255
}
No logré hacerlo funcionar porque creo que el driver que usé estaba mal, tras la frustración, menos mal que hoy se me ocurrió usar el otro driver (ya que compré dos) y este ya me ha funcionado.
Ahora puedo enumerar las cosas que voy teniendo claras:
1- Ya entiendo qué pines se asocian a cada motor y cómo elegir dirección de giro y velocidad.
2- He testado los valores mínimos de los pines pwm para controlar la velocidad y en mi caso, no creo que funcione con valores menores a 50 (de 255) ya que con valores inferiores a 50 el motor a veces ni se mueve.
3- He detectado que a valores bajos de pwm, el chip se calienta demasiado e incluso se ha parado el funcionamiento por la temperatura alcanzada. Por lo tanto, @tauro0221, le pondremos los disipadores en cuanto me lleguen.
Ahora, respondo a @surbyte sobre el código para probar la Rampa que me has pasado en el post anterior (#49). No saco mucho en claro al intentar entender el código, es casi como si estuviese leyendo chino, pero seguiré descifrándolo. Entiendo que maneja dos motores y como en mi caso tengo uno solo, ando cambiándolo de las salidas del driver para hacerme una idea de la relación entre programación y movimiento del motor. (Intentaré conseguir otro motor para verlo de forma más inmediata)
Si lo conecto como motor2 (ver video adjunto), tiene una aceleración muy elegante (permitirme este adjetivo). Prueba Rampa @surbyte Aunque la parada podría ser igual de "pausada" como el inicio porque aparentemente frena de forma más "brusca".
Como motor1, no adjunto video, pero es un movimiento más constante.
También hay algo que no sé bien porqué sucede, si os fijáis al final del video que he adjuntado antes, cuando el motor se detiene al final, uno de los leds se queda "medio encendido" y no sé a qué se debe. Quizás no sea influyente, pero desde mi desconocimiento, creo que no debería de ser así. ¿Debo preocuparme?
Bueno, pues voy a seguir intentando comprender el código. (Por cierto, una ultima consulta, a pesar de usar el driver seguiré necesitando contar las vueltas del motor ¿no?)
Un saludo a todos, muchas gracias y disculparme si esto se está extendiendo tanto.