Inicio » Componentes para Arduino » Interruptores para Arduino » Cómo conectar un pulsador de membrana con Arduino

¿Qué es un pulsador de membrana?

Un pulsador de membrana es un tipo de interruptor que se activa al presionar una membrana flexible. La membrana suele estar hecha de plástico o goma y tiene dos contactos eléctricos en su interior. Cuando la membrana se presiona, los contactos se juntan y cierran el circuito, permitiendo el paso de la corriente eléctrica. Al soltar la membrana, los contactos se separan y el circuito se interrumpe, deteniendo el flujo de corriente.

Los pulsadores de membrana se utilizan en una amplia variedad de aplicaciones, como en teclados, controles remotos, equipos electrónicos y dispositivos médicos. Son una opción popular para aplicaciones en las que se requiere un interruptor compacto, duradero y fácil de limpiar.

Los pulsadores de membrana tienen una serie de ventajas sobre otros tipos de interruptores, como:

  • Son compactos y ligeros, lo que los hace ideales para dispositivos pequeños y portátiles.
  • Son duraderos y pueden soportar un uso intensivo.
  • Son fáciles de limpiar, lo que los hace ideales para aplicaciones en las que se requiere un alto nivel de higiene.

Algunos inconvenientes de los pulsadores de membrana incluyen:

  • Pueden ser más costosos que otros tipos de interruptores.
  • Pueden tener un tiempo de respuesta más lento que otros tipos de interruptores.
  • No son tan resistentes a la humedad y al polvo como otros tipos de interruptores.

En general, los pulsadores de membrana son una opción versátil y fiable para una amplia gama de aplicaciones.

Cómo conectar un pulsador de membrana con Arduino

Vamos a ver cómo conectar un pulsador de membrana con Arduino, para ello conectaremos el pulsador a un pin digital de nuestra placa Arduino y mediante el uso de la consola vamos a evaluar su comportamiento.

Materiales

Necesitamos los siguientes materiales para conectar un pulsador de membrana con Arduino:

Una placa Arduino (Yo usaré Arduino UNO)
Un pulsador de membrana
Una resistencia de 10KΩ
Cables
Un condensador de 0.1uF
Una protoboard
Un ordenador con el IDE de Arduino instalado

Conexiones

En el siguiente esquema puedes ver cómo serían los conexiones necesarias para conectar un pulsador de membrana con Arduino:

Pero antes de comentar todas las conexiones vamos a analizar un poco más en detalle el pulsador.

Puede que estés utilizando un pulsador con 2 pines, ahí no hay perdida, un pin va al Arduino con una reistencia a tierra y el otro va conectado con la alimentación. ¿Qué pasa si el pulsador tiene 4 pines como el que estoy usando yo?. Pues en realidad es lo mismo, aunque no lo parezca. Fíjate en la siguiente imagen:

Pulsador de membrada de 4 pines

Los dos pines que están señalados con una flecha roja internamente están conectados, por tanto son el mismo pin. Pasa exactamente lo mismo con los que está señalados con una flecha azul, internamente también están conectados.

Los pines “rojos” y los “azules” no están conectados entre si, a no ser que presionemos el pulsador.

Lo único que tienes que tener en cuenta, si utilizas un pulsador como este, es que los pines “rojos” estén pinchados en una línea de la protoboard y los pines “azules” en otra para evitar que hagan contacto entre si.

Fíjate en esta imagen:

El pulsador de la izquierda es igual que el que acabamos de comentar. Los pines “rojos” están conectados en la línea 9 y los “azules” en la 11.Sin embargo, el pulsador de la derecha está conectado de otra forma. Fíjate en la línea 15 de la protoboard. Los dos pines del pulsador que están conectados a esta línea no están conectados internamente y solo deberían conectarse cuando presionamos el pulsador, pero al estar conectados en la misma línea de la protoboard pasan a estar conectados de forma permanente. Ocurre lo mismo con los pines que están en la línea 18.

Aclarado esto, volvamos al esquema inicial.

Como puedes ver, he conectado los 5V del Arduino a la línea + de la protoboard. Así consigo que esa línea esté entera alimentada con 5V y será más sencillo después conectar el pulsador.

He hecho exactamente lo mismo con GND, lo he conectado a la línea – de la protoboard.

