Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Control de puertos de E/S en microcontroladores usando la estructura switch case, Ejercicios de Ingeniería

Ejercicios prácticos sobre el control de puertos de entrada y salida en microcontroladores utilizando la estructura switch case en arduino. se exploran funciones como map(), switch(), y serial para controlar la lectura de sensores, mapear rangos de valores y mostrar datos en el monitor serial. Los ejercicios incluyen el control de un fotorresistor y leds, proporcionando una experiencia práctica en programación de microcontroladores.

Tipo: Ejercicios

2023/2024

Subido el 26/04/2025

brigite-1
brigite-1 🇵🇪

1 documento

1 / 8

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
1
|Facultad de Ingeniería Laboratorio de Arquitectura de computadoras
Laboratorio 05
Nombre del alumno: Milagritos Brigite Jaimes Sandoval
Tema: acceso a control mediante la estructura switch case
Logro: Al término de la sesión, el estudiante diseña bloques controlando los puertos de entrada y salida
un microcontrolador, utilizando software de simulación; con precisión.
Ejercicio 1: Valores máximos y mínimos del fotorresistor
pf3
pf4
pf5
pf8

Vista previa parcial del texto

¡Descarga Control de puertos de E/S en microcontroladores usando la estructura switch case y más Ejercicios en PDF de Ingeniería solo en Docsity!

 |Facultad de Ingeniería Laboratorio de Arquitectura de computadoras

Laboratorio 05

Nombre del alumno: Milagritos Brigite Jaimes Sandoval

Tema: acceso a control mediante la estructura switch case

Logro: Al término de la sesión, el estudiante diseña bloques controlando los puertos de entrada y salida

un microcontrolador, utilizando software de simulación; con precisión.

Ejercicio 1: Valores máximos y mínimos del fotorresistor

Ejercicio 2: Nivel de luminosidad, definir 4 rangos y prender los led según el rango.

Ejercicio 3: Arme el siguiente circuito.

Cargue la siguiente programación de control mediante la estructura switch case. Implemente los siguientes requerimientos mediante la estructura switch case, copie el código modo texto y capture la pantalla. void setup () { // initialize serial communication: Serial.begin(9600); } void loop () { // read the sensor: int sensorReading = analogRead(A0); // map the sensor range to a range of four options: int range = map(sensorReading, sensorMin, sensorMax, 0, 3); // do something different depending on the range value: switch (range) { case 0: // your hand is on the sensor Serial.println("totalmente oscuro "); break; case 1: // your hand is close to the sensor Serial.println("oscuro"); break; case 2: // your hand is a few inches from the sensor Serial.println("medianamente oscuro "); break; case 3: // your hand is nowhere near the sensor Serial.println("brillante"); break; } delay(1); // delay in between reads for stability } // sensor minimum, discovered through experiment // sensor maximum, discovered through experiment const int sensorMin = 0; const int sensorMax = 600;

Marco teórico:

Investigar sobre la instrucciones:

1. Map:

La función map() incorporada en Arduino se utiliza para transformar un valor numérico de un rango

determinado a otro rango diferente de forma proporcional. Esto resulta especialmente útil cuando se

trabajan con lecturas de sensores, como un potenciómetro, y se necesita adaptar ese valor a un nuevo

intervalo, por ejemplo, para controlar la intensidad de un LED mediante PWM (de 0 a 255).

Parámetros:

 valor: El número que se desea transformar.

 desde_min, desde_max: El rango original del valor.

 hasta_min, hasta_max: El nuevo rango al que se quiere escalar el valor.

map(valor, desde_min, desde_max, hasta_min, hasta_max);

Importancia: La función map() permite adaptar lecturas analógicas para controlar dispositivos que

trabajan en rangos distintos, como motores, LEDs, servos, etc.

int lectura = analogRead(A0); // Valor entre 0 y 1023

int brillo = map(lectura, 0, 1023, 0, 255); // Se adapta para PWM

analogWrite(9, brillo); // Se usa para controlar el brillo de un LED

2. Switch:

El switch es una estructura de control condicional que permite ejecutar distintas secciones de código

según el valor de una variable. Representa una opción más ordenada frente al uso de múltiples

sentencias if-else cuando se deben comparar varios casos posibles para un mismo dato.

switch (variable) {

case valor1:

// Instrucciones

break;

case valor2:

// Instrucciones

break;

default:

// Instrucciones si no coincide

ningún caso

break;

int modo = 1;

switch (modo) {

case 0:

// Apagar LED

digitalWrite(LED_BUILTIN,

LOW);

break;

case 1:

// Encender LED

digitalWrite(LED_BUILTIN,

HIGH);

break;

default:

// Otro comportamiento

break;

3. Serial:

La clase Serial en Arduino sirve para establecer una comunicación entre la placa y otros

dispositivos, generalmente a través de un puerto USB. Esta herramienta es esencial para realizar

pruebas, visualizar datos en tiempo real y establecer conexiones con periféricos como sensores,

pantallas o módulos de comunicación como Bluetooth.

Funciones más utilizadas:

 Serial.begin(baudrate); → Inicializa la comunicación serial. El parámetro baudrate

especifica la velocidad en baudios (por ejemplo, 9600).

 Serial.print(valor); → Envía datos al monitor serial sin salto de línea.

 Serial.println(valor); → Envía datos al monitor serial con salto de línea.

 Serial.available(); → Retorna el número de bytes disponibles para leer.

 Serial.read(); → Lee un byte entrante desde el buffer serial.

Importancia: La comunicación serial es esencial para el desarrollo y prueba de programas en

Arduino, ya que permite observar el comportamiento interno del sistema sin necesidad de interfaces

gráficas adicionales.

void setup() {

Serial.begin(9600); // Inicia la comunicación a 9600 baudios

void loop() {

int sensor = analogRead(A0);

Serial.print("Valor del sensor: ");

Serial.println(sensor); // Envía el valor al monitor serial

delay(1000);