Arduino Nano ESP32 - interruptor DIP

En electrónica, los interruptores DIP (paquete en línea doble) se utilizan ampliamente para tareas de configuración, como direcciones de dispositivos, configuraciones de comunicación y códigos de seguridad. Este tutorial explorará cómo usar el interruptor DIP con Arduino Nano ESP32. Específicamente, cubriremos:

Arduino Nano ESP32 con interruptor DIP

Hardware Requerido

1×Arduino Nano ESP32
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 Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano ESP32

Or you can buy the following kits:

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 herramientas esenciales para configurar dispositivos, permitiendo a los usuarios ajustar parámetros como la dirección del dispositivo, la configuración de comunicación, los códigos de seguridad, los modos operativos y las preferencias del sistema en diversas industrias y aplicaciones.

Un interruptor DIP está compuesto por varios interruptores deslizantes pequeños agrupados, y a cada interruptor se le llama una 'posición'. Estos interruptores están disponibles en diferentes tipos según el número de posiciones que ofrecen. Por ejemplo, existen interruptores DIP de 2, 4, 5, 6, 8 y 10 posiciones.

Cada posición de un interruptor DIP representa un bit configurable de un número. Al alternar estas posiciones entre ENCENDIDO y APAGADO, los usuarios pueden establecer el valor numérico deseado.

Diagrama de pines

Disposición de pines del interruptor DIP
image source: diyables.io

Un interruptor DIP está formado por dos filas de pines, donde el número de pines en cada fila coincide con el número de posiciones disponibles del interruptor. Por ejemplo, un interruptor DIP de 4 posiciones tiene un total de 8 pines, distribuidos uniformemente con 4 pines en cada lado. Dentro de la configuración del interruptor DIP, cada par de pines opuestos representa un interruptor deslizante. Es importante señalar que no es necesario diferenciar entre los pines de los dos lados, ya que pueden usarse indistintamente.

Cómo funciona

En los interruptores DIP, cuando un interruptor está en la posición ON, indica que el interruptor está accionado o cerrado. Esto implica que existe una conexión eléctrica establecida, permitiendo el flujo de corriente a través del interruptor.

Por el contrario, cuando un interruptor está en la posición de apagado, significa que el interruptor está desconectado o abierto. En este estado, la conexión eléctrica queda interrumpida, impidiendo el flujo de corriente a través del interruptor.

Para aclarar:

  • Posición ON: Establece un circuito cerrado, permitiendo que la corriente pase.
  • Posición OFF: Crea un circuito abierto, bloqueando el flujo de corriente.

Cuando un lado de un interruptor está conectado a tierra (GND) y el otro lado a un pin del Arduino Nano ESP32, y el pin del Arduino Nano ESP32 está configurado como una entrada digital con pull-up, la tabla que se muestra a continuación ilustra la relación entre la posición del interruptor y los valores leídos por el Arduino Nano ESP32:

DIP switch position Binary representation Circuit state Arduino Nano ESP32 pin state
ON 1 CLOSED LOW
OFF 0 OPEN HIGH

En las próximas partes, usaremos, como ejemplo, un interruptor DIP de 4 posiciones. Puedes adaptarlo fácilmente a interruptores DIP de 2, 3, 5, 6, 8 y 10 posiciones.

Diagrama de Cableado

Diagrama de cableado del interruptor DIP para Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Código de Arduino Nano ESP32 - Interruptor DIP

Aprenderemos a través de dos fragmentos de código:

  • Lectura del estado encendido/apagado de cada posición individual en el interruptor DIP.
  • Codificación de las posiciones en un número.

Código de Arduino Nano ESP32 - Lectura del estado ON/OFF del interruptor DIP

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the Arduino Nano ESP32 pins connected to the dip switch const int SWITCH_PINS[] = { D4, D5, D6, D7 }; 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

Para empezar con Arduino Nano ESP32, siga estos pasos:

  • Si eres nuevo en Arduino Nano ESP32, consulta el tutorial sobre cómo configurar el entorno para Arduino Nano ESP32 en el IDE de Arduino.
  • Conecta los componentes de acuerdo con el diagrama proporcionado.
  • Conecta la placa Arduino Nano ESP32 a tu computadora usando un cable USB.
  • Abre el IDE de Arduino en tu computadora.
  • Selecciona la placa Arduino Nano ESP32 y su puerto COM correspondiente.
  • Realiza el cableado como en el diagrama de cableado anterior.
  • Conecta la placa Arduino Nano ESP32 a la computadora mediante un cable USB.
  • Abre el IDE de Arduino.
  • Selecciona la placa y el puerto correctos.
  • Haz clic en el botón Subir en el IDE de Arduino para subir el código a la placa Arduino Nano ESP32.
  • Coloca cada posición del DIP Switch en ON, una por una.
  • Mira 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 de Arduino Nano ESP32 - Codificación de los estados del interruptor DIP en un número

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the Arduino Nano ESP32 pins connected to the dip switch const int SWITCH_PINS[] = { D4, D5, D6, D7 }; 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

Para empezar con Arduino Nano ESP32, siga estos pasos:

  • Si eres nuevo en Arduino Nano ESP32, consulta el tutorial sobre cómo configurar el entorno para Arduino Nano ESP32 en el IDE de Arduino.
  • Conecta los componentes de acuerdo con el diagrama proporcionado.
  • Conecta la placa Arduino Nano ESP32 a tu computadora mediante un cable USB.
  • Inicia el IDE de Arduino en tu computadora.
  • Selecciona la placa Arduino Nano ESP32 y su puerto COM correspondiente.
  • Carga el código anterior en Arduino Nano ESP32.
  • Coloca cada posición del interruptor DIP en ON, una por una.
  • Consulta el resultado en el Monitor Serial; se muestra 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!