Arduino - Interruptor DIP

Los interruptores DIP (Dual In-line Package) se utilizan comúnmente en electrónica para fines de configuración, como establecer direcciones de dispositivos, habilitar o deshabilitar funciones, etc. En este tutorial, vamos a aprender a usar los interruptores DIP con Arduino. En detalle, aprenderemos:

Arduino con interruptor DIP

Hardware Requerido

1×Arduino Uno R3
1×Cable USB 2.0 tipo A/B (para PC USB-A)
1×Cable USB 2.0 tipo C/B (para PC USB-C)
1×DIP Interruptor
1×Protoboard
1×Cables Puente
1×(Recomendado) Shield de Bloque de Terminales de Tornillo para Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Carcasa para Arduino Uno
1×(Recomendado) Placa Base de Prototipado y Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino 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 se utilizan principalmente para la configuración de dispositivos y permiten a los usuarios establecer parámetros como la dirección del dispositivo, la configuración de la comunicación, los códigos de seguridad, el modo de operación y las preferencias del sistema en una variedad de industrias y aplicaciones.

Un interruptor DIP está compuesto por varios pequeños interruptores deslizantes, todos empaquetados juntos. Cada uno de estos interruptores deslizantes se conoce como una "posición". Los interruptores DIP se presentan en varios tipos según la cantidad de posiciones que tienen. Por ejemplo, existen interruptores DIP de 2 posiciones, de 4 posiciones, de 5 posiciones, de 6 posiciones, de 8 posiciones y de 10 posiciones.

Un interruptor DIP puede representar un número configurable. Cada posición del interruptor corresponde a un bit del número. Al alternar las posiciones entre encendido y apagado, podemos configurar el número deseado.

Disposición de pines

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

Un interruptor DIP consta de dos filas de pines, y la cantidad de pines en cada fila corresponde al número de posiciones disponibles del interruptor. Por ejemplo, un interruptor DIP de 4 posiciones comprende un total de 8 pines, distribuidos de forma uniforme, con 4 pines en cada lado. Dentro del conjunto del interruptor DIP, cada par de pines opuestos constituye un interruptor deslizante. Cabe señalar que no es necesario distinguir entre los pines de ambos lados, ya que son intercambiables.

Cómo Funciona

En los interruptores DIP, cuando un interruptor está en la posición ON, significa que el interruptor está cerrado. Esto significa que la conexión eléctrica se establece, permitiendo que la corriente fluya a través del interruptor.

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 queda interrumpida y la corriente no puede fluir a través del interruptor.

Entonces, para aclarar:

  • Posición ON: Circuito cerrado, permitiendo que la corriente fluya.
  • Posición OFF: Circuito abierto, bloqueando el flujo de la corriente.

Cuando conectamos un lado de un interruptor a GND y el otro al pin de Arduino, y luego configuramos el pin de Arduino como entrada digital con pull-up, la tabla a continuación muestra la relación entre la posición del interruptor y los valores leídos por Arduino:

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

En las próximas partes, utilizaremos, por ejemplo, un interruptor DIP de 4 posiciones. También se pueden adaptar fácilmente a interruptores DIP de 2, 3, 5, 6, 8 y 10 posiciones.

Diagrama de Cableado

Diagrama de cableado del interruptor DIP de Arduino

This image is created using Fritzing. Click to enlarge image

Código de Arduino - Interruptor DIP

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

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

Código de Arduino - Lectura del estado ENCENDIDO/APAGADO del interruptor DIP

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-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

  • Realiza el cableado tal como en el diagrama de cableado anterior.
  • Conecta el Arduino a la PC 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 al Arduino.
  • Activa cada posición del DIP Switch en ON, una por una.
  • Consulta 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 - Codificación de los estados del interruptor DIP en un número

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-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

  • Carga el código anterior en Arduino.
  • Coloca cada posición del interruptor DIP en ON, una a la vez.
  • Mira el resultado en el Monitor Serial; se ve 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  

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!