Go Down

Topic: Problema pulsador para led con delay (Read 1 time) previous topic - next topic

alolazcano

Oct 29, 2008, 02:45 am Last Edit: Oct 29, 2008, 02:54 am by alolazcano Reason: 1
Hola, soy nuevo en esto y hace muy poco adquiri mi arduino decimila usb.
Mi duda es la suguiente: comenze a programar y hice unos cuantos programas muy basicos, pero aun no puedo con este, (que para mi gusto es bastante basico tambien):

Al presionar un pulsador el led quede encendido por 5 seg. y luego se apague hasta que apriete nevamente el pulsador en cualquier momento.

Trate de hacerlo de la siguiente forma:

int pulsador = 7;
int led = 13;
int var = 0;

void setup(){
 pinMode(led, OUTPUT);
 pinMode(pulsador, INPUT);
}

void loop(){
   var = digitalRead(pulsador);
   digitalWrite(led, var);
   delay(5000);
}

El problema es que el led empieza encendido y no hace nada =/
si pueidran ayudarme porfavor.

njcnjc

Trátelo como así:


int pulsador = 7;
int led = 13;
int estado = (-1);

unsigned long tiempo = 0L;

void setup(){
pinMode(led, OUTPUT);
pinMode(pulsador, INPUT);
}

void loop(){
  int var;
  var = digitalRead(pulsador);
  if ((estado != var) && ((millis() - tiempo) >= 5000)) {
    digitalWrite(led, var);
    estado = var;
    tiempo = millis();
  }
}


En su programa, el estado del LED no cambia excepto después de que "delay(5000)" termine. Si no se apriete el pulsado en el instante entre el otro "delay(5000)", no va a efectuar un cambio.

Go Up