domingo, 2 de agosto de 2015

switch control led on off


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