Arduino UNO R4 - Interruptor DIP

Los interruptores DIP (Dual In-line Package) se utilizan a menudo en electrónica para configurar dispositivos, como establecer direcciones o activar/desactivar funciones. En esta guía, aprenderemos a utilizar un interruptor DIP con Arduino UNO R4. Abordaremos:

Arduino UNO R4 con interruptor DIP

Acerca del interruptor DIP

Los interruptores DIP se utilizan principalmente para configurar dispositivos, permitiendo a los usuarios ajustar configuraciones como la dirección del dispositivo, las opciones de comunicación, los códigos de seguridad, el modo de operación y las preferencias del sistema para diferentes usos e industrias.

Un interruptor DIP consta de varios interruptores deslizantes pequeños integrados en una sola unidad. Cada interruptor deslizante se llama 'posición'. Existen diferentes tipos de interruptores DIP, cada uno con un número específico de posiciones, como 2, 4, 5, 6, 8 o 10.

Un interruptor DIP puede configurarse para representar diferentes números. Cada posición del interruptor se conecta a un bit del número. Al encender o apagar estas posiciones, podemos elegir el número que necesitamos.

Diagrama de pines

Pinout del interruptor DIP
image source: diyables.io

Un interruptor DIP tiene dos filas de pines. El número de pines en cada fila coincide con el número de posiciones del interruptor. Por ejemplo, en un interruptor DIP con 4 posiciones, hay 8 pines en total, con 4 pines en cada lado. Cada par de pines situados uno frente al otro forma un interruptor deslizante. Es importante señalar que no importa de qué lado esté un pin, ya que los pines son intercambiables.

Cómo funciona

Cuando un interruptor DIP está ENCENDIDO, está cerrado. Esto permite que la electricidad fluya a través del interruptor.

Cuando un interruptor está apagado, está abierto. Esto significa que la conexión eléctrica está interrumpida y ninguna corriente puede fluir a través del interruptor.

Para que quede claro:

  • Posición ON: El circuito está cerrado, la corriente puede pasar.
  • Posición OFF: El circuito está abierto, la corriente no puede pasar.

Cuando conectes un lado del interruptor a GND y el otro lado al pin del Arduino UNO R4, y configures el pin del Arduino UNO R4 como una entrada digital con pull-up, la tabla siguiente muestra la relación entre la posición del interruptor y los valores leídos por el Arduino UNO R4.

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

En las siguientes secciones, usaremos un interruptor DIP de 4 posiciones como ejemplo. También puedes ajustarlo para interruptores DIP de 2, 3, 5, 6, 8 y 10 posiciones.

Diagrama de Cableado

Diagrama de cableado del interruptor DIP para Arduino UNO R4

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Uno R4 y otros componentes.

Código Arduino UNO R4 - Interruptor DIP

Exploraremos el uso de dos ejemplos de código:

  • Comprobando si cada interruptor está ENCENDIDO o APAGADO.
  • Convirtiendo las posiciones de los interruptores en un número.

Código para Arduino UNO R4 - Lectura del estado de encendido/apagado del interruptor DIP

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

Siga estas instrucciones paso a paso:

  • Si es la primera vez que utilizas el Arduino Uno R4 WiFi/Minima, consulta el tutorial sobre configurar el entorno para Arduino Uno R4 WiFi/Minima en el IDE de Arduino.
  • Conecta los componentes de acuerdo con el diagrama proporcionado.
  • Conecta la placa Arduino Uno R4 a tu computadora usando un cable USB.
  • Abre el IDE de Arduino en tu computadora.
  • Selecciona la placa Arduino Uno R4 adecuada (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
  • Sigue el diagrama de cableado proporcionado.
  • Conecta el Arduino UNO R4 a tu computadora usando un cable USB.
  • Abre el software del IDE de Arduino.
  • Selecciona la placa y el puerto correctos.
  • Haz clic en el botón Cargar en el IDE de Arduino para enviar el código al Arduino UNO R4.
  • Enciende cada interruptor del DIP Switch, uno por uno.
  • Verifica los resultados en el Monitor serie.
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 Arduino UNO R4 - Codificación de los estados del interruptor DIP en un número

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

Siga estas instrucciones paso a paso:

  • Si es la primera vez que usas el Arduino Uno R4 WiFi/Minima, consulta el tutorial sobre configurar el entorno para Arduino Uno R4 WiFi/Minima en el IDE de Arduino.
  • Conecta los componentes de acuerdo con el diagrama proporcionado.
  • Conecta la placa Arduino Uno R4 a tu computadora mediante un cable USB.
  • Abre el IDE de Arduino en tu computadora.
  • Selecciona la placa Arduino Uno R4 adecuada (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
  • Carga el código en Arduino UNO R4.
  • Enciende cada interruptor del DIP switch uno a la vez.
  • Verifica el Monitor Serial para ver los resultados, que aparecerán como 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  

Ten en cuenta que el valor cambia según las posiciones de cada interruptor deslizante. La tabla a continuación muestra cómo las posiciones ON/OFF corresponden a los valores enteros 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!