¿Cómo podemos saber si la polaridad de nuestro robot está correcta?

Para eso debemos asegurarnos que cuando ejecutes este código, ambas ruedas del robot se muevan para adelante (si alguna rueda va en el sentido contrario, debes cambiar la polaridad de la rueda, desconectando el motor y conectándolo al revés).

#define PINBUZZER  10
#define PINBOTON  2



# define AIN1 8    // pin 1 de dirección del Motor Izquierdo
# define AIN2 9    // pin 2 de dirección del Motor Izquierdo
# define PWMA 5    // pin PWM del Motor Izquierdo


# define BIN1 4    // pin 1 de dirección del Motor Derecho
# define BIN2 7    // pin 2 de dirección del Motor Derecho
# define PWMB 6    // pin PWM del Motor Derecho



void setup() {
  TB6612FNG_init();
  Peripherals_init();
  pinMode(13, OUTPUT);

  Motores(0, 0);



  WaitBoton();
  delay(1000);
  digitalWrite(13, HIGH);


}

void loop() {
  Motores(40, 40);
  WaitBoton();
  delay(300);
  Motores(0, 0);
  WaitBoton();
  delay(300);
}





void TB6612FNG_init() {

  pinMode(AIN1, OUTPUT);
  pinMode(AIN2, OUTPUT);
  pinMode(PWMA, OUTPUT);
  pinMode(BIN1, OUTPUT);
  pinMode(BIN2, OUTPUT);
  pinMode(PWMB, OUTPUT);

}

void MotorIz(int value) {
  if (value >= 0) {
    // si valor positivo vamos hacia adelante

    digitalWrite(AIN1, HIGH);
    digitalWrite(AIN2, LOW);
  } else {
    // si valor negativo vamos hacia atras

    digitalWrite(AIN1, LOW);
    digitalWrite(AIN2, HIGH);
    value *= -1;
  }

  // Setea Velocidad

  analogWrite(PWMA, value);
}


void MotorDe(int value) {
  if (value >= 0) {
    // si valor positivo vamos hacia adelante

    digitalWrite(BIN1, HIGH);
    digitalWrite(BIN2, LOW);
  } else {
    // si valor negativo vamos hacia atras

    digitalWrite(BIN1, LOW);
    digitalWrite(BIN2, HIGH);
    value *= -1;
  }

  // Setea Velocidad

  analogWrite(PWMB, value);
}


void Motores(int left, int righ) {
  MotorIz(left);
  MotorDe(righ);

}

void Peripherals_init() {
  pinMode(PINBOTON, INPUT);
  pinMode(PINBUZZER, OUTPUT);
}


void WaitBoton() {   // Entra en un bucle infinito de espera.
  while (!digitalRead(PINBOTON));  // Se sale del bucle cuando se aprieta el botón
  tone(PINBUZZER, 2000, 100);      // Cuando sale del bucle, suena el buzzer
}

void beep() {
  tone(PINBUZZER, 2000, 100);
  delay(200);
}

Tags

No responses yet

Deja una respuesta