NIVEL I SECCIÓN 9

 




PARA ACCEDER AL CODIGO BASE DEL CARRO



///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Declaración de constantes enteras globales para nombrar los pines:
// 1. Así no tener que recordar sus números más adelante
// 2. Así cambiar rápido de número de pin, en caso de haber conectado mal

const int pinMotorIzqRetro = 6;
const int pinMotorIzqAvance = 5;
const int pinMotorDerRetro = 3;
const int pinMotorDerAvance = 11;
const int pinPulsador = 13;
const int pinLED = 10;

// Declaración de constantes enteras globales para poner nombre a velocidad y tiempos que se repetirán mucho más adelante:
// 1. Así, poder variar desde aquí una sola vez los valores de pruebas mientras se programa y se ajusta

const int velocidadA = 150;
const int velocidadB = 150;
const int tiempoGiro = 600;
const int tiempoLineal = 1000;

void setup() {
  // Código de configuración que se ejecuta una sola vez:
 
  // Configurar los pines como entradas o como salidas
  pinMode(pinMotorIzqRetro, OUTPUT);
  pinMode(pinMotorIzqAvance, OUTPUT);
  pinMode(pinMotorDerRetro, OUTPUT);
  pinMode(pinMotorDerAvance, OUTPUT);
  pinMode(pinLED, OUTPUT);
  delay(6000); // Tiempo para acomodar el robot en el piso
}

void loop() {
  // Código que se ejecuta de manera repetida:

  // Avance del robot durante el tiempo lineal
  // Ambos motores avanzan  
  analogWrite(pinMotorIzqAvance,velocidadB);
  analogWrite(pinMotorDerAvance,velocidadA);
  analogWrite(pinMotorIzqRetro,0);
  analogWrite(pinMotorDerRetro,0);
  delay(tiempoLineal);

  // Giro del robot a la derecha durante el tiempo de giro.
  // Motor izquierdo avanza, motor derecho retrocede
  analogWrite(pinMotorIzqAvance,velocidadB);
  analogWrite(pinMotorDerAvance,0);
  analogWrite(pinMotorIzqRetro,0);
  analogWrite(pinMotorDerRetro,0);
  delay(tiempoGiro);

  // Retroceso del robot durante el tiempo lineal
  // Ambos motores retroceden
  analogWrite(pinMotorIzqAvance,velocidadB);
  analogWrite(pinMotorDerAvance,velocidadA);
  analogWrite(pinMotorIzqRetro,0);
  analogWrite(pinMotorDerRetro,0);
  delay(tiempoLineal);

  //Giro del robot a la izquierda durante el tiempo de giro
  // Motor derecho avanza, motor izquierdo retrocede
  analogWrite(pinMotorIzqAvance,velocidadB);
  analogWrite(pinMotorDerAvance,0);
  analogWrite(pinMotorIzqRetro,0);
  analogWrite(pinMotorDerRetro,0);
  delay(tiempoGiro);

  // Retroceso del robot durante el tiempo lineal
  // Ambos motores retroceden
  analogWrite(pinMotorIzqAvance,velocidadB);
  analogWrite(pinMotorDerAvance,velocidadA);
  analogWrite(pinMotorIzqRetro,0);
  analogWrite(pinMotorDerRetro,0);
  delay(tiempoLineal);

  // Giro del robot a la derecha durante el tiempo de giro.
  // Motor izquierdo avanza, motor derecho retrocede
  analogWrite(pinMotorIzqAvance,velocidadB);
  analogWrite(pinMotorDerAvance,0);
  analogWrite(pinMotorIzqRetro,0);
  analogWrite(pinMotorDerRetro,0);
  delay(tiempoGiro);

  // Avance del robot durante el tiempo lineal
  // Ambos motores avanzan  
  analogWrite(pinMotorIzqAvance,velocidadB);
  analogWrite(pinMotorDerAvance,velocidadA);
  analogWrite(pinMotorIzqRetro,0);
  analogWrite(pinMotorDerRetro,0);
  delay(tiempoLineal);  

  //Giro del robot a la izquierda durante el tiempo de giro
  // Motor derecho avanza, motor izquierdo retrocede
  analogWrite(pinMotorIzqAvance,velocidadB);
  analogWrite(pinMotorDerAvance,0);
  analogWrite(pinMotorIzqRetro,0);
  analogWrite(pinMotorDerRetro,0);
  delay(tiempoGiro);

  // Detenimiento del robot
  // Ambos motores se quedan quietos y se enciende LED durante el tiempo lineal. Después se apaga el LED
  digitalWrite(pinLED,HIGH);
  analogWrite(pinMotorIzqAvance,0);
  analogWrite(pinMotorDerAvance,0);
  analogWrite(pinMotorIzqRetro,0);
  analogWrite(pinMotorDerRetro,0);
  delay(tiempoLineal);
  digitalWrite(pinLED,LOW);
}

Entradas populares de este blog