Hola a todos.
Armagedon no aclaras si solo quieres hacer que el led encienda y apague o si tu sketch lleva mas funciones, pero entrando a ver tu codigo veo cosas que yo creo que no deberian estar ahi (al menos que haga otra cosa aparte de encender y apagar un led)
Primero: ¿ para que usas la variable entero?
segundo: ¿para que comienzas con
digitalWrite(led, LOW)
delay2(500);
si se supone que el led ya esta apagado
tercero: si vas a usar delay para encender y apagar el led ¿ porque usar la funcion delay2 ? ¿ porque no pones simplente el tiempo dentro del delay (tiempo) y listo
modifique tu codigo para que haga lo que dices aqui:
Tengo un pulsador y un led, cuando mantengo presionado el pulsador el led tiene que prender y apagar 1 vez, Y cuando suelto el pulsador el led debe prender y apagar otra vez.
Esto es solo para que te des una idea y puedas hacer los cambios que sean necesarios, como por ejemplo tratar de deshacerte de esos delays
int entrada = 6;
int led = 13;
int entero;
bool estado_entrada=true;
bool estado_ant_entrada=true;
void setup() {
Serial.begin(9600);
pinMode(entrada,INPUT_PULLUP);
pinMode(led, OUTPUT);
}
void loop() {
Serial.println(entero);
estado_entrada=digitalRead(entrada);
// Aqui cuando presionas el led enciende y apaga una sola vez
if (estado_entrada != estado_ant_entrada)
if(estado_entrada==false){
delay(500);
digitalWrite(led, LOW);
delay(500);
estado_ant_entrada=estado_entrada;
entero = 2; //No se para que usas esto...
}
//cuando sueltas el pulsador el led prende y apaga una vez
if (estado_entrada != estado_ant_entrada)
if(estado_entrada==true){
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
entero = 1;
estado_ant_entrada=estado_entrada;
}
}