Volver a la portadaCiencias de la Computación · 2.° año de bachillerato · Cambiar asignatura
Empezar gratis
2° bach · Ciencias de la Computación
Sistemas informáticos · Microcontroladores

Microcontroladores y hardware libre

En un cafetal de Santa Ana, un sensor de humedad avisa cuándo regar. Funciona meses con pilas, cuesta pocos dólares y cabe en la palma de la mano. Dentro hay una placa microcontroladora. ¿Qué tiene, cómo se programa y qué necesita alrededor para no quemarse? Al final de la página lo resolvemos. Existen varias placas (Arduino, micro:bit, ESP-32): acá usamos Arduino como ejemplo principal, y podés simular los circuitos en Tinkercad.

El microcontrolador y el hardware libre

Comparación entre una computadora de escritorio, grande, con pantalla, teclado, red y tomacorriente, y un microcontrolador, una placa muy pequeña con pines de entrada y salida alimentada con pilas. computadora de escritorio muchas tareas a la vez pantalla teclado y mouse tomacorriente caro, grande microcontrolador una tarea fija pines de entrada y salida entrada salida pilas barato, pequeño

Una computadora personal hace muchas cosas a la vez y consume decenas de watts. Un microcontrolador hace una sola tarea, es mucho más pequeño y menos potente, pero consume milésimas de esa energía.

Todo sistema con microcontrolador tiene sensores (entradas: miden el entorno, como una sonda de temperatura, un micrófono o un sensor de distancia) y actuadores (salidas: hacen algo, como un motor, una tira de LED o una electroválvula).

Practica★☆☆Sin empezar
Explicá 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).…

Explicá 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). Compará su tamaño y su potencia con los de una computadora personal.

Resolver
Practica★☆☆Sin empezar
Clasificá 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)…

Clasificá 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.

Resolver
Practica★☆☆Sin empezar
Arduino es el ejemplo más conocido de hardware libre. Explicá 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. Explicá 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 nombrá dos ventajas que esto tiene para quien aprende electrónica.

Resolver

Los pines de la placa

Una placa tipo Arduino Uno reúne sus pines en grupos, cada uno con una función.

Grupo Para qué sirve
Pines digitales (0 a 13) Leen o escriben solo dos estados: $0\ \text{V}$ o $5\ \text{V}$. Se configuran como entrada o como salida.
Pines digitales con ~ (3, 5, 6, 9, 10, 11) Además de lo anterior, pueden dar una señal PWM.
Pines analógicos (A0 a A5) Leen una tensión intermedia y la convierten en un número.
Pines de alimentación $5\ \text{V}$ y $3.3\ \text{V}$ entregan tensión a sensores y componentes; GND es la tierra (referencia de $0\ \text{V}$) que todo circuito comparte.
Practica★★☆Sin empezar
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.

USB microcontrolador pines digitales 0 a 13 (~ = PWM) ? entradas analógicas A0 a A5 5 V GND alimentación por USB o por conector externo (7 a 12 V)

(a) Identificá 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 ~: explicá qué puede hacer además de dar $0\ \text{V}$ o $5\ \text{V}$. (c) Indicá a qué pin conectarías cada elemento y por qué: un pulsador, un potenciómetro y un LED de brillo regulable.

Resolver

Entradas digitales, analógicas y PWM

Pensá en un pulsador: solo está presionado o suelto (digital). Un potenciómetro, en cambio, da cualquier valor entre sus extremos (analógico). Con 10 bits hay $2^{10} = 1,024$ valores posibles, de $0$ a $1023$. En Arduino se leen con digitalRead() y analogRead(), y se escriben con digitalWrite() y analogWrite() (de 0 a 255).

Una salida digital solo gobierna directamente cosas de todo o nada: un LED, un zumbador o un relé. Si querés un brillo o una velocidad intermedios, un pin digital simple no basta: ahí entra el PWM.

Practica★☆☆Sin empezar
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). Clasificá 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). Clasificá 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.

