Generador de Ondas JX – Oscilador DDS Compatible con Arduino con Pantalla OLED
Componentes y Suministros
| Arduino Nano R3 | 1 | Cualquier modelo de Arduino debería funcionar |
| Pantalla OLED SH1106 I2C 128x64 (4 pines) | 1 | |
| Módulo DDS AD9833 | 1 | |
| Codificador Rotativo con Pulsador | 1 | Requiere soldador |
| Módulo de Codificador Rotativo | 1 | Mejor para montaje en protoboard |
| Módulo Relé 5V (opcional) | 1 | Opcional, para cambiar modo de acoplamiento AC/DC. Mejor módulo para protoboard |
| Relé Reed 5V 500 Ohm | 1 | Ideal para señales pequeñas, requiere soldador. Bobina 500 Ohm conectable directo a pines digitales Arduino (10 mA) |
| Condensador 10 µF | 1 | |
| Condensador 10 nF | 1 | Condensador de poliéster |
| Fuente Conmutada AC-DC 100-220V a 5V (opcional) | 1 | Opcional, para alimentar el circuito sin USB |
Herramientas Necesarias
- Soldador (genérico) – No esencial si pruebas en protoboard
Aplicaciones y Servicios Online
- image2cpp – Para convertir iconos personalizados a formato hexadecimal para PROGMEM
Sobre el Proyecto
Durante mucho tiempo pospuse la compra de un osciloscopio. Tras adquirirlo, llegó el momento de contar también con un generador de señales económico para uso aficionado, esencial para diagnosticar circuitos de audio y más. Combinando las pasiones por la electrónica y la informática, lo mejor es hacerlo uno mismo con Arduino.
CARACTERÍSTICAS
- Frecuencia de salida entre 1 Hz y 999.999 Hz
- Dos modos de variación de frecuencia: logarítmico y dígito a dígito
- Tres tipos de onda: senoidal, triangular y cuadrada
- Acoplamiento de salida AC o DC
- Capacidad de barrido continuo entre dos valores de frecuencia predefinidos
- Controlado exclusivamente mediante un solo mando rotativo
- Protector de pantalla integrado para preservar la vida de la pantalla OLED
NOTA
Se utilizó un módulo de relé preensamblado con contactos de 10A por no disponer de un micro relé reed, que sería la mejor opción para evitar transistores, diodos y resistencias cuando no se necesitan relés de potencia. Un pin digital de Arduino puede entregar máximo 40 mA, por lo que no se puede conectar directamente un relé electromecánico con bobina de 120/150 ohm.
¡EXTREMA PRECAUCIÓN AL USAR TENSIÓN DE RED!
Riesgo de descarga eléctrica y/o daño a piel y ojos.
¡Cuida tu vida, solo tienes una!
REFERENCIAS RÁPIDAS
PROTOTIPO
Código
El proyecto consta de tres archivos principales:
- JX_Wave_Generator_8.7.7.ino – Programa principal (versión 8.7.7, revisión menor 16/01/2021)
- JXWG_Defs.h – Definiciones, constantes, variables y estructuras de configuración
- JXWG_Graphics.h – Datos de iconos y gráficos en memoria de programa (PROGMEM)
Funcionamiento Principal
El generador implementa una máquina de estados controlada por el codificador rotativo (giro y pulsación corta/larga) que permite navegar entre modos:
- LOGARÍTMICO: Cambio de frecuencia en pasos logarítmicos (1, 10, 100, 1k, 10k, 100k Hz)
- DÍGITO A DÍGITO: Edición individual de cada dígito de la frecuencia
- BARRIDO (SWEEP): Barrido continuo entre frecuencia mínima, máxima y paso configurables
- OPCIONES: Menú para cambiar modo de trabajo, tipo de onda y acoplamiento
Incluye guardado/carga de configuración en EEPROM, protector de pantalla automático a los 10 minutos de inactividad y control de relé para acoplamiento AC/DC/OFF.
Esquemáticos
Proceso de manufactura
- Captura Gotas de Agua en Acción con Arduino Nano: Fotografía de Alta Velocidad DIY
- Construye un Spybot controlado por Bluetooth con Arduino
- FlickMote: Mando IR por gestos para Smart Home
- TV‑B‑Gone DIY con Arduino: Mando universal para apagar cualquier TV
- Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
- Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
- Soluciones de Alimentación Optimizadas para Proyectos Arduino
- Construye un Skateboard VR Casero con Arduino, Google Cardboard y Bluetooth
- Conectar Arduino Mega a módulo GPS NEO‑6M: Guía paso a paso
- Tres en raya con Arduino, matriz LED MAX7219 y carcasa de cartón
- Construye un Robot Cuadrúpedo Inteligente con Arduino: Guía Paso a Paso