Índice:

Gerador de sinal AD9833: 3 etapas
Gerador de sinal AD9833: 3 etapas
Anonim
Gerador de Sinal AD9833
Gerador de Sinal AD9833
Gerador de Sinal AD9833
Gerador de Sinal AD9833

Um gerador de sinal é uma peça de equipamento de teste muito útil. Este usa um módulo AD9833 e um Arduino Nano - isso é tudo, nem mesmo um PCB. Você pode opcionalmente adicionar um display OLED. O AD9833 pode gerar ondas senoidais, triangulares e quadradas de 0,1 Hz a 12,5 MHz - o software neste projeto é limitado a 1 Hz a 100 kHz.

Existem outros Instructables usando um Arduino e um AD9833, aqui e aqui. Isso é mais simples e pode ser usado como um gerador de varredura. Os geradores de varredura ajudam a testar a resposta de frequência de filtros, amplificadores e assim por diante. Ao contrário de outros designs de Instructables, isso não inclui um amplificador ou controle de amplitude, mas você pode adicioná-los se desejar.

Etapa 1: gerador de sinal mais simples

Gerador de Sinal Mais Simples
Gerador de Sinal Mais Simples
Gerador de Sinal Mais Simples
Gerador de Sinal Mais Simples
Gerador de Sinal Mais Simples
Gerador de Sinal Mais Simples
Gerador de Sinal Mais Simples
Gerador de Sinal Mais Simples

Para o gerador de sinal mais simples, basta soldar o módulo AD9833 na parte traseira do Arduino Nano. Nenhum PCB é necessário.

O módulo AD9833 que escolhi é semelhante a este. Não estou dizendo que esse é o fornecedor melhor ou mais barato, mas você deve comprar um que se pareça com essa foto (ou a foto acima).

As conexões entre os módulos são:

  • terras conectadas juntas
  • D2 = FSync
  • D3 = Clk
  • D4 = Dados
  • D6 = Vcc de AD9833

O AD9833 é alimentado pelo pino de dados D6 do Arduino - o Arduino pode fornecer corrente suficiente. Eu adicionei um capacitor de desacoplamento de 100n porque pensei que "deveria", mas não vi nenhuma diferença - já existe um capacitor de desacoplamento na placa do módulo AD9833.

Se você fosse sofisticado, poderia se preocupar com "solo analógico" versus "solo digital", mas se fosse extravagante, gastaria mais de £ 4.

O gerador de sinais mais simples é controlado e alimentado por um cabo USB de um PC. O USB emula uma porta serial rodando a 115200bps (8 bits, sem paridade). Os comandos são:

  • '0'.. '9': altera o dígito para a matriz de frequência "min"
  • 'S': define a frequência AD9833 e produz uma onda senoidal
  • 'T': define a frequência e produz uma onda triangular
  • 'Q': define a frequência e produz uma onda quadrada
  • 'R': reinicie o AD9833
  • 'M': copia a matriz de frequência "min" para a matriz "max"
  • 'G': varre de "min" para "max" ao longo de 1 segundo
  • 'H': varrer de "min" para "max" ao longo de 5 segundos
  • 'I': varre de "min" para "max" ao longo de 20 segundos

O programa Arduino contém dois arrays de 6 caracteres "min" e "max. Se você transmitir um dígito, ele será deslocado para o array" min ". Se você enviar um 'S', os caracteres do array" min "serão convertidos em um frequência inteira longa e enviada para o AD9833. Então, o envio da string

002500S

irá definir a saída AD9833 para uma onda senoidal de 2500Hz. Você deve sempre enviar todos os 6 dígitos. A frequência mínima é 000001 e a frequência máxima é 999999.

Se você enviar um 'M', o array "min" será copiado para o array "max". Se você enviar um 'H', o AD9833 emitirá repetidamente uma frequência que aumenta gradualmente ao longo de 5 segundos. Ele começa na frequência "mínima" e 5 segundos depois está na frequência "máxima". Então

020000M000100SH

varre de 100 Hz a 20 kHz. A mudança de frequência é logarítmica, portanto, após 1 segundo, a frequência será de 288 Hz, após 2 segundos, 833 Hz, em seguida, 2402, 6931 e 20000. A frequência é alterada a cada milissegundo.

O loop para quando o Arduino recebe outro caractere, portanto, tome cuidado para não enviar o comando seguido por retorno de carro ou alimentação de linha. Esse caractere extra encerraria o loop. Se você estiver usando o Serial Monitor, há uma caixa no canto inferior direito que pode dizer, por exemplo, "Ambos NL e CR" que (eu acho) envia caracteres após o seu comando. Defina-o como "Sem fim de linha".

