¿Por qué usar resistencias con pulsadores e interruptores en Arduino?

¿Por qué usar resistencias con pulsadores e interruptores en Arduino?

Este tutorial explica por qué usar una resistencia con pulsadores e interruptores conectados a un Arduino es crucial para un funcionamiento fiable. Entender este concepto es fundamental para cualquier proyecto con Arduino que implique entrada por parte del usuario. Este conocimiento evita comportamientos inesperados y garantiza que tus proyectos funcionen correctamente. Aquí tienes algunas ideas de proyectos en las que este conocimiento es esencial:

  • Interruptor simple de encendido/apagado para un LED
  • Controlador de juego interactivo
  • Control remoto para electrodomésticos
  • Sistema de seguridad con activación por pulsador

Exploremos las razones para usar resistencias en estos circuitos.

Arduino wiring for Push button wihthout resistor

Hardware/Componentes

Los componentes básicos necesarios para este proyecto son mínimos: una placa Arduino, un interruptor pulsador y una resistencia (mayor de 300 ohmios). El valor de la resistencia no es crítico; valores como 1kΩ, 10kΩ o incluso 100kΩ generalmente funcionan bien (en el vídeo en 00:41).

Guía de cableado

Hay dos configuraciones principales de cableado (en el video a 00:30):

  1. Configuración 1:Conecta el pulsador entre el pin del Arduino y +5V. El otro lado del pulsador está conectado a tierra a través de una resistencia. Cuando se pulsa el botón, el pin lee HIGH; cuando se suelta, lee LOW.
  2. Configuración 2:Conecta el pulsador entre el pin de Arduino y la masa. El otro lado del pulsador está conectado a +5V a través de una resistencia. Cuando se pulsa el botón, el pin lee LOW; cuando se suelta, lee HIGH.

Arduino wriring for push button and LED
Arduino wriring for push button and LED

Un diagrama de cableado visual sería beneficioso aquí.

Explicación del código

El código de Arduino utiliza elpinMode()función para configurar el pin como entrada. La parte crucial es el uso deINPUT_PULLUP(en el vídeo en 04:06, 04:23). Esta resistencia pull-up interna elimina la necesidad de una resistencia externa en ciertas configuraciones, simplificando el cableado. EldigitalRead()La función lee el estado del pin, y un simpleif-elseLa instrucción determina si el botón está presionado (LOW) o no (HIGH) (en el video a las 08:34).


pinMode(2, INPUT_PULLUP); // Configures pin 2 as input with internal pull-up resistor
int pushButton = digitalRead(2); // Reads the state of pin 2
if (pushButton == LOW) {
  // Button is pressed
} else {
  // Button is not pressed
}

Proyecto/Demostración en vivo

El vídeo muestra ambas configuraciones de cableado y sus respectivos comportamientos. Destaca los problemas que pueden surgir cuando se omite la resistencia, como lecturas erráticas debidas al ruido y al acoplamiento capacitivo (en el vídeo en 06:18, 06:39, 07:21). La demostración muestra claramente el funcionamiento estable y fiable que se logra con la resistencia en su lugar (en el vídeo en 08:08).

Capítulos

  • [00:00] Introducción
  • [00:30] Configuraciones de cableado
  • [04:12] Explicación del código usando INPUT_PULLUP
  • [05:36] Retirar la resistencia: demostración práctica
  • [08:33] Explicación del código

Imágenes

¿Por qué deberíamos usar una resistencia con un botón pulsador en Arduino?
¿Por qué deberíamos usar una resistencia con un botón pulsador en Arduino?
¿Por qué debemos usar una resistencia con un botón pulsador en Arduino?
¿Por qué debemos usar una resistencia con un botón pulsador en Arduino?
2 pin tactile push button switch
2 pin tactile push button switch
Arduino wriring for push button and LED
Arduino wriring for push button and LED
Arduino wiring for Push button with resistor-2
Arduino wiring for Push button with resistor-2
Arduino wiring for Push button with resistor-1
Arduino wiring for Push button with resistor-1
Arduino wiring for Push button wihthout resistor
Arduino wiring for Push button wihthout resistor
132-Code example using a resistor
Idioma: C++
133-Code example using INPUT_PULLUP without a resistor
Idioma: C++
¡Copiado!

Cosas que podrías necesitar

Recursos y referencias

Aún no hay recursos.

Archivos📁

No hay archivos disponibles.