Ir al contenido

2.3 Entradas digitales

En esta clase vas a aprender cómo usar pulsadores con entradas digitales para controlar un LED. La idea es simple: apretás un botón para prenderlo y el otro para apagarlo. Resumen En esta lección vas a aprender a usar pulsadores con entrada…

En esta clase vas a aprender cómo usar pulsadores con entradas digitales para controlar un LED. La idea es simple: apretás un botón para prenderlo y el otro para apagarlo.

Resumen

En esta lección vas a aprender a usar pulsadores con entradas digitales para prender y apagar un LED. Al apretar un botón se va a prender el LED; al apretar el otro, el LED se va a apagar.

Componentes necesarios

(1) x Elegoo ESP32
(2) x Protoboard de 400 puntos
(1) x LED rojo de 5mm
(1) x Resistencia de 220 Ω
(2) x Pulsadores
(7) x Cables puente M-M (Macho a Macho)

Introducción a los componentes

PULSADORES:

Los interruptores son componentes realmente simples. Cuando apretás un botón o movés una palanca, conectan dos contactos para que la electricidad pueda fluir a través de ellos. Los pequeños interruptores táctiles que usamos en esta lección tienen cuatro conexiones, lo que puede resultar un poco confuso.

En realidad, solo hay dos conexiones eléctricas. Dentro del encapsulado del interruptor, los pines B y C están conectados entre sí, al igual que los pines A y D.

Esquema de conexión

Diagrama de cableado

Aunque el cuerpo de los interruptores es cuadrado, los pines sobresalen de lados opuestos. Esto significa que los pines solo van a quedar a la distancia correcta cuando se coloquen bien en la protoboard. Acordate que el LED tiene que tener el terminal negativo más corto hacia la izquierda.

Código

Podés hacer clic en el enlace de texto azul para descargar el archivo del programa en tu equipo y hacer doble clic para abrirlo una vez terminada la descarga. Fijate bien: antes de abrir el archivo, asegurate de tener instalado el entorno de desarrollo Arduino IDE y de haber completado la instalación de los componentes necesarios, como el paquete de soporte de la placa y el driver correspondiente a la placa ESP32. Si tenés dudas sobre este proceso, podés consultar el capítulo "parte 1" del documento para una guía detallada.

📥 DESCARGAR digital_inputs.ino

Cargá el sketch en tu placa ESP32. Al apretar el botón izquierdo se va a prender el LED, mientras que al apretar el botón derecho se va a apagar.

La primera parte del sketch define tres variables para los tres pines que se van a usar. El 'ledPin' es el pin de salida, 'buttonApin' se refiere al interruptor que está más arriba en la protoboard y 'buttonBpin' al otro interruptor.

int ledPin = 18;
int buttonApin = 19;
int buttonBpin = 21;

La función 'setup' define el ledPin como OUTPUT como siempre, pero ahora tenemos dos entradas con las que lidiar. En este caso, configuramos el pinMode como INPUT_PULLUP de esta manera:

void setup()
{
  pinMode(ledPin, OUTPUT);
  pinMode(buttonApin, INPUT_PULLUP);
  pinMode(buttonBpin, INPUT_PULLUP);
}

El modo de pin INPUT_PULLUP significa que el pin se va a usar como entrada, pero que si no hay nada más conectado a la entrada, se debe "tirar hacia arriba" a HIGH. En otras palabras, el valor por defecto para la entrada es HIGH, a menos que sea llevado a LOW por la acción de apretar el botón.

Por eso los interruptores están conectados a GND. Cuando se aprieta un interruptor, conecta el pin de entrada a GND, de modo que deja de estar en HIGH.

Como la entrada normalmente está en HIGH y solo pasa a LOW cuando se aprieta el botón, la lógica está un poco al revés. Vamos a manejar esto en la función 'loop'.

En la función 'loop' hay dos sentencias 'if', una para cada botón. Cada una hace un 'digitalRead' en la entrada correspondiente.