Você pode baixar o programa Windows EXE abaixo, que enviará os comandos necessários, ou você pode escrever o seu próprio. O arquivo Arduino INO também está aqui.

Etapa 2: adicionar um OLED

Adicionar um OLED
Adicionar um OLED
Adicionar um OLED
Adicionar um OLED
Adicionar um OLED
Adicionar um OLED

Se você adicionar um OLED e dois botões, o gerador de sinal pode funcionar sozinho, sem um PC.

Aqueles de vocês que leram meu osciloscópio Instructable reconhecerão a semelhança. O módulo AD9833 pode ser adicionado ao meu osciloscópio para produzir um "Osciloscópio e gerador de sinal em uma caixa de fósforos".

O display é um OLED de 1,3 rodando a 3,3 V que é controlado por um chip SH1106 por meio de um barramento I2C.

Pesquise no eBay por OLED de 1,3 ". Não quero recomendar um vendedor em particular porque os links ficam rapidamente desatualizados. Escolha um que se pareça com essa foto, diga" I2C "ou" IIC "e tenha quatro pinos identificados como VDD GND SCL SDA. (Alguns monitores parecem ter os pinos em uma ordem diferente. Verifique-os. O nome apropriado para o relógio do I2C é "SCL", mas no eBay as placas podem ser rotuladas como "SCK" como na foto.)

Uma descrição mais completa da biblioteca OLED está em meu osciloscópio Instructable na Etapa 8. Você deve baixar e instalar a biblioteca de driver SimpleSH1106.zip que está na Etapa 8. (Não quero fazer upload de outra cópia aqui e tenho que manter duas cópias.)

O arquivo INO pode ser baixado abaixo. Os números de pino usados para o OLED são declarados em torno da linha 70. Se você construiu meu "Osciloscópio e gerador de sinal em uma caixa de fósforos" e deseja testar este arquivo INO com ele, números de pino alternativos são habilitados por meio de um #define.

Eu mostrei um layout de stripboard para o circuito. Existem dois stripboards - um para o Nano e o AD9833 e outro para a tela. Eles devem formar um sanduíche. As placas são mostradas do lado do componente. Fios finos e flexíveis unem as duas placas. Conecte as placas com isoladores soldados. No meu diagrama, o cobre do stripboard é mostrado em ciano. As linhas vermelhas são links de fios no stripboard ou fios flexíveis que unem as placas. Eu não mostrei os cabos de alimentação e "sinal".

O módulo AD9833 é soldado no lado de cobre do stripboard - no lado oposto do Nano. Solde os pinos nas tiras de cobre e, em seguida, encaixe o AD9833 nelas e solde-o.

O visor mostra uma única frequência ou as frequências "mín" e "máx.".

Existem dois botões: um botão "Horizontal" para selecionar um dígito das frequências e um botão "Vertical" para alterar esse dígito.

Eu ligo o gerador de sinais do circuito que estou desenvolvendo - sempre tenho 5V disponíveis na minha estação de trabalho.

Etapa 3: Desenvolvimentos Futuros

Desenvolvimentos futuros
Desenvolvimentos futuros

Poderia ser alimentado por bateria? Sim, basta adicionar um PP3 de 9V conectado ao pino RAW do Nano. Normalmente usa 20mA.

Poderia ser alimentado por uma única célula de lítio? Não vejo porque não. Você deve conectar o OLED Vdd e seu resistor pull-up à bateria de 3,7 V (duvido que a saída de 3,3 V do Arduino funcione corretamente).

Um gerador de varredura é mais útil ao testar a resposta de frequência de um filtro se você puder representar graficamente a amplitude em relação à frequência. Medir a amplitude de um sinal é complicado - você tem que trocar a decadência do seu detector de envelope pela ondulação para baixas frequências e o tempo de resposta para altas frequências. Tendo construído seu detector de amplitude, você pode alimentar sua saída no ADC do Arduino do "Gerador de sinal mais simples" e enviar o resultado, junto com a frequência atual, para o PC.

Esta página é um ponto de partida útil ou pesquise no Google por "detector de envelope" ou "detector de pico". No circuito sugerido acima, você configuraria a frequência do sinal, esperaria que ele se estabilizasse, configuraria o pino A0 do Arduino para saída digital baixa, esperaria para descarregar C, configuraria A0 para entrada, espere e, em seguida, medir com o ADC. Deixe-me saber como você está.

Recomendado: