botón-relevador-tiempo

Mucho les agradezco su ayuda. Soy nuevo en esto y avance en el código que activa un relevador por medio de un botón y este permanece encendido por un periodo de tiempo. Ahora quiero agregar 10 botones con sus 10 relevadores y con tiempos individuales a cada relevador. Actualmente lo trabajo en un MEGA. Que me aconsejan cambiar y/o agregar? Saludos.

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);

int pinButton = 52;
int Relay = 53;
int stateRelay = HIGH;
int stateButton;
int previus = LOW;
long time = 0;
long debounce = 500;
int stayON = 4000;

void setup(){
  pinMode(pinButton, INPUT);
  pinMode(Relay, OUTPUT);
  lcd.init();
 lcd.backlight();
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("   SELECCIONE");
  lcd.setCursor(0,1);
  lcd.print("  SU PRODUCTO");
      digitalWrite(Relay, HIGH);
}

void loop()

{
  
  {stateButton = digitalRead(pinButton);}
   if(stateButton == HIGH && previus == LOW && millis() - time > debounce) {
    if(stateRelay == LOW){
     
      digitalWrite(Relay, HIGH);
       
    } else { 
      digitalWrite(Relay, LOW);
      lcd.clear();
        lcd.setCursor(0,0);
  lcd.print("   SIRVIENDO");
 
    delay(stayON);
    digitalWrite(Relay, HIGH);
     lcd.clear();
        lcd.setCursor(0,0);
  lcd.print("   GRACIAS");
   delay (4000);
 lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("   SELECCIONE");
  lcd.setCursor(0,1);
  lcd.print("  SU PRODUCTO");
      digitalWrite(Relay, HIGH);
    }
    time = millis();
}
previus == stateButton;
}

Has abierto dos post con el mismo tema. Solo que en uno has editado bien y en el otro no. Así que en este que está bien editado te respondo.

Cambiar: delay por millis.

Pasa por la sección de documentación y leete los tutoriales Como NO leer un botón y como SI debemos hacerlo. y Entender millis y no morir en el intento

Creo que en ellos encontraras la solución a tu problema.

Moderador:
Un doble posteo es una de las peores faltas en este foro.
La razón es que alguien que te responda en tu otro hilo se tomará el tiempo de darte una buena respuesta sin saber lo que se ha escrito en el otro sitio. Lo que consituye una perdida de tiempo para ambos foreros.
Por respeto a ellos es que te pido que no lo vuelvas a hacer y que leas las normas.
El otro hilo ha sido borrado.

Normas del foro

Correcto, Mil disculpas no lo edite bien y no encontré como borrar por eso emití el otro post, saludos.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.