void loop()
{
  if (digitalRead(buttonApin) == LOW)
  {
    digitalWrite(ledPin, HIGH);
  }

  if (digitalRead(buttonBpin) == LOW)
  {
    digitalWrite(ledPin, LOW);
  }
}

Acordate que si el botón está apretado, la entrada correspondiente va a estar en LOW. Si el botón A está en LOW, entonces un 'digitalWrite' en el ledPin lo prende.

De la misma manera, si se aprieta el botón B, se envía un LOW al ledPin.

If{}:

La sentencia if comprueba una condición y ejecuta la instrucción o el conjunto de instrucciones siguientes si la condición es 'verdadera' (true).

Parámetros: condition: una expresión booleana (es decir, puede ser verdadera o falsa).

digitalRead():

Lee el valor de un pin digital especificado, ya sea HIGH o LOW.

Sintaxis: digitalRead(pin)

Parámetros: pin: el número de pin que querés leer.

Retorno: HIGH o LOW.

Operadores de comparación

Descripción: Compara la variable de la izquierda con el valor o variable de la derecha del operador. Devuelve true cuando los dos operandos son iguales. Tené en cuenta que podés comparar variables de diferentes tipos de datos, pero eso podría generar resultados impredecibles; por lo tanto, se recomienda comparar variables del mismo tipo de datos, incluyendo el tipo signed/unsigned.

Sintaxis: x==y; // es verdadero si x es igual a y, y es falso si x no es igual a y

Parámetros:
x: variable. Tipos de datos permitidos: int, float, double, byte, short, long.
y: variable o constante. Tipos de datos permitidos: int, float, double, byte, short, long.

Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.