Resolver
Practica★☆☆Sin empezar
Las salidas digitales de la placa solo dan dos valores ($0\ \text{V}$ o $5\ \text{V}$). Explicá qué puede controlarse directamente con ese tipo de señal (un LED, un…

Las salidas digitales de la placa solo dan dos valores ($0\ \text{V}$ o $5\ \text{V}$). Explicá qué puede controlarse directamente con ese tipo de señal (un LED, un relé, un zumbador) y qué limitación tiene si querés un brillo o una velocidad intermedios.

Resolver
Practica★☆☆Sin empezar
Explicá qué es una señal PWM (modulación por ancho de pulso): una salida que conmuta muy rápido entre $0\ \text{V}$ y $5\ \text{V}$ y, según la proporción de tiempo en…

Explicá qué es una señal PWM (modulación por ancho de pulso): 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.

Resolver
Practica★★☆Sin empezar
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) Calculá a qué tensión corresponde el umbral $600$, con $V = \frac{600}{1023} \times 5$. (b) Explicá con tus palabras qué hace el programa y por qué el umbral se elige con margen respecto al valor típico en reposo.

Resolver
Practica★★☆Sin empezar
Una salida PWM de $5\ \text{V}$ trabaja con un ciclo del $25\ \%$ (un cuarto del periodo en alto). (a) Dibujá en tu cuaderno dos periodos de la señal. (b) Calculá el…

Una salida PWM de $5\ \text{V}$ trabaja con un ciclo del $25\ \%$ (un cuarto del periodo en alto). (a) Dibujá en tu cuaderno dos periodos de la señal. (b) Calculá 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) Explicá qué valor medio daría un ciclo del $75\ \%$ y cómo se regula así el brillo o la velocidad.

Podés hacerlo en papel y enviar una foto con tu respuesta.

Resolver
Practica★★★Sin empezar
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) Deducí 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]\ \%$. Calculá 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. Diagnosticá la causa del error en la aritmética del procesador y escribí 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$). Predecí qué problema generará en el cálculo del porcentaje y proponé cómo proteger el código mediante funciones de acotación (clamping).

Resolver

El programa: setup y loop

Estructura de un programa: setup se ejecuta una sola vez y después loop se repite sin parar, con una flecha que vuelve de su final a su principio. setup() se ejecuta una sola vez: configurar pines al arrancar loop() leer, decidir, actuar y volver a empezar se repite mientras la placa esté encendida

Esta estructura encaja con una máquina de control: un sistema de control vigila el entorno sin descanso (leer, decidir, actuar), así que necesita un ciclo que nunca termina. Esas tres acciones son secuencia, selección y repetición, las estructuras de control de cualquier algoritmo.

Periodo y frecuencia de un parpadeo

Un LED que parpadea repite un ciclo: encendido, apagado, encendido… El periodo $T$ es el tiempo de un ciclo completo, y la frecuencia $f$ es cuántos ciclos hay en cada segundo. Se miden en hercios (Hz) y son inversos: $f = \frac{1}{T}$.

Practica★☆☆Sin empezar
Todo programa para estas placas tiene dos partes: setup y loop. Explicá 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. Explicá 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.

Resolver
Practica★★☆Sin empezar
Un programa para controlar 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 controlar 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. Explicá por qué ese olvido impide que funcione (por defecto los pines quedan como entradas) y reescribí el setup correcto en pseudocódigo.

Resolver
Practica★★☆Sin empezar
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) Describí qué hace un LED conectado a ese pin. (b) Calculá el periodo del parpadeo y su frecuencia en hercios. (c) Explicá qué cambiarías en el programa para que parpadeara el doble de rápido.

Resolver
Practica★★☆Sin empezar
Escribí en pseudocódigo el programa completo (setup y loop) para que un LED conectado al pin 9 se encienda mientras se mantenga presionado un botón conectado al pin 2, y…

Escribí en pseudocódigo el programa completo (setup y loop) para que un LED conectado al pin 9 se encienda mientras se mantenga presionado un botón conectado al pin 2, y se apague al soltarlo. Explicá la configuración de cada pin en el setup (entrada o salida).

Resolver
Practica★★☆Sin empezar
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.

Esquema de bloques: una LDR conectada a la entrada A0 de una placa microcontroladora cuyo interior está marcado con una interrogación, y un LED conectado a la salida D9LDRsensor de luzA0Placa microcontroladora?D9LED
  1. a) Explicá 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.
  1. b) Redactá en pseudocódigo ese programa para que el LED se encienda cuando la lectura de la LDR supere un umbral.
  1. c) Indicá qué dos componentes externos imprescindibles faltan en el dibujo para que el circuito funcione de verdad.
