Arduino Nano - Interruptor DIP

Los interruptores DIP (Dual In-Line Package) se utilizan con frecuencia en electrónica para tareas de configuración, como direcciones de dispositivos, configuraciones de comunicación, códigos de seguridad y modo de operación... Este tutorial profundizará en cómo usar el interruptor DIP con Arduino Nano. Específicamente, cubriremos:

Arduino Nano con interruptor DIP

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables ATMEGA328P Nano Development Board
1×Cable USB A a Mini-B
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

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 se utilizan principalmente para configurar dispositivos, y permiten a los usuarios establecer parámetros como direcciones de dispositivo, configuraciones de comunicación, códigos de seguridad, modos de operación y preferencias del sistema en diversas industrias y aplicaciones.

Un interruptor DIP está formado por varios pequeños interruptores deslizantes agrupados, y cada interruptor deslizante se denomina «posición». Los interruptores DIP están disponibles en varios tipos, determinados por el número de posiciones que poseen. Por ejemplo, existen interruptores DIP de 2 posiciones, de 4 posiciones, de 5 posiciones, de 6 posiciones, de 8 posiciones y de 10 posiciones.

Cada posición en un interruptor DIP representa un bit configurable de un número. Al alternar las posiciones entre encendido y apagado, podemos 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 las posiciones disponibles del interruptor. Por ejemplo, un interruptor DIP de 4 posiciones incluye un total de 8 pines, distribuidos de forma uniforme con 4 pines en cada lado. En el montaje del interruptor DIP, cada conjunto de pines opuestos forma un interruptor deslizante. Es importante señalar que no es necesario diferenciar entre los pines de los dos lados, ya que pueden intercambiarse.

Cómo funciona

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

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

En resumen:

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

Cuando conectamos un lado de un interruptor a GND y el otro lado a un pin del Arduino Nano, y luego configuramos ese pin 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 Nano.

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

En las próximas partes, usaremos un interruptor DIP de 4 posiciones como ejemplo. También 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

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

Código de Arduino Nano - 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 para Arduino Nano - Lectura del estado de encendido/apagado del interruptor DIP

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the Arduino Nano pins connected to the dip switch const int SWITCH_PINS[] = { 4, 5, 6, 7 }; 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 se muestra en el diagrama de cableado anterior.
  • Conecta Arduino Nano al PC mediante un cable USB.
  • Abre el IDE de Arduino.
  • Selecciona la placa y el puerto correctos.
  • Haz clic en el botón Cargar del IDE de Arduino para cargar el código en el Arduino Nano.
  • Coloca 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 Nano - Codificación de los estados del interruptor DIP en un número

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

  • Cargue el código anterior en Arduino Nano
  • Encienda cada posición del interruptor DIP una por una
  • Vea el resultado en el Monitor Serial, 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 siguiente muestra la correspondencia entre las posiciones 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!