Gerador de Ondas JX – Oscilador DDS Compatível com Arduino com Display OLED
Componentes e Materiais
| Componente | Quantidade | Observações |
|---|---|---|
| Arduino Nano R3 | 1 | Qualquer modelo Arduino deve funcionar |
| Display OLED SH1106 I2C 128x64 pixels (4 pinos) | 1 | |
| Módulo DDS AD9833 | 1 | |
| Encoder Rotativo com Botão | 1 | Requer solda |
| Módulo Encoder Rotativo | 1 | Melhor para montagem em protoboard |
| Módulo Relé 5V (opcional) | 1 | Opcional, se não houver necessidade de alterar modo de acoplamento AC/DC. Melhor para protoboard |
| Relé Reed 5V 500 Ohm | 1 | Ideal para sinais pequenos, requer solda. Com bobina de 500 Ohm pode ser conectado diretamente aos pinos digitais do Arduino (10 mA) |
| Capacitor 10 µF | 1 | |
| Capacitor 10 nF (poliéster) | 1 | |
| Fonte Chaveada AC-DC 100-220V para 5V (opcional) | 1 | Opcional, para alimentar o circuito quando não conectado via USB |
Ferramentas Necessárias
- Ferro de solda (genérico) – não essencial se testar apenas em protoboard
Aplicativos e Serviços Online
- image2cpp – Para converter ícones personalizados para formato hexadecimal para PROGMEM
Sobre o Projeto
Há muito tempo adiei a compra de um osciloscópio. Agora, após adquiri-lo, é hora de também ter um gerador de sinais barato para uso hobby, essencial para diagnosticar circuitos de áudio e muito mais. Combinando as duas paixões por eletrônica e computação, o melhor é fazer você mesmo com Arduino.
Características
- Frequência de saída entre 1 Hz e 999.999 Hz
- Dois modos de variação de frequência: logarítmico e dígito único
- Três tipos de onda: senoidal, triangular e quadrada
- Acoplamento de saída AC ou DC
- Capacidade de varredura contínua entre dois valores de frequência predefinidos
- Controlado exclusivamente por um único botão rotativo
- Proteção de tela integrada para preservar a vida útil do display OLED
Nota
Utilizei um módulo relé pré-montado com contatos de 10A, pois no momento não tinha um micro relé reed, que seria a melhor escolha para evitar transistores, diodos e resistores quando relés de potência não são necessários. Um pino digital do Arduino pode fornecer no máximo 40 mA, portanto não é possível conectar diretamente um relé eletromecânico com bobina de 120/150 ohm.
SEMPRE TENHA MUITO CUIDADO ao usar tensão de rede!
Risco de choque elétrico e/ou danos à pele e olhos.
Cuide da sua vida, você só tem uma!
Referências Rápidas
Protótipo
Código
O projeto consiste em três arquivos principais:
JX_Wave_Generator_8.7.7.ino– Programa principalJXWG_Defs.h– Definições, constantes e variáveis globaisJXWG_Graphics.h– Dados dos ícones e gráficos em PROGMEM
JX_Wave_Generator_8.7.7.ino
Versão 8.7.7. Revisão menor em 16/01/2021. Licença MIT.
O código implementa uma máquina de estados para controle via encoder rotativo, gerenciando modos de operação (logarítmico, dígito único, varredura), seleção de tipo de onda, modo de acoplamento e configuração de parâmetros de varredura. Inclui rotinas para display OLED SH1106, comunicação SPI com AD9833, leitura de encoder com debounce, salvamento de configuração em EEPROM e proteção de tela.
JXWG_Defs.h
Declarações de pinos, constantes de modo, tipos de onda, modos de acoplimento, status de varredura, símbolos, conexões do AD9833, variáveis globais, macros para acesso a configuração e estrutura de dados para EEPROM.
JXWG_Graphics.h
Bitmaps monocromáticos em PROGMEM para ícones da interface: modos de operação (logarítmico, dígito, varredura), tipos de onda (quadrada, senoidal, triangular), modos de acoplamento (AC, DC, OFF), parâmetros de varredura (máx, mín, passo, opções, iniciar, pausar), símbolos de seta, rotação, play/pause, e ícones pequenos para barra de status. Total: 1148 bytes de memória de programa.
Esquemáticos
Processo de manufatura
- Capture Gotas d'Água em Ação com Arduino Nano – Fotografia de Alta Velocidade DIY
- Construa um Spybot Controlado por Bluetooth com Arduino
- FlickMote: Controle Remoto IR por Gestos para Casa Inteligente
- DIY Arduino TV B-Gone: Controle Remoto Universal para Todas as TVs
- Construa um Relógio Mestre LED Personalizado com Alarme – Visível a 12 Metros
- Find Me: Localizador Inteligente de Objetos com Arduino e Bluetooth
- Soluções de Energia Otimizadas para Projetos Arduino
- Construa um Skate VR DIY com Arduino, Google Cardboard e Bluetooth
- Conectando Arduino Mega ao Módulo GPS NEO‑6M: Guia Passo a Passo
- Jogo da Velha com Arduino, Matriz LED MAX7219 e Caixa de Papelão