Osciloscopio DIY con Arduino Nano (10 Hz–50 kHz) y LCD 128×64
Componentes y suministros
| Componente | Cantidad |
|---|---|
| Arduino Nano R3 | 1 |
| Condensador 100 µF | 1 |
| LCD ST7920 128x64 | 1 |
| Potenciómetro rotativo (genérico) | 2 |
| Pulsador momentáneo | 3 |
Herramientas necesarias
- Soldador
Aplicaciones y servicios online
- Arduino IDE
Sobre este proyecto
Este proyecto describe cómo hacer un osciloscopio simple con un rango de 10 Hz a 50 kHz. Es un rango extremadamente amplio, considerando que el dispositivo no usa un convertidor digital-analógico externo, sino solo el Arduino.
El resultado se muestra en una pantalla LCD relativamente grande (ST7920) con resolución de 128x64 píxeles. El área de visualización de medición es de 96x64 y el área de información es de 32x64, donde se muestra la frecuencia de la señal de prueba, Vpp, etc.
Es extremadamente simple de construir y consta de pocos componentes:
- Arduino Nano
- Pantalla LCD ST7920 128x64
- Tres pulsadores momentáneos
- Dos potenciómetros
- Un condensador de 100 µF
El dispositivo tiene varias funciones:
- Auto-disparo (visualización muy estable)
- Velocidad de barrido: 0.02 ms/div ~ 10 ms/div, según secuencia 1-2-5 dividida en nueve niveles
- Función Hold: Congelar forma de onda y parámetros en pantalla
Este proyecto se publicó en el blog de Wu Hanqing donde puedes encontrar el código original. Hice cambios mínimos porque construí el osciloscopio basado en el hardware de uno de mis proyectos anteriores. Como se ve en el video, el instrumento tiene una vista muy clara gracias a la pantalla grande, y también un auto-disparo sorprendentemente bueno. La posición vertical de la imagen se ajusta con el potenciómetro de 50 kΩ, y el contraste con el de 10 kΩ. Probé el osciloscopio con generadores de señal senoidal y rectangular.
Por último, aunque no es un instrumento profesional o muy usable, aún puede usarse para fines educativos o en tu laboratorio, para probar señales de baja frecuencia, especialmente sabiendo que el dispositivo es muy fácil de hacer y extremadamente barato.
Código
El código completo es extenso e incluye la biblioteca U8glib para el control del LCD ST7920. Incluye:
- Muestreo de señal analógica en pin A0
- Control de base de tiempos (9 niveles)
- Cálculo de frecuencia, Vpp, posición de disparo
- Dibujo de forma de onda, rejilla y parámetros en pantalla
- Control por botones: base de tiempos (+/-), hold
Funciones principales:
sample(): Muestreo con retardos según base de tiemposMeasure(): Calcula Vmax, Vmin, Vpp, frecuenciaTransform(): Ajusta datos para visualizacióndraw(): Dibuja onda, rejilla, textos y valoresKey_scan(): Lectura de botones
El código completo está disponible en el repositorio del proyecto original.
Esquemáticos
Ver diagrama de conexiones: Arduino Nano → LCD ST7920 (pines 4,5,6), potenciómetros en A6/A7, botones en D8/D9/D10, entrada señal en A0 con acoplamiento capacitivo (100µF).
Proceso de manufactura
- Construya su propio LUMAZOID: Visualizador de música DIY con Arduino
- Construya un osciloscopio Arduino de 20 kHz en LCD Nokia 5110: Guía DIY fácil
- Construye un Iron Man animado con Arduino: componentes, sensores y guía paso a paso
- Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
- Pantalla LED Matricial Interactiva en Puerta con Sensor PIR - Saludo Navideño Arduino
- Controlador de Humidificador DIY con Arduino y Relé: Configuración Segura de Alto Voltaje
- Construye un voltímetro DIY con Arduino y pantalla Nokia 5110 – Guía paso a paso
- Medición de Distancia en Tiempo Real con Sonar Arduino y Visualización en Processing
- MobBob: Robot Arduino Impreso en 3D, Controlado por Smartphone Android
- Osciloscopio DIY con Arduino Nano (10 Hz–50 kHz) y LCD 128×64
- Construye un volante joystick personalizado con Arduino para gaming