#define motor_A1 2
#define motor_A2 3
#define motor_B1 4
#define motor_B2 5
#define motor_C 6
#define luz_A 9
#define luz_B 8
#define luz_C 7
#define sensor_C 10
#define sensor_B 11
#define sensor_A 12
#define potenciometro A0
unsigned int valorPOT, tiempo = 0;
byte rango;
void setup() {
pinMode(motor_A1, OUTPUT);
pinMode(motor_A2, OUTPUT);
pinMode(motor_B1, OUTPUT);
pinMode(motor_B2, OUTPUT);
pinMode(motor_C, OUTPUT);
pinMode(luz_A, OUTPUT);
pinMode(luz_B, OUTPUT);
pinMode(luz_C, OUTPUT);
pinMode(sensor_A, INPUT);
pinMode(sensor_B, INPUT);
pinMode(sensor_C, INPUT);
Serial.begin(9600);
Serial.println("Welcome to Car Wash");
valorPOT = analogRead(potenciometro);
delay(1000);
rango = map(valorPOT, 0, 1023, 1, 3);
Serial.println(rango);
if (rango == 1) {
tiempo = 2000;
Serial.println("Tamaño Pequeño");
} else if (rango == 2) {
tiempo = 4000;
Serial.println("Tamaño Mediano");
} else if (rango == 3) {
tiempo = 6000;
Serial.println("Tamaño Grande");
}
}
void loop() {
digitalWrite(luz_A, LOW);
digitalWrite(luz_B, LOW);
digitalWrite(luz_C, LOW);
while (digitalRead(sensor_A) == HIGH) { // LEER VALOR DEL PIN
if (digitalRead(luz_A) == LOW) { // Si el led de la estacion esta apagado inicia el ciclo de lavado
digitalWrite(motor_A1, HIGH); // ENCENDER EL PIN motor...
digitalWrite(motor_A2, HIGH);
digitalWrite(luz_A, HIGH);
Serial.println("Lavado Inicia pare");
delay(tiempo);
digitalWrite(motor_A1, LOW); // APAGAR EL PIN motor...
digitalWrite(motor_A2, LOW);
Serial.println("Lavado finalizo avance");
delay(3000);
}
}
while (digitalRead(sensor_B) == HIGH) {
if (digitalRead(luz_B) == LOW) {
digitalWrite(motor_B1, HIGH);
digitalWrite(motor_B2, HIGH);
digitalWrite(luz_B, HIGH);
Serial.println("Enjague Iniciado, Pare");
delay(tiempo);
digitalWrite(motor_B1, LOW);
digitalWrite(motor_B2, LOW);
Serial.println("Enjague Finalizado, Avance");
delay(3000);
}
}
while (digitalRead(sensor_C) == HIGH) {
if (digitalRead(luz_C) == LOW) {
digitalWrite(motor_C, HIGH);
digitalWrite(luz_C, HIGH);
Serial.println("Inicio de Secado");
delay(tiempo);
digitalWrite(motor_C, LOW);
Serial.println("Fin de secado");
Serial.println("Lavado de Vehiculo Finalizado");
delay(3000);
}
}
}