Osciloscopio con Arduino y PC: Cómo Construir un Monitor DIY y Qué Equipo Real Elegir

Al buscar información sobre un osciloscopio Arduino suelen confluir dos inquietudes técnicas muy concretas: por un lado, quienes desean construir un osciloscopio casero con Arduino y PC aprovechando las entradas analógicas de la placa para graficar ondas de baja frecuencia en pantalla (un proyecto formativo excelente para entender cómo funciona un convertidor analógico-digital); por otro lado, desarrolladores y aficionados a la robótica que trabajan con Arduino UNO, Nano, ESP32 o Raspberry Pi y necesitan un osciloscopio de verdad para depurar modulaciones PWM de servomotores, ruido en fuentes conmutadas o tramas de datos en buses serie I2C, SPI y UART. En esta guía detallada resolvemos ambos escenarios con código práctico, esquemas de protección y criterios de instrumentación profesional.

Sonda de osciloscopio conectada a un pin PWM de una placa Arduino UNO y ESP32 en protoboard para depurar señales

¿Cuál es el mejor osciloscopio para proyectos con Arduino y microcontroladores? Comparativa 2026

Cuando un circuito con microcontroladores va más allá de medir la salida lenta de un potenciómetro o un sensor de temperatura y entran en juego señales PWM de motores, transiciones lógicas de nanosegundos o buses de comunicación digital, un monitor casero basado en el ADC de Arduino resulta insuficiente por falta de velocidad y memoria. Esta tabla reúne los instrumentos más valorados por la comunidad de electrónica en relación calidad-precio:

Modelo exacto Formato Ancho de banda Canales Muestreo máx. Aislamiento USB / Chasis Punto fuerte con microcontroladores Oferta
Sobremesa de banco 100 MHz 2 analógicos 1 GSa/s (24 Mpts) Tierra PE de red (requiere precaución en masa) Decodificación hardware de I2C, SPI y UART en pantalla con 24 millones de puntos para capturar tramas largas VER MEJOR PRECIO
Módulo USB para PC 25 MHz 2 analógicos 100 MSa/s Aislamiento galvánico USB integrado Protege al 100% los puertos USB del ordenador frente a sobretensiones o bucles de tierra accidentales en protoboard VER MEJOR PRECIO
Módulo USB para PC 20 MHz 2 analógicos + 16 lógicos 48 MSa/s Masa compartida con PC Analizador lógico integrado de 16 canales digitales para monitorizar simultáneamente buses paralelos y pines GPIO VER MEJOR PRECIO
Portátil de mano con batería 50 MHz 2 analógicos 250 MSa/s Aislado al operar a batería Instrumento 3 en 1 con multímetro True-RMS y generador DDS para inyectar señales de prueba en circuitos autónomos VER MEJOR PRECIO
Sobremesa de banco 110 MHz 2 analógicos 1 GSa/s Tierra PE de red La opción de sobremesa con mandos giratorios y pantalla a color de 7 pulgadas más asequible para estudiantes de robótica VER MEJOR PRECIO
Módulo USB para PC 10 MHz 2 analógicos + AWG 100 MSa/s Masa compartida con PC El entorno de software PicoScope 7 con decodificación nativa de más de 30 protocolos serie y generador arbitrario VER MEJOR PRECIO
RIGOL DS1102Z-E - Osciloscopio Digital de Laboratorio (100 MHz, 2 Canales, 1 GSa/s, 24 Mpts)
25 Opiniones
RIGOL DS1102Z-E - Osciloscopio Digital de Laboratorio (100 MHz, 2 Canales, 1 GSa/s, 24 Mpts)
  • 100 MHz de ancho de banda en 2 canales analógicos con 1 GSa/s de muestreo en tiempo real.
  • Profundidad de memoria de 24 Mpts incluida de serie y captura de 30.000 formas de onda/s.
  • Incluye 2 sondas pasivas PVP2150 de 150 MHz y decodificación de protocolos serie.
OWON VDS1022I - Osciloscopio USB con Aislamiento Galvánico (25 MHz, 2+1 Canales, 100 MSa/s)
25 Opiniones
OWON VDS1022I - Osciloscopio USB con Aislamiento Galvánico (25 MHz, 2+1 Canales, 100 MSa/s)
  • Aislamiento galvánico real entre la etapa de medida BNC y el puerto USB del ordenador.
  • Protege la placa base del portátil frente a bucles de masa accidentales en el laboratorio.
  • 25 MHz de ancho de banda, 100 MSa/s de muestreo y canal dedicado de disparo externo (EXT).
