Este es el código que “tiré” para controlar desde python mi brazo robótico.
Veréis que en setup() configuro la velocidad de cada uno de los motores.
Cuando envío el código de movimiento se ejecuta lo definido en TIEMPO, por lo que para hacer que el motor se mueva durante un tiempo medido en segundos bastaría con enviar “opción” * segundos * 2.

También lo he probado sin delay y me funciona perfectamente.
Utilizadlo en clase y me contáis.
Un saludo.
Espero que os sea de utilidad.


#include <AFMotor.h>
#define VELOCIDAD 200
#define TIEMPO 500

AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);


void setup() {
  
  motor1.setSpeed(VELOCIDAD);
  motor2.setSpeed(VELOCIDAD);
  motor3.setSpeed(VELOCIDAD);
  motor4.setSpeed(VELOCIDAD);
  
  
  Serial.begin(9600);           // set up Serial library at 9600 bps
  
}

void loop() {
  char opcion; //vamos a leer lo que venga por el puerto serie
  if (Serial.available() >0){
    opcion=Serial.read();
    switch (opcion) {
        case '1':
             motor1.run(FORWARD);
             delay(TIEMPO);
             break;
        case '2':
             motor2.run(FORWARD);
             delay(TIEMPO);
             break;
        case '3':
             motor3.run(FORWARD);
             delay(TIEMPO);
             break;
        case '4':
             motor4.run(FORWARD);
             delay(TIEMPO);
             break;
        case '5':
             motor1.run(BACKWARD);
             delay(TIEMPO);
             break;     
        case '6':
             motor2.run(BACKWARD);
             delay(TIEMPO);
             break;
        case '7':
             motor3.run(BACKWARD);
             delay(TIEMPO);
             break;
        case '8':
             motor4.run(BACKWARD);
             delay(TIEMPO);
             break;     
             
             
    
     } //switch
    } //if  
    
}//loop
Anuncios