domingo, 23 de septiembre de 2012

Control de LED con un pulsador



En este tutorial vamos a aprender a controlar un diodo LED mediante la acción de un pulsador.

La idea es que, cuando actuémos sobre el pulsador, el LED se encienda o se apague, dependiendo de como hayamos escrito el programa. Nosotros, lo vamos a hacer de dos modos distintos, uno en el que el LED al accionar el pulsador, se encienda; y otro, en el que pase lo contrario, que cuando pulsemos, el LED se apague.

Lo que vamos a necesitar.

- Arduino.
- LED.
- Pulsador.
- Resistencia 200.
- Resistencia 100 K.
- Cable.
- Cable USB.

En primer lugar, cabe decir que para ambos tutoriales, el montaje es el mismo.


 Hoy, vamos a ir un poco más allá en el montaje, vamos a ver el esquema.

Aquí podemos ver de un modo más claro como queda todo conectado.

Ahora, al ver el esquema, nos puede surgir una duda, ¿para qué es la resistencia del pulsador?
Esa resistencia, es una resistencia pull-down. De momento, con saber que es para obtener un estado alto cuando accionemos el pulsador.
Si no pusieramos la resistencia, haríamos que hubiera un cortocircuito entre el pin de 5V y el pin 3.
De todas formas, en breve, explicaremos que son las resistencias pull-down y pull-up.





El código, en ambos casos es igual, pero hay que cambiar un par de parámetros para que nos funcione a la inversa.
Ahora, vamos con el que hace que el LED se encienda cuando accionamos el pulsador.

 int LED = 2; //Establecemos el pin 2 para el LED//
int puls = 3; //Establecemos el pin 3 para el pulsador//
int val;

void setup(){
  pinMode(LED, OUTPUT); //Establecemos el pin 2 como salida//
  pinMode(puls, INPUT); //Establecemos el pin 3 como entrada//
}

void loop(){
  val = digitalRead(puls); //Guardamos en la variable val el estado del pulsador//
  if(val == LOW){ //Si el pulsador esta desactivado//
    digitalWrite(LED, LOW); //El LED estara apagado//
  }
  if(val == HIGH){ //Si el pulsador esta activado//
    digitalWrite(LED, HIGH); //El LED estara encendido//
  }
}


Si nos fijamos, en las tres primeras líneas de comando, vemos algo que pone val .  Eso, es una variable.

Si lo hemos hecho todo bien, tiene que suceder algo así.

Ahora, vamos con el otro caso. En esta situación, vamos a hacer que el LED se apague cuando accionemos el pulsador.
int LED = 2; //Establecemos el pin 2 para el LED//
int puls = 3; //Establecemos el pin 3 para el pulsador//
int val;

void setup(){
  pinMode(LED, OUTPUT); //Establecemos el pin 2 como salida//
  pinMode(puls, INPUT); //Establecemos el pin 3 como entrada//
}

void loop(){
  val = digitalRead(puls); //Guardamos en la variable val el estado del pulsador//
  if(val == LOW){ //Si el pulsador esta desactivado//
    digitalWrite(LED, HIGH); //El LED estara encendido//
  }
  if(val == HIGH){ //Si el pulsador esta activado//
    digitalWrite(LED, LOW); //El LED estara apagado//
  }
}


Como podemos apreciar, hemos variado el estado en el que se encuentra el LED cuando el pulsador está accionado o cuando no lo está.




No hay comentarios:

Publicar un comentario