jueves, 26 de diciembre de 2013

Arduino - Pulsador (Pushbutton)

El pulsador es un componente que cierra un circuito cuando lo presionas. El ejemplo enciende y apaga un LED en función del estado de un botón o pulsador.

Conectamos tres cables a la Arduino. El primero va de una patilla del pulsador atravesando una resistencia pull-up (2.2 KOhms) y acabando en la salida de 5V de la Arduino. De la segunda patilla del pulsador conectamos un cable a masa (gnd). El tercer cable conecta con la patilla de la arduino (el pin 7 en nuestro ejemplo) que recibe el estado del pulsador.

Cuando el circuito está abierto (sin pulsar) no hay conexión interna entre las dos patillas del pulsador, por lo tanto el pin del ejemplo (pin 7) se encuentra conectado a 5 voltios (a traves de la resistencia pull-up) y recibe estado alto o HIGH. Cuando pulsamos el botón se conectan internamente las patillas del pulsador conectando el pin del ejemplo a masa (gnd) por lo que recibe estado bajo o LOW. (El pin del ejemplo sigue conectado a 5 voltios, pero la resistencia provoca que esté mas "cercano" a masa).

Código:
/* Lectura digital basica
 * ---------------------- 
 * Enciende y apaga un led conectado al pin digital 13
 * cuando se presiona el pulsador conectado al pin 7
 * Ilustra el concepto de Active-Low (activo en estado bajo)
 * que consiste en conectar un botón usando una resistencia
 * de pull-up (entre 1 y 10K)
 *
 * Basic Digital Read
 * ------------------
 * turns on and off a light emitting diode(LED) connected to digital  
 * pin 13, when pressing a pushbutton attached to pin 7. It illustrates the
 * concept of Active-Low, which consists in connecting buttons using a
 * 1K to 10K pull-up resistor.
 *
 * Created 1 December 2005
 * copyleft 2005 DojoDave <http://www.0j0.org>
 * http://arduino.berlios.de
 *
 */

int ledPin = 13; // seleccionamos pin para el LED
int inPin = 7;   // seleccionamos pin para el pulsador
int val = 0;     // variable para leer estado del pulsador

void setup() {
  pinMode(ledPin, OUTPUT);  // configuramos el LED como SALIDA
  pinMode(inPin, INPUT);    // configuramos el pulsador como ENTRADA
}

void loop(){
  val = digitalRead(inPin);  // leemos el estado del pulsador
  if (val == HIGH) {         // verificamos si el valor es alto (HIGH)
                             // que corresponde al boton sin pulsar
    digitalWrite(ledPin, LOW);  // Apagamos el LED
  } else {
    digitalWrite(ledPin, HIGH); // Encendemos el LED
  }
}

Personalmente ami me gusta mas de esta otro forma, que al pulsar el pulsador se encienda el led:

Código:
int ledPin = 13; // seleccionamos pin para el LED
int inPin = 7;   // seleccionamos pin para el pulsador
int val = 0;     // variable para leer estado del pulsador

void setup() {
  pinMode(ledPin, OUTPUT);  // configuramos el LED como SALIDA
  pinMode(inPin, INPUT);    // configuramos el pulsador como ENTRADA
}

void loop(){
  val = digitalRead(inPin);  // leemos el estado del pulsador
  if (val == HIGH) {         // verificamos si el valor es alto (HIGH)
                             // que corresponde al boton sin pulsar
    digitalWrite(ledPin, HIGH);  // Apagamos el LED
  } else {
    digitalWrite(ledPin, LOW); // Encendemos el LED
  }
}

Fuente:
http://arduino.cc/es/Tutorial/Pushbutton

No hay comentarios:

Publicar un comentario