Hola que tal a todos, tengo un problema con mi código que estoy intentando hacer. El programa lo que debería hacer es: Presiono un botón, prende el led y lo apaga. Cuando suelto el botón, prende el led y lo apaga de nuevo. El problema es que lo debería hacer una vez pero a mi se me queda haciendo múltiples veces y no logro poder hacer que lo haga una vez cada vez que presiono el botón.
int entrada = 6;
int led = 13;
int entero;
void setup() {
Serial.begin(9600);
pinMode(entrada,INPUT_PULLUP);
pinMode(led, OUTPUT);
}
void loop() {
Serial.println(entero);
if(digitalRead(entrada) == HIGH){
if(entero == 1){
digitalWrite(led, LOW);
delay(500);
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
entero = 2;
}}
if(digitalRead(entrada) == LOW){
if(entero == 2){
digitalWrite(led, LOW);
delay(500);
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
entero = 1;
}}
}
intente de multiples formas pero no logro pensarlo, alguien podria darme una mano?
int entrada = 6;
int led = 13;
int entero;
void setup() {
Serial.begin(9600);
pinMode(entrada,INPUT_PULLUP);
pinMode(led, OUTPUT);
}
void loop() {
if(digitalRead(entrada) == HIGH){
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
}
else{
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
}
bool estadoActual = false, estadoUltimo, contador = false;
const byte LED = 13;
const byte boton = 6;
void setup()
{
pinMode(LED, OUTPUT); // Pin 113 como salida, para el Led.
pinMode(boton, INPUT_PULLUP); // Pin 2 como entrada.
Serial.begin(115200); // Velocidad en baudios para el puerto serie.
}
void loop()
{
estadoActual = digitalRead(boton); // Guarda el estado del pulsador.
//delay(50); // Retardo de 50 mili segundos par evitar antirebotes.
// ¿Pulsador y estadoActual y negación del estadoUltimo es verdadero?
if (digitalRead(boton) && estadoActual && !estadoUltimo)
{
contador = !contador; // Cambio el estado tipo boleano.
if (contador)
{
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
Serial.write("ON"); // Envía por el puerto ON.
}
else
{
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
Serial.write("OFF"); // Envía por el puerto OFF.
}
}
// Pasa del estadoActual a estadoUltimo.
estadoUltimo = estadoActual;
}
Este ultimo nada mas lo prende y apaga cada vez que presiono y suelto el botón.
Nose como no me puede salir, parece algo simple pero no lo puedo hacer.