ESP32 - interruptor DIP
Los interruptores DIP (Paquete en línea doble) se utilizan comúnmente en electrónica para fines de configuración, como establecer direcciones de dispositivos, habilitar o deshabilitar funciones, etcétera. En este tutorial, vamos a aprender a usar el interruptor DIP con ESP32. En detalle, aprenderemos:
- Qué es un interruptor DIP y cómo funciona
- Cómo conectar el interruptor DIP al ESP32
- Cómo programar el ESP32 para leer el estado encendido/apagado del interruptor DIP
- Cómo programar el ESP32 para leer el número entero configurado por el interruptor DIP
Los interruptores DIP (paquete en línea doble) se emplean con frecuencia en electrónica para fines de configuración, como establecer direcciones de dispositivos, activar o desactivar funciones y más. En este tutorial, exploraremos la utilización de los interruptores DIP con ESP32. Concretamente, abordaremos los siguientes temas:
- Comprender qué es un interruptor DIP y sus principios de funcionamiento.
- Conectar el interruptor DIP al ESP32.
- Programar el ESP32 para detectar el estado de encendido/apagado del interruptor DIP.
- Programar el ESP32 para interpretar el valor entero configurado por el interruptor DIP.

Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del interruptor DIP
Los interruptores DIP son componentes fundamentales para la configuración de dispositivos, permitiendo a los usuarios ajustar parámetros como direcciones de los dispositivos, configuraciones de comunicación, códigos de seguridad, modos de operación y preferencias del sistema en una variedad de industrias y aplicaciones.
Un interruptor DIP está formado por varios interruptores deslizantes pequeños agrupados, y a cada interruptor se le llama una 'posición'. Los interruptores DIP existen en varios tipos, determinados por el número de posiciones que ofrecen. Las opciones incluyen interruptores DIP de 2, 4, 5, 6, 8 y 10 posiciones.
Cada posición de un interruptor DIP corresponde a un bit de un número configurable. Al alternar las posiciones entre encendido y apagado, los usuarios pueden establecer el valor numérico deseado. Esta flexibilidad permite una configuración precisa de los parámetros según requisitos específicos.
Disposición de pines

Un interruptor DIP está compuesto por dos filas de pines, siendo el número de pines en cada fila igual al número de posiciones disponibles del interruptor. Por ejemplo, un interruptor DIP de 4 posiciones contiene un total de 8 pines, distribuidos de forma uniforme, con 4 pines en cada lado. Dentro de la estructura del interruptor DIP, cada par de pines opuestos forma un interruptor deslizante. Es importante destacar que no es necesario distinguir entre los pines de los dos lados, ya que son intercambiables.
Cómo funciona
En los interruptores DIP, cuando un interruptor está en la posición ON, indica que el interruptor está cerrado, estableciendo una conexión eléctrica que permite que la corriente fluya a través de él.
Por el contrario, cuando un interruptor se encuentra en la posición de apagado, significa que el interruptor está abierto. En este estado, la conexión eléctrica se interrumpe, impidiendo que la corriente fluya a través del interruptor.
Para aclarar:
- Posición ON: Forma un circuito cerrado, permitiendo el flujo de corriente.
- Posición OFF: Resulta en un circuito abierto, bloqueando el flujo de corriente.
Al conectar un lado del interruptor a tierra y el otro a un pin del ESP32, y configurar el pin del ESP32 como una entrada digital con pull-up, la siguiente tabla ilustra la relación entre la posición del interruptor y los valores leídos del ESP32:
| DIP switch position | Binary representation | Circuit state | ESP32 pin state |
|---|---|---|---|
| ON | 1 | CLOSED | LOW |
| OFF | 0 | OPEN | HIGH |
En las siguientes partes, utilizaremos como ejemplo un interruptor DIP de 4 posiciones. Puedes adaptar fácilmente esto a interruptores DIP de 2, 3, 5, 6, 8 y 10 posiciones.
Diagrama de Cableado

This image is created using Fritzing. Click to enlarge image
Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.
Código ESP32 - Interruptor DIP
Aprenderemos a través de dos piezas de código:
- Lectura del estado de encendido/apagado de cada posición del interruptor DIP.
- Codificar las posiciones en un número.
Código ESP32 - Lectura del estado ENCENDIDO/APAGADO del interruptor DIP
Pasos R\u00e1pidos
- Si esta es la primera vez que usa ESP32, vea cómo configurar el entorno para ESP32 en Arduino IDE.
- Conecte el cableado como en la imagen anterior.
- Conecte la placa ESP32 a su PC mediante un cable micro USB.
- Abra el IDE de Arduino en su PC.
- Seleccione la placa ESP32 adecuada (p. ej. ESP32 Dev Module) y el puerto COM.
- Conecte el cableado como en el diagrama de cableado anterior.
- Conecte la placa ESP32 a su PC mediante un cable USB.
- Abra el IDE de Arduino.
- Seleccione la placa y el puerto correctos.
- Haga clic en el botón Upload en el IDE de Arduino para cargar el código en la ESP32.
- Active cada posición del DIP Switch en ON, una por una.
- Vea el resultado en el Monitor Serial.
Código ESP32 - Codificación de los estados del interruptor DIP en un número
Pasos R\u00e1pidos
- Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
- Realiza el cableado como en la imagen anterior.
- Conecta la placa ESP32 a tu PC mediante un cable micro USB.
- Abre el IDE de Arduino en tu PC.
- Selecciona la placa ESP32 adecuada (p. ej. ESP32 Dev Module) y el puerto COM.
- Carga el código anterior al ESP32.
- Activa cada posición del DIP switch en ON, una por una.
- Ve el resultado en el Monitor Serial; se ve como a continuación.
Tenga en cuenta que el valor depende de las posiciones de cada interruptor deslizante. La tabla a continuación muestra la correspondencia entre la posición ON/OFF y el valor entero para un interruptor DIP de 4 posiciones:
| Position-1 | Position-2 | Position-3 | Position-4 | Binary Value | Decimal Value |
|---|---|---|---|---|---|
| OFF | OFF | OFF | OFF | 0000 | 0 |
| OFF | OFF | OFF | ON | 0001 | 1 |
| OFF | OFF | ON | OFF | 0010 | 2 |
| OFF | OFF | ON | ON | 0011 | 3 |
| OFF | ON | OFF | OFF | 0100 | 4 |
| OFF | ON | OFF | ON | 0101 | 5 |
| OFF | ON | ON | OFF | 0110 | 6 |
| OFF | ON | ON | ON | 0111 | 7 |
| ON | OFF | OFF | OFF | 1000 | 8 |
| ON | OFF | OFF | ON | 1001 | 9 |
| ON | OFF | ON | OFF | 1010 | 10 |
| ON | OFF | ON | ON | 1011 | 11 |
| ON | ON | OFF | OFF | 1100 | 12 |
| ON | ON | OFF | ON | 1101 | 13 |
| ON | ON | ON | OFF | 1110 | 14 |
| ON | ON | ON | ON | 1111 | 15 |
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.