Volver

Electrónica analógica en el navegador: siete circuitos que puedes ejecutar y medir

La fuente de alimentación de 5 V en Velxio: dos generadores de señal como transformador con toma central, dos diodos 1N4007, un condensador de filtro y un regulador 7805, con el osciloscopio mostrando la entrada de 12 V CA y la tensión rectificada

La mayoría de los tutoriales de Arduino saltan directamente al código. Pero las piezas que rodean al microcontrolador son analógicas: la resistencia que mantiene vivo un LED, el divisor que convierte un sensor en una tensión, el transistor que conmuta un motor, el regulador que saca 5 V de un adaptador de pared. Cuando una de esas piezas está mal, ningún código lo arregla.

Velxio también simula esa mitad. Ejecuta ngspice, el simulador de circuitos SPICE de código abierto, compilado a WebAssembly, así que resistencias, condensadores, diodos, transistores, amplificadores operacionales y reguladores se comportan como sus equivalentes reales en tu navegador. Puedes medirlos con un voltímetro, un amperímetro y un osciloscopio, y cambiar cualquier valor mientras el circuito está en marcha.

Este artículo recorre siete proyectos. Los cinco primeros no tienen ningún microcontrolador, solo componentes. Los dos últimos mezclan circuitos analógicos con un Arduino y un ESP32. Todos los proyectos están en la galería de ejemplos, y cada número de los que aparecen a continuación se leyó del simulador y se comprobó con la fórmula que lo explica.

Antes de empezar: los tres instrumentos

Una cosa que conviene saber: en los circuitos con fuentes de alterna, Velxio resuelve una ventana corta de tiempo desde el momento en que se enciende la alimentación (unos pocos ciclos de la señal) y muestra la traza del osciloscopio de esa ventana. Repite la resolución a medida que cambias cosas, así que la imagen se mantiene actualizada, pero no es una grabación continua.

1. Un LED y una resistencia: la ley de Ohm

Una pila de 9 V, un amperímetro que marca 15,18 mA, una resistencia de 470 ohmios con un voltímetro en paralelo que marca 7,136 V, y un LED rojo encendido

El primer circuito que monta todo principiante, y el que más a menudo se monta mal: un LED conectado directamente a una pila se quema, porque nada limita su corriente. La resistencia en serie hace ese trabajo.

Los medidores cuentan toda la historia:

Esa es la fórmula para elegir la resistencia: R = (Valimentación − VLED) / I. Para 15 mA con una pila de 9 V: (9 − 1,8) / 0,015 = 480 Ω, así que 470 Ω es el valor normalizado más cercano.

Pruébalo: haz clic derecho en la resistencia y cámbiala a 1 kΩ. La corriente baja a 7,2 mA y el LED se atenúa, mientras que su propia tensión apenas se mueve (1,81 V). Un LED mantiene su tensión casi constante y deja que la resistencia fije la corriente.

Abrir el circuito del LED y la ley de Ohm en Velxio

2. Una fuente de alimentación de 5 V: rectificador, condensador y regulador

La clásica fuente de alimentación lineal, la que llevaba dentro todo adaptador de pared antiguo, en cuatro etapas:

  1. Transformador. Convierte la alterna de la red en una tensión alterna más baja y segura. Aquí es un secundario de 12-0-12 V con toma central, dibujado como dos generadores de señal en contrafase (12 V de pico cada uno, 50 Hz).
  2. Rectificador. Dos diodos 1N4007, uno por cada mitad del secundario. Cada uno conduce en su propio semiciclo, así que la salida recibe un pulso positivo cada 10 ms: rectificación de onda completa.
  3. Condensador de filtro. El condensador de 220 µF se carga en cada pico y alimenta la carga entre picos. La tensión que mantiene no es plana: cae entre picos. Esa caída es el rizado.
  4. Regulador. El 7805 toma esa tensión ondulante y mantiene su salida exactamente en 5 V, siempre que su entrada se quede al menos unos 2 V por encima de la salida.

La imagen del osciloscopio al principio de este artículo muestra los 12 V de alterna del transformador y la tensión rectificada en el condensador. El condensador oscila entre 10,1 V y 11,8 V, unos 1,7 V de rizado con una carga de 50 mA, y el voltímetro en la salida marca unos estables 5,000 V.

La estimación rápida del rizado es ΔV ≈ I / (2·f·C): 0,05 A / (2 × 50 Hz × 220 µF) = 2,3 V. Esa fórmula supone que el condensador alimenta la carga durante todo el semiciclo; en realidad los diodos lo recargan un poco antes, así que los 1,7 V medidos son menores.