Resolver

Componentes de interfaz: proteger y adaptar

Dos esquemas con una placa Arduino: a la izquierda, un pulsador entre 5 V y la entrada D2, con una resistencia pull-down de 10 kΩ a tierra; a la derecha, la salida D13 alimenta un LED a través de una resistencia en serie de 220 Ω. Entrada con pull-down Salida con resistencia Arduino D2 D13 +5 V pulsador resistencia pull-down 10 kΩ GND (0 V) suelto: pin a 0 V (lee 0) pulsado: pin a 5 V (lee 1) resistencia en serie 220 Ω I < 20 mA LED GND
Practica★☆☆Sin empezar
Se conecta un LED a un pin de salida de la placa ($5\ \text{V}$). Explicá 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}$). Explicá 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}$.

Resolver

Gobernar actuadores de potencia: relés y transistores

Un pin de la placa, a 5 V y unos 20 mA, alimenta la bobina de un relé. Este cierra el contacto de un circuito de potencia aparte que mueve una bomba: poca corriente gobierna mucha corriente. placa Arduino pin GND 5 V · 20 mA relé bobina contacto mucha corriente circuito de potencia fuente aparte bomba circuito de mando poca corriente poca corriente gobierna mucha corriente

Placa microcontroladora o PLC

En una fábrica, el trabajo equivalente lo hace un controlador lógico programable (PLC): también lee entradas, ejecuta un programa en un ciclo de escaneo y gobierna salidas, pero está construido para el ambiente industrial.

Criterio Placa microcontroladora PLC
Costo y tamaño Muy barata (desde unos \$10 a \$30) y diminuta Mucho más cara (cientos o miles de dólares) y de mayor tamaño
Robustez Frágil: pensada para maquetas, aulas y prototipos Resiste polvo, vibración, ruido eléctrico y temperaturas extremas
Salidas y entradas Pines de 5 V y pocos mA; necesita relés o transistores Entradas y salidas industriales (24 V, relés), listas para conectar
Ampliación y programación Se amplía con módulos y se programa en texto Se amplía con módulos estándar y se programa con lenguajes normalizados

Regla práctica: para un prototipo, un proyecto escolar o un producto de bajo costo, una placa; para una banda transportadora o una planta embotelladora que no puede fallar, un PLC.

Practica★★★Sin empezar
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.

sonda de humedad A0 placa microcontroladora D7 ? bomba 230 V si el suelo está seco, la placa manda regar; cuando la sonda detecta humedad suficiente, para

(a) Identificá 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 explicá su función. (b) Describí las entradas y salidas del sistema y el ciclo de funcionamiento completo. (c) Proponé 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.

Resolver

Calibración, histéresis y autonomía

Ciclo de histéresis de un ventilador: al calentarse se enciende a 30 °C y al enfriarse se apaga a 28 °C, con una banda de 2 °C entre ambos umbrales. 28 °C (apaga) 30 °C (enciende) histéresis 2 °C ventilador encendido ventilador apagado al calentarse (azul) al enfriarse (morado) temperatura
Practica★★☆Sin empezar
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) Calculá 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) Calculá a qué temperatura corresponde una lectura de $512$, suponiendo la relación proporcional $T = \frac{lectura}{1023} \times 100$. (b) Calculá qué lectura daría una temperatura de $35\ ^\circ\text{C}$. (c) Explicá por qué esta conversión es necesaria antes de mostrar el dato a una persona usuaria.

Resolver
Practica★★★Sin empezar
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) Interpretá 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ñá el algoritmo implementando control por histéresis con umbrales en $31.0\ ^\circ\text{C}$ (encendido) y $28.0\ ^\circ\text{C}$ (apagado). Escribí la lógica en pseudocódigo y justificá 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}$). Calculá el valor entero exacto ($0$ a $1023$) que leerá la función analogRead() para cada uno de los dos umbrales programados.

Resolver

Esperas que bloquean