Hantek 6022BL - Osciloscopio USB para PC + Analizador Lógico 16 Canales (20 MHz, 2+16 Canales, 48 MSa/s)
25 Opiniones
Hantek 6022BL - Osciloscopio USB para PC + Analizador Lógico 16 Canales (20 MHz, 2+16 Canales, 48 MSa/s)
  • Combina 2 canales analógicos de 20 MHz (48 MSa/s) con un analizador lógico digital de 16 canales.
  • Compatible con el ecosistema libre Sigrok / PulseView en Windows, Linux y macOS.
  • Herramienta económica ideal para depurar tramas I2C, SPI y UART en proyectos Arduino y ESP32.

Cómo hacer un osciloscopio con Arduino y PC: tutorial de montaje y código paso a paso

Si tu objetivo es experimentar y programar un osciloscopio casero con Arduino para visualizar en la pantalla del ordenador señales eléctricas lentas (como la curva de carga y descarga de un condensador RC, la respuesta de una fotorresistencia LDR o señales de audio de muy baja frecuencia), puedes ponerlo en marcha en pocos minutos aprovechando la herramienta Serial Plotter de Arduino IDE.

1. Esquema de conexiones y circuito de protección básico para el ADC

El convertidor analógico-digital (ADC) del microcontrolador ATmega328P de Arduino UNO solo admite voltajes comprendidos estrictamente entre 0 V y 5 V (o entre 0 V y 3.3 V en placas ESP32 y Raspberry Pi Pico). Cualquier voltaje negativo respecto a masa o superior a 5 V perforará la unión de silicio del pin y destruirá el microcontrolador de forma permanente.

Para trabajar con un mínimo de seguridad en la protoboard, añade este sencillo circuito de protección en el pin de entrada A0:

  • Resistencia de entrada en serie (10 kΩ): Limita la corriente que puede entrar al pin del microcontrolador ante un sobrevoltaje accidental.
  • Diodo Zener de 5.1 V a masa: Con el cátodo conectado a A0 y el ánodo a GND, recorta cualquier pico inductivo o tensión superior a 5.1 V antes de que alcance el conversor.
  • Divisor de tensión resistivo (opcional): Si deseas medir señales continuas de hasta 10 V o 15 V, añade una segunda resistencia de 10 kΩ entre A0 y GND (divisor 2:1) y recalcula la escala de voltaje en el código.

2. Código C++ optimizado para Arduino IDE y Serial Plotter

El siguiente sketch en C++ configura la lectura del canal analógico y acelera el reloj del conversor modificando el registro ADCSRA para superar las limitaciones de velocidad del analogRead() convencional:

// Osciloscopio con Arduino UNO y Serial Plotter
// Autor: elosciloscopio.com
const int analogPin = A0;

void setup() {
  // Comunicación serie a alta velocidad para reducir la latencia de transmisión
  Serial.begin(115200);

  // Aceleración del ADC mediante manipulación del prescaler (registro ADCSRA)
  // Por defecto el prescaler es 128 (reloj ADC de 125 kHz -> 104 microsegundos por muestra)
  // Al cambiarlo a 16 (0x04), elevamos el reloj ADC a 1 MHz (~13 microsegundos por muestra, ~77 kSa/s)
  ADCSRA = (ADCSRA & 0xf8) | 0x04;
}

void loop() {
  // Lectura del valor bruto del ADC (rango 0 a 1023 para 10 bits)
  int rawValue = analogRead(analogPin);

  // Conversión a voltios reales (referencia interna predeterminada de 5.0 V)
  float voltage = (rawValue * 5.0) / 1023.0;

  // Transmisión al puerto serie en formato numérico para el graficador
  Serial.println(voltage);
}

Para visualizar la gráfica en tu ordenador:

  1. Carga el código en tu placa Arduino UNO desde el entorno Arduino IDE.
  2. Abre el menú Herramientas > Serial Plotter (o pulsa la combinación de teclas Ctrl + Mayús + L en Windows).
  3. En la esquina inferior derecha del Serial Plotter, asegúrate de seleccionar la velocidad de 115200 baudios para que coincida con el código.
  4. Verás representarse de forma continua la curva de voltaje en tiempo real a medida que varíe la tensión en la sonda de pruebas conectada al pin A0.

