// Forum: https://forum.arduino.cc/t/output-dont-give-5v/1166296
// This Wokwi project: https://wokwi.com/projects/375255719014195201
// Warning: The sketch does not work.
// The code in the loop() has to be rewritten from scratch.
// Asignacion de pines
const int ledPins[] = {8, 9, 10, 11, 12};
const int relePin = 7;
//Entradas
const int psPins[] = {A0, A1, A2, A3};
const int stPin = A4;
//vandera
bool flag = false;
bool flag1 = false;
bool flag2 = false;
bool flag3 = false;
bool flag4 = false;
void setup()
{
// put your setup code here, to run once:
//configurar pines como salidas
for (int i = 0; i < 5; i++)
{
pinMode(ledPins[i], OUTPUT);
}
pinMode(relePin, OUTPUT);
for (int i = 0; i < 4; i++)
{
pinMode(psPins[i], INPUT); //not necessery
}
pinMode(stPin, INPUT);
}
void loop()
{
// EL SISTEMA DEPENDE DEL ESTADO DEL ST
// activar con un pulsador para hacer un cmabio de estado
// predeterminamos la pulsacion en el pulsador
if (digitalRead(stPin) == HIGH)
{
flag = !flag;
//ELIMINAR LOS REBOTES
delay(30);
//esperar para soltar el pulsador
while (digitalRead(stPin) == HIGH);
delay(100);
}
//algoritmmo principal
//para pulsador 1 hacer un cabio de estado
if (flag)
{
if (digitalRead(stPin) == HIGH)
{
flag1 = !flag1;
//ELIMINAR LOS REBOTES
delay(30);
//esperar para soltar el pulsador
while (digitalRead(stPin) == HIGH);
delay(100);
}
if (flag1)
{
for (int i = 0; i < 5; i++)
{
digitalWrite(ledPins[i], LOW);
}
}
else
{
for (int i = 0; i < 5; i++)
{
digitalWrite(ledPins[i], HIGH);
}
}
// pulsador dos es una secuencia predeterminamos la pulsacion en el pulsador
if (digitalRead(psPins[1]) == HIGH)
{
flag2 = !flag2;
//ELIMINAR LOS REBOTES
delay(30);
//esperar para soltar el pulsador
while (digitalRead(psPins[1]) == HIGH);
delay(30);
}
//algoritmmo principal
// se hace la secuencia de menos a mayor
if (flag2)
{
for (int i = 8; i <= 12; i++)
{
digitalWrite(i, HIGH);
delay(50);
}
for (int i = 12; i >= 8; i--)
{
digitalWrite(i, LOW);
delay(50);
}
}
else
{
for (int i = 0; i < 5; i++)
{
digitalWrite(ledPins[i], LOW);
}
}
// secuencia del tercer pulsador es predener la lampara por 10 seg
//predeterminamos la pulsacion en el pulsador
if (digitalRead(psPins[2]) == HIGH)
{
flag3 = !flag3;
//ELIMINAR LOS REBOTES
delay(30);
//esperar para soltar el pulsador
while (digitalRead(psPins[2]) == HIGH);
delay(100);
}
//algoritmmo principal
//encendemos y apagamos el rPinele
if (flag3)
{
digitalWrite(relePin, HIGH);
delay(10000);
digitalWrite(relePin, LOW);
flag3 = false;
//algoritmo principal
// predeterminamos la pulsacion en el pulsador
}
if (digitalRead(psPins[3]) == HIGH)
{
flag4 = !flag4;
//ELIMINAR LOS REBOTES
delay(100);
//esperar para soltar el pulsador
while (digitalRead(psPins[3]) == HIGH);
delay(100);
}
//algoritmmo principal
// pulsador 4 enciende y apaga la lampara
if (flag4)
{
int releState = digitalRead(relePin); // HIGH or LOW
if(releState == HIGH)
releState = LOW;
else
releState = HIGH;
digitalWrite(relePin, releState);
}
}
delay(250);
}