Pruébalo: haz clic derecho en el condensador y cámbialo a 47 µF. El rizado crece hasta 6 V, los valles bajan a 5,9 V, por debajo de lo que necesita el 7805, y su salida cae a 3,9 V en cada ciclo. Por eso las fuentes de alimentación usan condensadores grandes.

Abrir la fuente de alimentación de 5 V en Velxio

3. Una luz nocturna con una LDR y dos transistores

Luz nocturna en la oscuridad: el módulo sensor de luz, los transistores Q1 y Q2 y un LED amarillo encendido

Una luz nocturna automática, sin microcontrolador y sin código. Una fotorresistencia (LDR) mide la luz, y dos transistores encienden el LED cuando oscurece.

El módulo sensor de luz es un divisor de tensión: la LDR arriba y una resistencia de 10 kΩ abajo. Con luz de día la resistencia de la LDR es baja y la salida del módulo (AO) es alta; en la oscuridad sube a cientos de kΩ y AO cae hacia 0 V.

¿Por qué dos transistores? Porque uno solo haría lo contrario: encender el LED cuando hay luz. La primera etapa invierte la señal.

En la simulación, a 20 lux (una habitación con poca luz) AO se queda en 0,50 V, Q1 está apagado y el LED lleva 13 mA. A 30 lux AO es 0,67 V, Q1 se enciende y el LED se apaga. Haz clic derecho en el sensor de luz y cambia Iluminación (lux) por ese rango para conmutarlo:

El mismo circuito con luz de día: el LED amarillo está apagado

Abrir la luz nocturna en Velxio

4. Un amplificador con transistor: la etapa en emisor común

Amplificador en emisor común con el osciloscopio: la señal de base (verde) es pequeña, la señal de colector (roja) es mayor y está invertida

Así es como una señal pequeña se convierte en una grande: el amplificador en emisor común, el bloque constructivo de todo amplificador de audio discreto. Una senoide de 1 kHz de 0,4 V de pico a pico entra por un condensador de acoplamiento y sale del colector unas cuatro veces y media más grande, e invertida. (La alimentación de 9 V es el símbolo de fuente de banco de la esquina superior izquierda; el generador de señal está debajo.)

Dos cosas lo hacen funcionar.

Polarización. Un transistor solo amplifica cuando está parcialmente encendido. El divisor de 47 kΩ / 10 kΩ fija la base en 1,54 V. El emisor queda una caída de diodo por debajo, 0,89 V, así que fluyen 0,89 mA por la resistencia de emisor de 1 kΩ. La misma corriente por la resistencia de colector de 4,7 kΩ provoca una caída de 4,2 V, dejando el colector en 4,83 V, cerca de la mitad de la alimentación, con margen para oscilar en ambos sentidos.

Ganancia. Un cambio en la base aparece casi sin cambios en el emisor, así que cambia la corriente en ΔV / Re. Ese cambio de corriente fluye por Rc y mueve el colector en ΔV × Rc / Re, en la dirección opuesta. Por tanto, la ganancia es −Rc/Re = −4,7. El simulador mide 4,54: el transistor añade una pequeña resistencia interna de emisor de unos 26 mV / Ie ≈ 29 Ω, y 4700 / 1029 = 4,57.

En el osciloscopio, la base (verde) se mueve 0,4 V alrededor de 1,5 V y el colector (rojo) se mueve 1,8 V alrededor de 4,8 V, con sus picos donde la base tiene sus valles.

Pruébalo: haz clic derecho en el generador de señal y sube su amplitud a 1 V. El colector necesitaría oscilar 9 V, más de lo que permite la alimentación, así que la parte superior de la onda se aplana contra los 9 V y la inferior contra la saturación: recorte, el sonido de un amplificador sobrecargado.

Abrir el amplificador en emisor común en Velxio

5. Un termostato con un comparador de amplificador operacional

Termostato por encima de su punto de consigna: la salida del LM358 está alta y el LED rojo, que representa un ventilador, está encendido

Un termostato que enciende un ventilador cuando hace calor, usando un amplificador operacional LM358 y nada de código.

El sensor. La resistencia del termistor NTC cae a medida que se calienta (10 kΩ a 25 °C, unos 7,4 kΩ a 32 °C). El módulo lo coloca bajo una resistencia fija de 10 kΩ, así que su salida cae con la temperatura: 2,50 V a 25 °C, 2,12 V a 32 °C.

El punto de consigna. El potenciómetro es un segundo divisor. Su cursor está en 2,336 V, la tensión que da el termistor a 28 °C. El voltímetro lo muestra.