3. Programa de osciloscopio en PC: opciones con Processing y Python

El Serial Plotter de Arduino IDE cumple una función básica, pero carece de base de tiempos ajustable, controles de escala vertical en voltios por división (V/div) y sistema de disparo. Quienes buscan un programa de osciloscopio más avanzado para ordenador suelen recurrir a dos alternativas de código abierto:

  • Processing (Java): La comunidad maker dispone de numerosos sketches de Processing que leen los datos recibidos por el puerto serie COM y dibujan una retícula clásica de osciloscopio con cuadrícula milimétrica, selector de acoplamiento y control de disparo por umbral de software.
  • Python con PyQtGraph y PySerial: Para proyectos educativos universitarios, un script en Python permite graficar miles de muestras por segundo con aceleración gráfica por hardware, exportando los datos capturados a formato CSV o NumPy para análisis espectral mediante Transformada Rápida de Fourier (FFT).

Limitaciones técnicas del ADC de Arduino frente a un osciloscopio digital real

Aunque como ejercicio didáctico construir un monitor analógico resulta muy enriquecedor, es fundamental entender por qué una placa de microcontrolador no puede sustituir a un equipo de instrumentación en un banco de trabajo:

Monitor ADC con Arduino UNO (ATmega328P)

  • Velocidad de muestreo muy baja: La función estándar analogRead() requiere unos 104 µs por muestra (~9.600 muestras por segundo). Según el teorema de muestreo de Nyquist, solo permite registrar señales de hasta 2 o 3 kHz de forma coherente.
  • Rango dinámico nulo (0 V a 5 V unipolar): No puede medir señales alternas de corriente alterna (AC) con valores negativos sin circuitos externos de desplazamiento de nivel (offset DC), ni voltajes superiores a 5 V.
  • Inexistencia de disparo por hardware (Trigger): Sin comparadores analógicos dedicados a detectar el flanco de subida o bajada, la onda se desplaza continuamente por la pantalla y resulta imposible congelar pulsos transitorios o glitches rápidos.
  • Baja impedancia de entrada (~10 kΩ): Mientras que una sonda real de osciloscopio ofrece una impedancia de 10 MΩ para no perturbar el circuito, el pin de Arduino drena corriente de la señal y falsea la medición.

Osciloscopio digital real de laboratorio

  • Velocidad de muestreo de hasta 1.000.000.000 Sa/s: Un osciloscopio digital de 1 GSa/s captura detalles con resolución temporal de nanosegundos y anchos de banda reales de 50 MHz a 100 MHz.
  • Rango de voltaje seguro de hasta 300-400 V: Con sondas pasivas atenuadas 10X, permite diagnosticar fuentes conmutadas, transistores de potencia y relés con acoplamiento AC, DC y referencia a tierra.
  • Sistema de disparo complejo (Trigger): Disparo por flanco, ancho de pulso, tiempo de caída, ventana lógica y congelación de eventos únicos en modo Single.
  • Impedancia estandarizada de 1 MΩ || 15 pF: Conexión limpia que respeta la dinámica eléctrica original del circuito bajo prueba sin alterar su comportamiento.

¿Qué osciloscopio elegir para depurar Arduino, ESP32 y Raspberry Pi?

Al desarrollar proyectos de electrónica aplicada, robótica o domótica con microcontroladores, el osciloscopio se convierte en la herramienta indispensable para resolver averías que un multímetro digital jamás detecta:

1. Medición de señales PWM en servomotores y controladores de potencia

Las placas Arduino generan salidas PWM mediante temporizadores de hardware a frecuencias de 490 Hz o 980 Hz (o varias decenas de kilohercios en controladores MOSFET y drivers de motor paso a paso). Si una señal PWM presenta deformaciones en los flancos, caídas de tensión o sobreoscilaciones inductivas, el motor vibrará o el transistor disipará un exceso de calor. Para verificar el ciclo de trabajo (duty cycle) real y la limpieza de los pulsos, se requiere un equipo con ancho de banda suficiente, como los osciloscopios digitales de sobremesa de 100 MHz.

