Cuando apretamos en el botón el led se prende, guarda el estado de encendido
y cuando lo volvemos apretar el botón se apaga y guarda el estado de apagado
int led = 3;
int button = 2;
int val = 0;
int old_val = 0; //si ponen old_val = 1 (comienza apagado)
int state = 0;
void setup() {
pinMode(led, OUTPUT);
pinMode(button, INPUT);
Serial.begin(9600);
}
void loop() {
val = digitalRead(button);
if ((val == HIGH) && (old_val == LOW)){
state = 1 - state;
delay(10);
}
old_val = val;
if(state == 1){
digitalWrite(led, HIGH);
}else{
digitalWrite(led, LOW);
}
}
otra forma
int led = 5;
int button = 4;
int val = 0;
int old_val = 1; //poniendo este en 1, comienza apagado
int state = 0;
boolean encendido = false;
void setup() {
pinMode(led, OUTPUT);
pinMode(button, INPUT);
Serial.begin(9600);
}
void loop() {
val = digitalRead(button);
Serial.print("val: "); Serial.println(val);
if ((val == HIGH) && (old_val == LOW)){ //cambio de estado, entonces se presiono el botón
encendido = !encendido;
delay(100);
}
old_val = val;
if(encendido){
digitalWrite(led, HIGH);
}else{
digitalWrite(led, LOW);
}
}
No hay comentarios:
Publicar un comentario