RECURSO .- La shell DF Motor Drive

Aquí te presentamos un programa con el que puedes controlar dos motores usando la shell

DF Motor Drive.

Carga el programa en la placa Arduino y conecta los motores de un carrito robótico a los terminales de la shell.

Posteriormente, genera una biblioteca con estas funciones que te permita usarlas en cualquier otro programa.


 

int pinDireccionMotor1 = 7;
int pinDireccionMotor2 = 4;
int pinVelocidadMotor1 = 6;
int pinVelocidadMotor2 = 5;

void setup()
{
  pinMode(pinDireccionMotor1, OUTPUT);
  pinMode(pinDireccionMotor2, OUTPUT);
  pinMode(pinVelocidadMotor1, OUTPUT);
  pinMode(pinVelocidadMotor2, OUTPUT);

}

void avanzar(int velocidad)
{
  digitalWrite(pinDireccionMotor1, HIGH);
  digitalWrite(pinDireccionMotor2, HIGH);
  analogWrite(pinVelocidadMotor1, velocidad);
  analogWrite(pinVelocidadMotor2, velocidad);
  delay(10);
}

void retroceder(int velocidad)
{
  digitalWrite(pinDireccionMotor1, LOW);
  digitalWrite(pinDireccionMotor2, LOW);
  analogWrite(pinVelocidadMotor1, velocidad);
  analogWrite(pinVelocidadMotor2, velocidad);
  delay(10);
}

void girar_izq(int velocidad)
{
  digitalWrite(pinDireccionMotor1, HIGH);
  digitalWrite(pinDireccionMotor2, LOW);
  analogWrite(pinVelocidadMotor1, velocidad);
  analogWrite(pinVelocidadMotor2, velocidad);
  delay(10);
}

void girar_dcha(int velocidad)
{
  digitalWrite(pinDireccionMotor1, LOW);
  digitalWrite(pinDireccionMotor2, HIGH);
  analogWrite(pinVelocidadMotor1, velocidad);
  analogWrite(pinVelocidadMotor2, velocidad);
  delay(10);
}

void parar ()
{
  digitalWrite(pinDireccionMotor1, HIGH);
  digitalWrite(pinDireccionMotor2, HIGH);
  analogWrite(pinVelocidadMotor1, 0);
  analogWrite(pinVelocidadMotor2, 0);
  delay(10);
}

void loop ()
{
  avanzar(128);
  delay(1000);
  parar ();
  delay(1000);
}