2. Depuración de buses de comunicación serie: I2C, SPI y UART

¿Por qué falla la lectura de un sensor de presión o una pantalla OLED en el bus I2C? Un analizador lógico digital puede mostrar si el byte recibido es correcto o no, pero no revela la causa física del error:

  • No te muestra si las resistencias de pull-up en las líneas SDA y SCL tienen un valor excesivo, redondeando los flancos de subida y provocando violaciones de tiempo.
  • No detecta rebotes mecánicos o ruido inductivo acoplado en las pistas de la placa o en los cables de la protoboard.
  • No avisa si una caída en la línea de alimentación de 3.3 V o 5 V al activar un módulo Wi-Fi o Bluetooth reinicia el periférico.

Para este trabajo, un equipo como el Rigol DS1102Z-E o un analizador mixto como el Hantek 6022BL permiten correlacionar la trama de datos decodificada con la forma de onda analógica real. Si deseas profundizar en el análisis de puertos serie, consulta nuestra guía sobre cómo depurar el bus UART con osciloscopio y el tutorial de pinout de Arduino UNO.

3. Prevención de bucles de masa y cortocircuitos en el ordenador

Este es el peligro más habitual al medir placas de desarrollo conectadas por USB: en un osciloscopio de sobremesa estándar conectado a la red eléctrica, el cocodrilo de masa de la sonda está conectado internamente a la toma de tierra del edificio (PE). Si tu ordenador de sobremesa o portátil también está enchufado a la toma de corriente, ambos comparten la misma masa.
Si por descuido conectas la pinza de masa de la sonda a un pin de 5 V, a una salida de colector abierto o a una fuente de alimentación flotante, provocarás un cortocircuito directo a tierra que puede quemar la placa Arduino, fundir las pistas de la placa base o averiar el controlador USB de tu ordenador.
Para montar un banco de trabajo seguro con microcontroladores, los osciloscopios USB para PC con aislamiento galvánico de hardware, como el Owon VDS1022I, cortan por completo la continuidad eléctrica entre el circuito de prueba y el ordenador. Otra alternativa muy versátil para mediciones sin cables es emplear osciloscopios portátiles y de mano a batería o incluso visualizar señales en un osciloscopio en el móvil Android.

Preguntas frecuentes sobre osciloscopios y Arduino

¿Se puede usar una placa ESP32 para construir un osciloscopio más rápido?

Sí. El microcontrolador ESP32 incorpora un procesador de doble núcleo a 240 MHz y un convertidor ADC de 12 bits capaz de muestrear hasta unos 2 MSa/s utilizando acceso directo a memoria (DMA). Esto permite registrar y graficar señales analógicas periódicas de hasta unos 100 kHz a 200 kHz en un servidor web local o en una pantalla LCD SPI integrada. Conviene recordar que el ADC interno del ESP32 presenta una no-linealidad apreciable en los extremos del rango de voltaje (por debajo de 0.15 V y por encima de 3.1 V), por lo que requiere curvas de calibración por software para obtener valores de tensión exactos.

¿Por qué es arriesgado conectar la masa del osciloscopio a un Arduino alimentado por USB?

Porque en la inmensa mayoría de osciloscopios de sobremesa la pinza de masa está unida directamente a la toma de tierra de la red eléctrica. Si el ordenador que alimenta al Arduino también está conectado a la red, colocar la pinza de masa en cualquier punto del circuito que no sea el negativo común cerrará un bucle de corriente destructivo a través del chasis. Para evitar averías costosas se aconseja utilizar módulos con aislamiento galvánico integrado como el Owon VDS1022I o alimentar el ordenador portátil exclusivamente con su batería interna durante los ensayos.

¿Qué osciloscopio económico es el más aconsejable para un estudiante de robótica y Arduino?

Para quienes disponen de un presupuesto ajustado de entre 90 € y 130 €, un módulo USB con aislamiento como el Owon VDS1022I o un híbrido con analizador lógico como el Hantek 6022BL representan el equilibrio perfecto para trabajar en el escritorio del ordenador. Si se busca un equipo de laboratorio completo con mandos giratorios independientes, pantalla propia y decodificación de protocolos serie en tiempo real, el Rigol DS1102Z-E (en el entorno de los 260 €) es la referencia estándar indiscutible para estudiantes de formación profesional e ingeniería electrónica.