No me funciona los mismos códigos que utilizaba con una placa Arduino UNO para controlar los motores de mi robot.
Al conectar la placa de controlador de motores(AF_DCMotor) con la Arduino Mega 2560 me han dejado de funcionar los mismos códigos que utilizaba con la placa Arduino UNO.
Los sube a la placa Mega sin problemas, pero luego no responden, no hace nada, sea un código sencillo para que mueva directamente los motores o intentando controlarlos por Port Serie enviando comandos.
Hay solo dos cosas que he cambiado al pasar de una placa a la otra y es poner en 'Board' la placa que toca es decir Arduino Mega 2560 y he tenido que cambiar tambien el puerto de COM3(que utilizaba con Arduino UNO) a COM6 ya que con COM3 ni siquiera me carga el programa.
Podeis echarme una mano?
Este es el código:
#include <AFMotor.h>
int input;
void setup(){
Serial.begin(9600);
}
void loop() {
AF_DCMotor motor4(4, MOTOR34_64KHZ); // define el motor en el puerto 4 a 64KHz
AF_DCMotor motor3(3, MOTOR34_64KHZ); // define el motor en el puerto 3 a 64KHz
AF_DCMotor motor2(2, MOTOR12_64KHZ); // define el motor en el puerto 2 a 64KHz
AF_DCMotor motor1(1, MOTOR12_64KHZ); // define el motor en el puerto 1 a 64KHz
input=Serial.read();
int pindigital = 2;
pinMode(pindigital, OUTPUT);
if (input=='1'){
digitalWrite(pindigital, LOW); // activaremos el relé en posición motor 1
delay(500);
motor1.setSpeed(255); // define la velocidad del motor (max.255)
motor1.run(FORWARD);
delay(500); // hace un forward durante medio segundo
}
if (input=='2'){
motor2.setSpeed(255); // define la velocidad del motor (max.255)
motor2.run(FORWARD);
delay(500); // hace un forward durante medio segundo
}
if (input=='3'){
motor3.setSpeed(255); // define la velocidad del motor (max.255)
motor3.run(FORWARD);
delay(500); // hace un forward durante medio segundo
}
if (input=='4'){
motor4.setSpeed(255); // define la velocidad del motor (max.255)
motor4.run(FORWARD);
delay(500); // hace un forward durante medio segundo
}
if (input=='5'){
digitalWrite(pindigital, HIGH); // activaremos el relé en posición motor 5
delay(500);
motor1.setSpeed(255); // define la velocidad del motor (max.255)
motor1.run(FORWARD);
delay(500); // hace un forward durante medio segundo
}
if (input=='6'){
digitalWrite(pindigital, LOW); // activaremos el relé en posición motor 1
delay(500);
motor1.setSpeed(255); // define la velocidad del motor (max.255)
motor1.run(BACKWARD);
delay(500); // hace un backward durante medio segundo
}
if (input=='7'){
motor2.setSpeed(255); // define la velocidad del motor (max.255)
motor2.run(BACKWARD);
delay(500); // hace un backward durante medio segundo
}
if (input=='8'){
motor3.setSpeed(255); // define la velocidad del motor (max.255)
motor3.run(BACKWARD);
delay(500); // hace un backward durante medio segundo
}
if (input=='9'){
motor4.setSpeed(255); // define la velocidad del motor (max.255)
motor4.run(BACKWARD);
delay(500); // hace un backward durante medio segundo
}
if (input=='0'){
digitalWrite(pindigital, HIGH); // activaremos el relé en posición motor 5
delay(500);
motor1.setSpeed(255); // define la velocidad del motor (max.255)
motor1.run(BACKWARD);
delay(500); // hace un forward durante medio segundo
}
}