Ejercicios: Microcontroladores y hardware libre
Explica qué es un microcontrolador y qué tres bloques básicos integra en un solo chip (procesador, memoria para el programa y los datos, y puertos de entrada/salida).…
Explica qué es un microcontrolador y qué tres bloques básicos integra en un solo chip (procesador, memoria para el programa y los datos, y puertos de entrada/salida). Compara su tamaño y su potencia con los de una computadora personal.
Arduino es el ejemplo más conocido de hardware libre. Explica qué significa que su hardware sea libre (los esquemas y diseños de la placa son públicos y cualquiera puede…
Arduino es el ejemplo más conocido de hardware libre. Explica qué significa que su hardware sea libre (los esquemas y diseños de la placa son públicos y cualquiera puede fabricarla o modificarla) y nombra dos ventajas que esto tiene para quien aprende electrónica.
Las entradas de la placa pueden ser digitales (solo leen dos estados: $0\ \text{V}$ o $5\ \text{V}$) o analógicas (leen un valor intermedio). Clasifica estas señales de…
Las entradas de la placa pueden ser digitales (solo leen dos estados: $0\ \text{V}$ o $5\ \text{V}$) o analógicas (leen un valor intermedio). Clasifica estas señales de entrada: (a) un pulsador, (b) un potenciómetro girado a la mitad, (c) un sensor de luz que da una tensión proporcional al brillo y (d) un final de carrera.
Las salidas digitales de la placa solo dan dos valores ($0\ \text{V}$ o $5\ \text{V}$). Explica qué puede gobernarse directamente con ese tipo de señal (un LED, un relé,…
Las salidas digitales de la placa solo dan dos valores ($0\ \text{V}$ o $5\ \text{V}$). Explica qué puede gobernarse directamente con ese tipo de señal (un LED, un relé, un zumbador) y qué limitación tiene si se quiere un brillo o una velocidad intermedios.
Explica qué es una señal PWM (modulación por anchura de pulsos): una salida que conmuta muy rápido entre $0\ \text{V}$ y $5\ \text{V}$ y, según la proporción de tiempo…
Explica qué es una señal PWM (modulación por anchura de pulsos): una salida que conmuta muy rápido entre $0\ \text{V}$ y $5\ \text{V}$ y, según la proporción de tiempo en alto, simula un valor intermedio. Pon el ejemplo de regular el brillo de un LED.
Todo programa para estas placas tiene dos partes: setup y loop. Explica qué se escribe en cada una (en setup, lo que se prepara una sola vez, como configurar los pines;…
Todo programa para estas placas tiene dos partes: setup y loop. Explica qué se escribe en cada una (en setup, lo que se prepara una sola vez, como configurar los pines; en loop, lo que se repite sin parar mientras la placa esté encendida) y por qué esa estructura encaja con una máquina de control.
Se conecta un LED a un pin de salida de la placa ($5\ \text{V}$). Explica qué componente debe intercalarse siempre (una resistencia en serie) y qué dos cosas puede dañar…
Se conecta un LED a un pin de salida de la placa ($5\ \text{V}$). Explica qué componente debe intercalarse siempre (una resistencia en serie) y qué dos cosas puede dañar su ausencia: el propio LED o el pin de la placa, que solo puede dar unos $20\ \text{mA}$.
Clasifica estos elementos como sensor (entrada) o actuador (salida) de un sistema con microcontrolador: (a) una sonda de temperatura, (b) un motor, (c) un micrófono, (d)…
Clasifica estos elementos como sensor (entrada) o actuador (salida) de un sistema con microcontrolador: (a) una sonda de temperatura, (b) un motor, (c) un micrófono, (d) una tira de LED, (e) un sensor de distancia por ultrasonidos y (f) una electroválvula de riego.
Un programa configura el pin 8 como salida en el setup y, en el loop, escribe el pin en alto, espera $1\ \text{s}$, lo escribe en bajo y espera $1\ \text{s}$. (a)…
Un programa configura el pin 8 como salida en el setup y, en el loop, escribe el pin en alto, espera $1\ \text{s}$, lo escribe en bajo y espera $1\ \text{s}$. (a) Describe qué hace un LED conectado a ese pin. (b) Calcula el periodo del parpadeo y su frecuencia en hercios. (c) Explica qué cambiarías en el programa para que parpadeara el doble de rápido.
La entrada analógica de la placa convierte una tensión entre $0\ \text{V}$ y $5\ \text{V}$ en un número entre $0$ y $1023$. Un programa enciende un aviso si la lectura…
La entrada analógica de la placa convierte una tensión entre $0\ \text{V}$ y $5\ \text{V}$ en un número entre $0$ y $1023$. Un programa enciende un aviso si la lectura supera $600$. (a) Calcula a qué tensión corresponde el umbral $600$, con $V = \frac{600}{1023} \times 5$. (b) Explica con tus palabras qué hace el programa y por qué el umbral se elige con margen respecto al valor típico en reposo.
La figura muestra el esquema de una placa microcontroladora tipo Arduino con sus grupos de pines, con un pin marcado con una interrogación, como se muestra en la figura.…
La figura muestra el esquema de una placa microcontroladora tipo Arduino con sus grupos de pines, con un pin marcado con una interrogación, como se muestra en la figura.
(a) Identifica los grupos de pines de la placa: digitales, analógicos y de alimentación. (b) El pin marcado con la interrogación está dentro de la fila digital y tiene el símbolo ~: explica qué puede hacer además de dar $0\ \text{V}$ o $5\ \text{V}$. (c) Indica a qué pin conectarías cada elemento y por qué: un pulsador, un potenciómetro y un LED de brillo regulable.
Escribe en pseudocódigo el programa completo (setup y loop) para que un LED conectado al pin 9 se encienda mientras se mantenga pulsado un botón conectado al pin 2, y se…
Escribe en pseudocódigo el programa completo (setup y loop) para que un LED conectado al pin 9 se encienda mientras se mantenga pulsado un botón conectado al pin 2, y se apague al soltarlo. Explica la configuración de cada pin en el setup (entrada o salida).
Una salida PWM de $5\ \text{V}$ trabaja con un ciclo del $25\ \%$ (un cuarto del periodo en alto). (a) Dibuja en tu cuaderno dos periodos de la señal. (b) Calcula el…
Una salida PWM de $5\ \text{V}$ trabaja con un ciclo del $25\ \%$ (un cuarto del periodo en alto). (a) Dibuja en tu cuaderno dos periodos de la señal. (b) Calcula el valor medio de la tensión que «ve» una carga lenta como un LED o un motor, $V_\text{media} = 5 \times 0.25$. (c) Explica qué valor medio daría un ciclo del $75\ \%$ y cómo se regula así el brillo o la velocidad.
Puedes hacerlo en papel y enviar una foto con tu respuesta.
La figura muestra un sistema de medida de luz con una placa microcontroladora: una LDR llega a una entrada analógica (A0) y un LED sale por un pin digital (D9). El…
La figura muestra un sistema de medida de luz con una placa microcontroladora: una LDR llega a una entrada analógica (A0) y un LED sale por un pin digital (D9). El interior de la placa está marcado con una interrogación.
- a) Explica qué contiene la caja central marcada con la interrogación, es decir, qué hace el programa que se ejecuta en la función loop entre la lectura de A0 y la salida D9.
- b) Redacta en pseudocódigo ese programa para que el LED se encienda cuando la lectura de la LDR supere un umbral.
- c) Indica qué dos componentes externos imprescindibles faltan en el dibujo para que el circuito funcione de verdad.
Un sensor de temperatura se conecta a una entrada analógica: la lectura $0$ corresponde a $0\ ^\circ\text{C}$ y la lectura $1023$, a $100\ ^\circ\text{C}$. (a) Calcula a…
Un sensor de temperatura se conecta a una entrada analógica: la lectura $0$ corresponde a $0\ ^\circ\text{C}$ y la lectura $1023$, a $100\ ^\circ\text{C}$. (a) Calcula a qué temperatura corresponde una lectura de $512$, suponiendo la relación proporcional $T = \frac{lectura}{1023} \times 100$. (b) Calcula qué lectura daría una temperatura de $35\ ^\circ\text{C}$. (c) Explica por qué esta conversión es necesaria antes de mostrar el dato a una persona usuaria.
Un programa para gobernar un LED por el pin 7 no funciona: en el loop se escribe el pin en alto y en bajo, pero el LED nunca se enciende. Revisando el setup, nadie…
Un programa para gobernar un LED por el pin 7 no funciona: en el loop se escribe el pin en alto y en bajo, pero el LED nunca se enciende. Revisando el setup, nadie configuró el pin como salida. Explica por qué ese olvido impide que funcione (por defecto los pines quedan como entradas) y reescribe el setup correcto en pseudocódigo.
Un técnico programa el control de refrigeración de un servidor con una placa microcontroladora. Diseña la lógica elemental: «si $T > 30.0\ ^\circ\text{C} \rightarrow$…
Un técnico programa el control de refrigeración de un servidor con una placa microcontroladora. Diseña la lógica elemental: «si $T > 30.0\ ^\circ\text{C} \rightarrow$ activar ventilador; en caso contrario $\rightarrow$ apagar ventilador». Al probar el prototipo en una cámara climática alrededor de los $30.0\ ^\circ\text{C}$, observa que el relé del ventilador conmuta frenéticamente varias veces por segundo, produciendo un zumbido continuo y sobrecalentando el actuador.
(a) Interpreta el origen físico y computacional de este problema, considerando el ruido inherente a la lectura analógica del sensor y la inercia térmica del sistema.
(b) Rediseña el algoritmo implementando control por histéresis con umbrales en $31.0\ ^\circ\text{C}$ (encendido) y $28.0\ ^\circ\text{C}$ (apagado). Escribe la lógica en pseudocódigo y justifica por qué es indispensable consultar el estado actual del ventilador o usar una variable de estado.
(c) La sonda de temperatura entrega una tensión analógica de $10\ \text{mV}/^\circ\text{C}$ ($0\ \text{V}$ a $0\ ^\circ\text{C}$) conectada al conversor ADC de $10\ \text{bits}$ de la placa ($V_{\text{ref}} = 5.0\ \text{V}$). Calcula el valor entero exacto ($0$ a $1023$) que leerá la función analogRead() para cada uno de los dos umbrales programados.
Un equipo de estudiantes conecta una fotorresistencia (LDR) a la entrada analógica A0 de una placa microcontroladora ($10\ \text{bits}$, rango de $0$ a $1023$) mediante…
Un equipo de estudiantes conecta una fotorresistencia (LDR) a la entrada analógica A0 de una placa microcontroladora ($10\ \text{bits}$, rango de $0$ a $1023$) mediante un divisor de tensión. Al calibrar en condiciones reales, registran una lectura digital de $120$ en oscuridad y de $870$ a máxima insolación.
(a) Deduce la función matemática de interpolación lineal que transforma cualquier lectura bruta $L$ en un porcentaje de iluminación $P \in [0, 100]\ \%$. Calcula el valor porcentual si el ADC entrega una lectura de $495$.
(b) Un estudiante implementa en el código la línea: int porcentaje = (lectura - 120) / 750 * 100;. Al abrir el monitor serie, comprueba que la variable siempre vale $0$ para cualquier nivel de luz intermedio y salta repentinamente a $100$ con sol directo. Diagnostica la causa del error en la aritmética del procesador y escribe la instrucción corregida manteniendo operaciones de números enteros.
(c) Si la resistencia de polarización del divisor se desconecta accidentalmente, la entrada A0 queda en circuito abierto captando lecturas fuera del intervalo calibrado (por ejemplo, $L = 50$). Predice qué problema generará en el cálculo del porcentaje y propón cómo proteger el código mediante funciones de acotación (clamping).
La figura muestra el esquema de un sistema de riego automático con placa microcontroladora: una sonda de humedad del suelo llega a A0 y la salida D7 gobierna la bomba a…
La figura muestra el esquema de un sistema de riego automático con placa microcontroladora: una sonda de humedad del suelo llega a A0 y la salida D7 gobierna la bomba a través de una pieza marcada con una interrogación, como se muestra en la figura.
(a) Identifica la pieza marcada con la interrogación (el elemento que permite a una salida de $5\ \text{V}$ y pocos $\text{mA}$ gobernar una bomba de $230\ \text{V}$) y explica su función. (b) Describe las entradas y salidas del sistema y el ciclo de funcionamiento completo. (c) Propón dos mejoras razonables (no regar de noche o con lluvia, aviso de depósito vacío) indicando qué sensor o condición añadiría cada una al programa.
Una estación agrometeorológica remota se alimenta con una celda Li-ion de $3.7\ \text{V}$ y una capacidad de $2400\ \text{mA}\times\text{h}$. La estación toma medidas de…
Una estación agrometeorológica remota se alimenta con una celda Li-ion de $3.7\ \text{V}$ y una capacidad de $2400\ \text{mA}\times\text{h}$. La estación toma medidas de sensores y las transmite por radio: durante esta fase activa, el circuito consume $75\ \text{mA}$ durante $4\ \text{s}$. Entre transmisiones, la placa entra en modo de suspensión profunda (deep sleep), donde el consumo conjunto de placa y regulador se reduce a $50\ \mu\text{A}$ ($0.05\ \text{mA}$). La estación debe funcionar de forma ininterrumpida un mínimo de $180\ \text{días}$ (unas $4320\ \text{h}$) sin recargar la batería.
(a) Deduce la expresión del consumo medio de corriente $I_{\text{med}}$ en función del periodo entre mediciones $T$ (en segundos). Calcula el intervalo de muestreo mínimo admisible para cumplir la autonomía exigida.
(b) Si por un error de programación el módulo de radio no se apaga durante el reposo, elevando el consumo en reposo a $3.0\ \text{mA}$, predice la nueva autonomía real manteniendo el intervalo calculado en el apartado anterior.
(c) Para alimentar el microcontrolador a $3.3\ \text{V}$ desde la batería de $3.7\ \text{V}$, un técnico propone un regulador lineal LDO y otro un convertidor conmutado reductor (buck). Justifica cuál es más recomendable en esta aplicación prestando especial atención a la corriente de reposo (quiescent current) de cada dispositivo.
Un estudiante monta un pulsador conectando un terminal a los $+5\ \text{V}$ de la placa y el otro directamente a la entrada digital D2, sin añadir más elementos. Al…
Un estudiante monta un pulsador conectando un terminal a los $+5\ \text{V}$ de la placa y el otro directamente a la entrada digital D2, sin añadir más elementos. Al monitorizar la entrada, observa que cuando pulsa el botón lee un '1' lógico estable, pero al soltarlo el pin oscila de manera caótica entre '0' y '1' ante cualquier movimiento cercano o vibración.
(a) Interpreta este fallo a partir del concepto de alta impedancia de entrada en las puertas lógicas digitales y explica qué significa físicamente que la entrada quede en estado «flotante».
(b) Dibuja o describe con detalle el circuito de una resistencia de pull-down de $10\ \text{k}\Omega$. Justifica el valor de tensión en el pin D2 tanto con el pulsador en reposo como pulsado, y calcula la corriente consumida por la resistencia en cada estado.
(c) El alumno pregunta si podría usar una resistencia de $10\ \Omega$ en vez de $10\ \text{k}\Omega$ argumentando que «derivará el ruido a tierra con más fuerza». Rebate técnicamente su propuesta calculando la potencia que disiparía dicha resistencia y los riesgos para la fuente de alimentación. Explica, además, cómo se resolvería el montaje sin componentes externos activando la opción INPUT_PULLUP del microcontrolador.
Se desea regular la velocidad de giro de un motor de corriente continua de $12\ \text{V}$ y corriente nominal de $800\ \text{mA}$ mediante una placa microcontroladora…
Se desea regular la velocidad de giro de un motor de corriente continua de $12\ \text{V}$ y corriente nominal de $800\ \text{mA}$ mediante una placa microcontroladora cuyas salidas digitales proporcionan un máximo de $5\ \text{V}$ y $20\ \text{mA}$.
(a) Un alumno propone alimentar el motor haciendo trabajar un transistor BJT en su zona lineal/activa gobernado por una tensión analógica, comportándose como una resistencia variable en serie. Si el motor opera a media potencia recibiendo $6\ \text{V}$ y consumiendo $500\ \text{mA}$, calcula la potencia que tendría que disipar el transistor en forma de calor ($P = V_{CE} \times I_C$). Compara este valor con la disipación del transistor trabajando en conmutación saturada mediante PWM ($V_{CE(\text{sat})} \approx 0.25\ \text{V}$) con un ciclo de trabajo del $50\ \%$ y justifica la superioridad energética del PWM.
(b) Explica cómo un motor de CC puede girar a velocidad suave y constante cuando se le alimenta con pulsos de onda cuadrada a $500\ \text{Hz}$ en lugar de una tensión continua pura.
(c) Al conmutar una carga inductiva como un motor con PWM, es imprescindible añadir un diodo en antiparalelo (flyback). Predice qué ocurrirá en el instante en que el transistor pasa bruscamente de saturación a corte si se omite dicho diodo, justificando tu respuesta a partir de la ley de autoinducción ($V_L = -L \frac{di}{dt}$).
Una placa microcontroladora y un autómata programable (PLC) hacen trabajos parecidos: leer entradas, ejecutar un programa y gobernar salidas. Compara ambos dispositivos…
Una placa microcontroladora y un autómata programable (PLC) hacen trabajos parecidos: leer entradas, ejecutar un programa y gobernar salidas. Compara ambos dispositivos valorando: (a) costo y tamaño; (b) robustez y condiciones de trabajo (una nave industrial frente a una maqueta); (c) facilidad de ampliación y programación; (d) un contexto donde elegirías cada uno, justificándolo.
Diseña un semáforo con pulsador para un cruce escolar con una tarjeta microcontroladora: tres LED (rojo, ámbar y verde para los autos) y un botón para peatones. (a)…
Diseña un semáforo con pulsador para un cruce escolar con una tarjeta microcontroladora: tres LED (rojo, ámbar y verde para los autos) y un botón para peatones. (a) Define los estados del sistema (verde fijo, ámbar, rojo con paso de peatones) y sus tiempos. (b) Asigna pines a cada elemento y justifica si son entradas o salidas. (c) Escribe en pseudocódigo la lógica del loop, incluyendo qué ocurre si nadie presiona el botón nunca (el semáforo permanece en verde para los autos).