



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
El documento es un informe de laboratorio que describe la implementación de un circuito basado en un microcontrolador ESP32 para sumar números binarios mediante DIP switches y visualizar el resultado en LEDs. Explica detalladamente el montaje del hardware, incluyendo la conexión del ESP32, DIP switches, LEDs, resistencias y un botón para alternar entre suma y resta. Luego, describe la configuración y carga del código en el ESP32 usando el IDE de Arduino. Además, proporciona un código en C++ que gestiona la lectura de entradas, el cálculo de la suma/resta y la representación visual en LEDs. Finalmente, muestra ejemplos de uso y pruebas con diferentes valores binarios, asegurando la correcta interpretación de los resultados en el monitor serial y los LEDs.
Tipo: Guías, Proyectos, Investigaciones
1 / 7
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
LABORATORIO INSTITUTO SUPERIOR UNIVERSITARIO CENTRAL TÉCNICO MECATRÓNICA CARRERA DE MECATRÓNICA NOMBRE DEL ESTUDIANTE: ZURITA REQUENA DOMENICA ESTEFANIA MATERIA: Sistemas digitales y microcontroladores FECHA: 24/11/
Antes de comenzar, asegúrate de contar con los siguientes elementos: ● ESP32 : Microcontrolador que ejecutará el programa. ● Protoboard : Para conectar y organizar los componentes. ● DIP Switches : Dos bancos de 4 switches para representar los números binarios. ● LEDs : Cinco LEDs (4 para bits y 1 para el acarreo). ● Resistencias : ○ 470 Ω o 330 Ω para limitar la corriente de los LEDs. ○ Pull-down en el botón, aunque el ESP32 puede usar su resistencia interna. ● Botón momentáneo : Para alternar entre los modos de suma y resta. ● Cables de conexión : Para conectar todos los componentes. ● Fuente de alimentación : El ESP32 se puede alimentar por USB.
Sigue estos pasos para armar el circuito en la protoboard: Conexión del ESP
■ Bit 3 → Pin 17 (A3). ○ DIP Switch 2 (número B): ■ Bit 0 → Pin 18 (B0). ■ Bit 1 → Pin 19 (B1). ■ Bit 2 → Pin 21 (B2). ■ Bit 3 → Pin 22 (B3). Conexión de los LEDs
Paso 1: Encender el Circuito ● Alimenta el ESP32 mediante el puerto USB conectado al ordenador o a una fuente externa. Paso 2: Configurar los Números en los DIP Switches
// Pines DIP Switch 1 para el número A #define A0 2 // Bit 0 del número A #define A1 4 // Bit 1 del número A #define A2 16 // Bit 2 del número A #define A3 17 // Bit 3 del número A // Pines DIP Switch 2 para el número B #define B0 18 // Bit 0 del número B #define B1 19 // Bit 1 del número B #define B2 21 // Bit 2 del número B #define B3 22 // Bit 3 del número B // Pines LEDs para mostrar el resultado #define S0 5 // Bit 0 del resultado #define S1 23 // Bit 1 del resultado #define S2 25 // Bit 2 del resultado #define S3 26 // Bit 3 del resultado #define CARRY 27 // LED de acarreo (carry) // Botón para cambiar entre suma y resta #define BUTTON 32 // Variables globales bool mode = true; // true = suma, false = resta bool lastButtonState = LOW; // Estado anterior del botón void setup() { // Configurar los pines de entrada para los DIP switches pinMode(A0, INPUT); pinMode(A1, INPUT); pinMode(A2, INPUT); pinMode(A3, INPUT); pinMode(B0, INPUT); pinMode(B1, INPUT); pinMode(B2, INPUT); pinMode(B3, INPUT); // Configurar los pines de salida para los LEDs pinMode(S0, OUTPUT); pinMode(S1, OUTPUT); pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT); pinMode(CARRY, OUTPUT); // Configurar el botón como entrada con resistencia pull-down pinMode(BUTTON, INPUT_PULLDOWN); // Inicializar la comunicación serial Serial .begin( 9600 ); // Iniciar en modo Suma Serial .println("Se encuentra en modo Suma"); } void loop() { // Leer los valores de los DIP switches para el número A int a0 = digitalRead(A0); int a1 = digitalRead(A1); int a2 = digitalRead(A2); int a3 = digitalRead(A3); // Leer los valores de los DIP switches para el número B int b0 = digitalRead(B0); int b1 = digitalRead(B1); int b2 = digitalRead(B2); int b3 = digitalRead(B3); // Convertir los valores binarios de A y B a enteros en decimal int A = (a3 << 3 ) | (a2 << 2 ) | (a1 << 1 ) | a0; int B = (b3 << 3 ) | (b2 << 2 ) | (b1 << 1 ) | b0; // Leer el estado actual del botón bool buttonState = digitalRead(BUTTON); // Detectar si el botón ha sido presionado para cambiar el modo if (buttonState == HIGH && lastButtonState == LOW) { mode = !mode; // Cambiar entre suma y resta if (mode) { Serial .println("Modo: Suma"); } else { Serial .println("Modo: Resta"); } delay( 300 ); // Evitar rebote del botón }