Ocuparé este esquema, quitaré el potenciometro y en vez de regular la potencia regularé el tiempo. El código de Arduino que ocuparé:
#include <LiquidCrystal.h>//Libreria necesaria para LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//Definiendo los pines de la LCD a utilizar
int tiempo, tiempo2, tiempo3,a,b,c;//Variables para control de tiempos
void setup() {
// initialize digital pin 13 as an output.
pinMode(6, OUTPUT);//PIN 6 salida
pinMode(7, OUTPUT);//PIN 7 salida
pinMode(8, OUTPUT);//PIN 8 salida
lcd.begin(16, 2);//Se define las dimenciones de la LCD
}
// the loop function runs over and over again forever
void loop() {
tiempo = analogRead(0);//Declarando el PIN analogo para entrada de Voltaje
tiempo = map(tiempo, 0, 1023, 0, 60);//Definiendo el rango de numeros que necesito para los tiempos max 60s
a=0;//Se define como variable contadora se iguala a 0 para el inicio
while(a<=tiempo){ //Estructura repetitiva while con condicion que si 0 es menor o igual al tiempo (0s-60s) puede correr
lcd.print(" Luminaria 1 ");//Imprime el mensaje en la LCD
lcd.setCursor(0,5);//Defino donde posicionar el numero de los segundos
lcd.print(a);//Imprime numeros de 0 a 60 con retardo de 1s cada uno en la LCD
delay(1000);//Temporizador que controla los segundos
digitalWrite(6, HIGH);//PIN 6 encendido el tiempo que el usuario ingres (0s-60s)
lcd.clear();//Borra el mensaje de la LCD
a++;//Variable contadora de Uno en Uno hasta cumplir la condicion
}
digitalWrite(6, LOW);//PIN 6 apagar luego de terminar el ciclo while
lcd.clear();
tiempo2 = analogRead(1);
tiempo2 = map(tiempo2, 0, 1023, 0, 60);
b=0;
while(b<=tiempo2){
lcd.print(" Luminaria 2 ");
lcd.setCursor(0,5);
lcd.print(b);
delay(1000);
digitalWrite(7, HIGH);
lcd.clear();
b++;
}
digitalWrite(7, LOW);
lcd.clear();
tiempo3 = analogRead(2);
tiempo3 = map(tiempo3, 0, 1023, 0, 60);
c=0;
while(c<=tiempo3){
lcd.print(" Luminaria 3");
lcd.setCursor(0,5);
lcd.print(c);
delay(1000);
digitalWrite(8, HIGH);
lcd.clear();
c++;
}
digitalWrite(8, LOW);
lcd.clear();
}