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:

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:

ESP32 con interruptor DIP

Hardware Requerido

1×Módulo de Desarrollo ESP32 ESP-WROOM-32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×DIP Interruptor
1×Protoboard
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP32
1×(Recomendado) Breakout Expansion Board for ESP32
1×(Recomendado) Divisor de Alimentación para ESP32

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)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

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

Esquema de pines del interruptor DIP
image source: diyables.io

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

Diagrama de cableado del interruptor DIP para ESP32

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

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the pins connected to the dip switch const int SWITCH_PINS[] = { 26, 27, 14, 12 }; void setup() { // initialize serial communication Serial.begin(9600); // set the dip switch pins as inputs with pull-up resistors enabled for (int i = 0; i < POSITION_NUM; i++) pinMode(SWITCH_PINS[i], INPUT_PULLUP); } void loop() { // Read the state of each switch position for (int i = 0; i < POSITION_NUM; i++) { Serial.print("position "); Serial.print(i + 1); Serial.print(": "); int state = digitalRead(SWITCH_PINS[i]); if (state == ON) Serial.println("ON "); else Serial.println("OFF "); } Serial.println(); // add a delay to prevent rapid readings delay(500); }

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.
COM6
Send
position 1: OFF position 2: OFF position 3: OFF position 4: OFF position 1: ON position 2: OFF position 3: OFF position 4: OFF position 1: ON position 2: ON position 3: OFF position 4: OFF position 1: ON position 2: ON position 3: ON position 4: OFF position 1: ON position 2: ON position 3: ON position 4: ON
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Código ESP32 - Codificación de los estados del interruptor DIP en un número

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the pins connected to the dip switch const int SWITCH_PINS[] = { 26, 27, 14, 12 }; void setup() { // Initialize serial communication Serial.begin(9600); // Set the DIP switch pins as inputs with pull-up resistors enabled for (int i = 0; i < POSITION_NUM; i++) pinMode(SWITCH_PINS[i], INPUT_PULLUP); } void loop() { int encoded_state = 0; for (int i = 0; i < POSITION_NUM; i++) { int state = digitalRead(SWITCH_PINS[i]); if (state == ON) encoded_state |= 1 << (POSITION_NUM - i - 1); } Serial.print("encoded state: "); Serial.println(encoded_state); // add a delay to prevent rapid readings delay(500); }

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.
COM6
Send
encoded state: 0 encoded state: 1 encoded state: 2 encoded state: 3 encoded state: 4 encoded state: 5 encoded state: 6 encoded state: 7 encoded state: 8 encoded state: 9 encoded state: 10 encoded state: 11 encoded state: 12 encoded state: 13 encoded state: 14 encoded state: 15
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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-1Position-2Position-3Position-4Binary ValueDecimal 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.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!