La función delay(ms) frena el programa: mientras espera, el procesador no hace nada más, ni siquiera leer un pulsador. Si el loop tiene un delay largo, cualquier pulsación que ocurra durante la espera se pierde.

Reto: un prototipo con datos reales

Para un proyecto completo seguí las etapas del desarrollo incremental: primero el circuito en Tinkercad con un sensor de temperatura TMP36 y dos LED (verde y rojo), después un programa que lea el sensor, y por último los datos reales, como las temperaturas máximas de tu municipio que publica el MARN. La media de varios valores se calcula sumándolos y dividiendo entre la cantidad: por ejemplo, con 31, 33 y 33 °C la media es $\frac{31+33+33}{3} \approx 32.3\ ^\circ\text{C}$. Ese valor se usa como umbral: LED rojo si lo supera, verde si no.

Practica★★★Sin empezar
Un estudiante programa el semáforo con botón pulsador de un paso peatonal escolar. Escribe un código secuencial donde el verde vehicular permanece encendido mediante la…

Un estudiante programa el semáforo con botón pulsador de un paso peatonal escolar. Escribe un código secuencial donde el verde vehicular permanece encendido mediante la llamada delay(20000); después lee el pulsador peatonal con un digitalRead() y, si está pulsado, conmuta a amarillo ($3\ \text{s}$) y rojo ($10\ \text{s}$). Al instalarlo, los peatones se quejan de que aprietan el pulsador pero el semáforo parece no responder la inmensa mayoría de las veces.

(a) Interpretá la causa técnica del fallo diagnosticando qué ocurre en la CPU del microcontrolador durante la ejecución de las funciones delay() y por qué se pierden las pulsaciones.

(b) Rediseñá la arquitectura del programa utilizando una máquina de estados finitos no bloqueante controlada mediante la función de temporización millis(). Escribí el pseudocódigo del loop() asegurando que la lectura del pulsador se atienda de forma continua sin detener la ejecución.

(c) Incorporá al diseño dos restricciones de seguridad vial indispensables: 1) garantizar que los vehículos tengan siempre un tiempo de verde mínimo ininterrumpido de $15\ \text{s}$ antes de que cualquier pulsación peatonal pueda provocar el cambio a amarillo; 2) justificar cómo evitar que los rebotes mecánicos (chattering) de los contactos del pulsador provoquen disparos erráticos del ciclo.

Resolver
Practica★★★Sin empezar
Reto del tema. Imaginá que tenés que diseñar un prototipo domótico de bajo costo y código abierto para alertar sobre temperaturas extremas en tu vivienda. 1. Datos…

Reto del tema. Imaginá que tenés que diseñar un prototipo domótico de bajo costo y código abierto para alertar sobre temperaturas extremas en tu vivienda.

  1. Datos reales: Ingresá a la web oficial del MARN (Ministerio de Medio Ambiente y Recursos Naturales) y consultá la temperatura máxima de tu municipio durante los últimos tres días. Calculá su media aritmética (por ejemplo, $32.4$ °C) para establecerla como umbral crítico de disparo.

  2. Diseño en Tinkercad: Creá un circuito basado en hardware libre utilizando una placa tipo Arduino Uno, un sensor de temperatura TMP36 y dos indicadores (un LED verde para estado normal y un LED rojo con zumbador para la alarma).

  3. Programación y ensayo: Programá el microcontrolador (mediante bloques o C++) para convertir la señal analógica del sensor a grados Celsius y activar la alarma si supera tu umbral calculado. Simulá su respuesta variando la temperatura.

  4. Informe técnico: Redactá una propuesta breve (una página) con el esquema del circuito, el código implementado y una reflexión crítica sobre las ventajas del hardware libre frente a los sistemas propietarios cerrados.

Se valorará:

  • Obtención rigurosa de los datos del MARN y su correcta integración matemática en el programa.

  • Montaje funcional del circuito y coherencia del código en el simulador.

  • Argumentación técnica y ética sobre el uso y democratización del hardware libre.

Resolver

Volvé al principio: el sensor del cafetal que lee la humedad por una entrada analógica, decide en el loop si hay que regar y, mediante un relé, activa la bomba; en reposo duerme para que las pilas duren meses.

Resumen

Ver todos los ejercicios de este apartado