Vamos ahora con el pulsador. He conectado el pin de la derecha a los 5V con un cable rojo. Cuando presione el pulsador se conectará al pin de la izquierda y pasarán los 5V. Lo que tenemos que conseguir es que los reciba el Arduino, por eso he conectado un cable verde desde el pin de la izquierda al pin 2 digital de Arduino.

No tiene más misterio. Si presiono el pulsador pasan los 5 V y llegan a Arduino, si no lo presiono no pasan.

Falta un elemento, la resistencia. Si te fijas, tiene un extremo conectado al pin de salida del pulsador, es decir, el mismo pin del pulsador que se conecta con Arduino y el otro extremo va conectado a tierra. ¿Para qué sirve esa resistencia? Se llama resistencia de Pull Down. Sirve para dos cosas, por un lado establece un estado determinado en la entrada digital (0 cuando esté el pulsador en reposo) y, por otro lado, reduce el ruido en la entra digital del Arduino. Todo esto evitará comportamientos inesperados del circuito.

Puede parecer un poco lioso al principio, pero en cuanto conectes un par de pulsadores verás que siempre es igual.

Circuito mejorado

Para mejorar el circuito conecta un condensador de 0.1uF al pulsador tal y como se ve en la siguiente imagen. Esto ayudará a reducir los rebotes:

pulsador con resistencia y condensador Arduino

Puedes saber más sobre esto aquí: Cómo eliminar rebotes con Arduino

Sketch

Es el momento de programar el sketch con el que vamos a leer la entrada digital donde está conectado el pulsador.

El código que usaremos será este:

//declaraciones:
const int PULSADOR = 2;
int estado = LOW;

//configuración:
void setup()
{
  Serial.begin(9600);
  pinMode(PULSADOR, INPUT);
}

//función loop:
void loop()
{
  estado = digitalRead(PULSADOR);
  Serial.println(estado);
}

Declaraciones

He declarado una constante entera que he llamado PULSADOR a la que le he asignado un 2, que es el pin digital al que hemos conectado el pulsador. Lo usaremos después en la configuración.

También he declarado una variable entera que he llamado estado a la que le he asignado el valor inicial LOW. Esta variable la usaremos después para guardar el estado del pulsador cuando lo leamos a través del pin digital.

Configuración

Dentro de la función setup tenemos que configurar el puerto serie y el pin digital 2.

El puerto serie lo configuramos con Serial.begin(9600). Esto es para poder enviar al ordenador lo que leamos del pin digital y verlo en la consola del IDE. Es solo para depurar y comprobar que recibimos un 1 cuando se presiona el pulsador y 0 cuando está en reposo.

El pin digital lo configuramos con pinMode(PULSADOR, INPUT). El pin debe estar configurado como entrada porque queremos recibir la señal del pulsador, por eso usamos INPUT. En cuando a la constante PULSADOR, simplemente le indica a pinMode que debe configurar el pin 2.

Configuración completada.

Función loop

Ya solo queda la función principal del sketch.

Simplemente leemos el pin digital 2 con digitalRead(PULSADOR) y guardamos el valor devuelto en la variable estado que declaramos anteriormente con ese fin.

Como la función loop se repite indefinidamente estamos leyendo en tiempo real el valor del pin 2. Si en algún momento se presiona el pulsador entrará un pulso alto y la variable estado tomará valor 1. Mientras en pulsador permanezca en reposo el valor de la variable estado será 0.

Para comprobar que esto es así enviamos por el puerto serie el valor de la variable utilizando Serial.println(estado). Si abres el monitor serie del IDE de Arduino verás aparecer un montón de 0s consecutivos que pasarán a ser 1s si presionas el pulsador.

Videotutorial

Aquí te dejo todo el tutorial en vídeo por si te queda alguna duda:


Te avisaré cuando publique nuevo contenido en paraarduino.com y en mi canal de YouTube (@ParaArduino).

No hemos podido validar tu suscripción.
¡Se ha realizado tu suscripción!

Newsletter

Suscríbete para que te avise cuando publique nuevo contenido.

Usamos Brevo como plataforma de marketing. Al hacer clic a continuación para enviar este formulario, consiente que la información proporcionada sea transferida a Brevo para su procesamiento de acuerdo con sus términos de uso