Fuente: Adaptado al español desde el wiki oficial (licencia CC BY-SA). Revisión técnica por equipo Breva.
25%
Tecnología real, elegida con criterio técnico Probás, aprendés y te llevás lo correcto Showroom abierto en Rosario Impresión 3D · Electrónica · Software Desde 2012 en impresión 3D FilAr — Argentina, extruido por nosotros Probá antes de llevarte Combos pensados, no pegados No te vendemos una caja. Entendemos lo que hay adentro. Repuestos críticos en stock Soporte por WhatsApp 9-19 Bambu Lab en showroom Filamentos para tocar Arduino, ESP32 y sensores Robótica educativa para tu aula Equipamos escuelas y empresas Producción 3D con criterio PLA y PETG fabricados en Argentina Trazabilidad por lote — FilAr Perfiles calibrados para tu impresora Cursos y demos en Breva Academy Sábados con demo abierta Garantía explicada en términos humanos No desaparecemos después del checkout Asesoramiento técnico sin compromiso Retiro en el día en Rosario Envío a todo el país Factura A para empresas Catálogo curado, no inflado Si lo vendemos, lo probamos antes De RepRap a la nueva generación Más de 13 años imprimiendo Criterio técnico transversal Tres mundos, una misma cabeza Impresoras 3D en Rosario Notebooks, monitores y periféricos Domótica con ESP32 Cámaras, sensores y trazabilidad Para makers, técnicos y emprendedores Para escuelas y empresas Soluciones, no SKUs Cotización formal para B2B Plan de mantenimiento para empresas Capacitación docente incluida Combo Bambu + FilAr Combo arranque sin renegar Combo ESP32 IoT La tecnología se entiende usándola No te vendemos lo que no probamos Sabemos por qué falla un purgado Sabemos por qué un PETG burbujea Sabemos por qué una pieza no se pega No vendemos por catálogo Curaduría con criterio Showroom · Asesoramiento · Soporte Probá en vivo antes de decidir FilAr — el filamento que sabemos Hardware + software, mismo equipo Automatización, datos y producción Tecnología tangible Probada antes de venderla Soporte que responde La compra no termina en el checkout Comprá una vez. Te ayudamos siempre. Modo experiencia activado Modo showroom: encendido Real hardware. Real support. Touch it. Try it. Take it home. Build. Print. Automate. Repeat. Tres mundos. Una tienda. Tecnología para construir Tecnología para producir Tecnología para enseñar Productos seleccionados, no inflados Lo que recomendamos, lo probamos Si va a fallar, lo sabemos Soporte técnico sin guion Vení a tocar el showroom Impresoras imprimiendo en mostrador Filamentos al tacto Notebooks encendidas Electrónica armada Demos los sábados Cursos presenciales Guías técnicas gratis Repuestos para Bambu Lab Repuestos para Creality Hot-ends, boquillas y plates Sensores, motores y módulos Componentes PC y mejoras Comprá con criterio Probá con calma Aprendé con quien sabe Llevate lo correcto Hacé proyectos reales Rosario · Centro · Showroom abierto Tecnología argentina cuando se puede Tecnología importada cuando hace falta Curaduría > Catálogo Hechos > Promesas Servicio > Discurso Stack: Bambu · Creality · FilAr · Arduino · ESP32 No somos marketplace Somos gente que la usa Y la fabricamos cuando se puede Breva · Rosario Tecnología real, elegida con criterio técnico Probás, aprendés y te llevás lo correcto Showroom abierto en Rosario Impresión 3D · Electrónica · Software Desde 2012 en impresión 3D FilAr — Argentina, extruido por nosotros Probá antes de llevarte Combos pensados, no pegados No te vendemos una caja. Entendemos lo que hay adentro. Repuestos críticos en stock Soporte por WhatsApp 9-19 Bambu Lab en showroom Filamentos para tocar Arduino, ESP32 y sensores Robótica educativa para tu aula Equipamos escuelas y empresas Producción 3D con criterio PLA y PETG fabricados en Argentina Trazabilidad por lote — FilAr Perfiles calibrados para tu impresora Cursos y demos en Breva Academy Sábados con demo abierta Garantía explicada en términos humanos No desaparecemos después del checkout Asesoramiento técnico sin compromiso Retiro en el día en Rosario Envío a todo el país Factura A para empresas Catálogo curado, no inflado Si lo vendemos, lo probamos antes De RepRap a la nueva generación Más de 13 años imprimiendo Criterio técnico transversal Tres mundos, una misma cabeza Impresoras 3D en Rosario Notebooks, monitores y periféricos Domótica con ESP32 Cámaras, sensores y trazabilidad Para makers, técnicos y emprendedores Para escuelas y empresas Soluciones, no SKUs Cotización formal para B2B Plan de mantenimiento para empresas Capacitación docente incluida Combo Bambu + FilAr Combo arranque sin renegar Combo ESP32 IoT La tecnología se entiende usándola No te vendemos lo que no probamos Sabemos por qué falla un purgado Sabemos por qué un PETG burbujea Sabemos por qué una pieza no se pega No vendemos por catálogo Curaduría con criterio Showroom · Asesoramiento · Soporte Probá en vivo antes de decidir FilAr — el filamento que sabemos Hardware + software, mismo equipo Automatización, datos y producción Tecnología tangible Probada antes de venderla Soporte que responde La compra no termina en el checkout Comprá una vez. Te ayudamos siempre. Modo experiencia activado Modo showroom: encendido Real hardware. Real support. Touch it. Try it. Take it home. Build. Print. Automate. Repeat. Tres mundos. Una tienda. Tecnología para construir Tecnología para producir Tecnología para enseñar Productos seleccionados, no inflados Lo que recomendamos, lo probamos Si va a fallar, lo sabemos Soporte técnico sin guion Vení a tocar el showroom Impresoras imprimiendo en mostrador Filamentos al tacto Notebooks encendidas Electrónica armada Demos los sábados Cursos presenciales Guías técnicas gratis Repuestos para Bambu Lab Repuestos para Creality Hot-ends, boquillas y plates Sensores, motores y módulos Componentes PC y mejoras Comprá con criterio Probá con calma Aprendé con quien sabe Llevate lo correcto Hacé proyectos reales Rosario · Centro · Showroom abierto Tecnología argentina cuando se puede Tecnología importada cuando hace falta Curaduría > Catálogo Hechos > Promesas Servicio > Discurso Stack: Bambu · Creality · FilAr · Arduino · ESP32 No somos marketplace Somos gente que la usa Y la fabricamos cuando se puede Breva · Rosario