El comparador. Un amplificador operacional sin realimentación tiene tanta ganancia que su salida se dispara a una u otra alimentación según cuál entrada sea mayor. El punto de consigna va a la entrada + y el termistor a la entrada −: por debajo de 28 °C la tensión del termistor es mayor y la salida está a 0 V; por encima de 28 °C es menor y la salida salta a unos 3,7 V, encendiendo el LED. A 27 °C el LED está apagado, a 29 °C está encendido.

¿Por qué 3,7 V y no 5 V? El LM358 no puede llevar su salida hasta su alimentación positiva; se queda unos 1,3 V por debajo. El proyecto 6 se topa con el mismo límite.

Un termostato real añade histéresis, para que no se encienda y apague sin parar mientras la temperatura ronda el umbral. El proyecto 7 lo hace en código.

Pruébalo: haz clic derecho en el termistor y cambia su temperatura, o haz clic derecho en el potenciómetro y cambia su posición (0 a 1023) para mover el punto de consigna.

Abrir el termostato con amplificador operacional en Velxio

6. Arduino: convertir PWM en una tensión analógica real

Un Arduino Uno con el pin 9 alimentando un filtro RC y un seguidor de tensión LM358 de vuelta a A0, y el monitor serie comparando las tensiones esperada y medida

Un Arduino Uno no tiene DAC: analogWrite() no saca una tensión, saca PWM, una onda cuadrada de 490 Hz cuyo ciclo de trabajo fija la media. A un LED o a un motor les da igual, pero muchos circuitos necesitan una tensión real y estable. Un filtro analógico la genera.

PWM 0    expected 0.00 V  measured 0.02 V
PWM 64   expected 1.25 V  measured 1.26 V
PWM 128  expected 2.51 V  measured 2.51 V
PWM 192  expected 3.76 V  measured 3.77 V
PWM 255  expected 5.00 V  measured 4.03 V

Hasta 192 el DAC es preciso a 10 mV. A 255 se detiene en 4,03 V: el filtro sí llega a 5 V, pero el LM358, alimentado a 5 V, no puede llevar su salida tan alto. La solución es un amplificador operacional rail-to-rail como el MCP6002, o usar solo el rango que el LM358 puede alcanzar.

Abrir el DAC PWM con Arduino en Velxio

7. ESP32: un termómetro que conmuta un ventilador

Un ESP32 leyendo un termistor NTC en GPIO34 y conmutando un ventilador (un LED verde) mediante un MOSFET 2N7000, con el monitor serie imprimiendo 35.0 C fan ON

El termostato otra vez, esta vez con un microcontrolador decidiendo, para que pueda hacer cosas que un comparador no puede: mostrar la temperatura en grados y añadir histéresis.

Leer la temperatura. La salida del módulo NTC va a GPIO34, un pin solo de entrada del primer ADC del ESP32. El sketch promedia 16 lecturas, calcula la resistencia del termistor a partir del divisor (R = 10 kΩ × V / (3,3 V − V)) y la convierte a grados con la ecuación Beta de la hoja de datos del termistor: 1/T = 1/T₀ + ln(R/R₀)/β, con R₀ = 10 kΩ a T₀ = 25 °C y β = 3950. El monitor serie imprime 25,0 °C cuando el termistor está a 25 °C, y 35,0 °C a 35 °C.

Conmutar la carga. Un pin GPIO puede suministrar unos pocos miliamperios, no los cientos que necesita un ventilador. En su lugar, GPIO25 excita la puerta de un MOSFET 2N7000, a través de una resistencia de 100 Ω, y el MOSFET conecta el ventilador (aquí un LED verde) a masa. A 35 °C el drenador está a 0,06 V: el MOSFET está completamente encendido.

Histéresis. El ventilador se enciende a 30 °C y se apaga solo por debajo de 28 °C. Sin ese margen de 2 °C, una temperatura que ronde el umbral encendería y apagaría el ventilador cada segundo.

Para un ventilador real, usa un MOSFET de nivel lógico dimensionado para la corriente del ventilador (el 2N7000 solo sirve para cargas pequeñas) y un diodo en paralelo con el ventilador para absorber el pico de tensión del motor al apagarse.

Abrir el termómetro y ventilador con ESP32 en Velxio

Lo que arreglamos mientras construíamos estos

Escribir este artículo implicó medir cada circuito, y las mediciones sacaron a la luz problemas en el simulador, todos corregidos antes de publicar:

Si construyes un circuito analógico en Velxio y los números no cuadran con la fórmula, avísanos en GitHub. Así se encontraron estos.


Compartir en:
David Montero

Escrito por

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

Artículos relacionados


Artículo anterior
Seis juegos portátiles para el ESP32 y el XIAO ESP32-S3, jugables en tu navegador
Artículo siguiente
Siete proyectos de Halloween que puedes construir y ejecutar en el navegador