Índice:

Analisador de Antena HF com Arduino e Módulo DDS: 6 etapas (com imagens)
Analisador de Antena HF com Arduino e Módulo DDS: 6 etapas (com imagens)

Vídeo: Analisador de Antena HF com Arduino e Módulo DDS: 6 etapas (com imagens)

Vídeo: Analisador de Antena HF com Arduino e Módulo DDS: 6 etapas (com imagens)
Vídeo: Analisador de antena com PIC/DDS para Radioamadores e afins! - Antenna Analyzer 2024, Novembro
Anonim
Analisador de Antena HF com Arduino e Módulo DDS
Analisador de Antena HF com Arduino e Módulo DDS
Analisador de Antena HF com Arduino e Módulo DDS
Analisador de Antena HF com Arduino e Módulo DDS

Oi

Neste Instructable, mostrarei como construí um analisador de antena de baixo custo que pode medir uma antena e exibir seu VSWR em qualquer uma ou todas as bandas de frequência de HF. Ele encontrará o VSWR mínimo e a frequência correspondente para cada banda, mas também exibirá um VSWR em tempo real para uma frequência selecionada pelo usuário para facilitar o ajuste da antena. Se estiver varrendo uma única banda de frequência, ele exibirá um gráfico de VSWR versus frequência. Ele também possui uma porta USB na parte traseira para saída de frequência e dados VSWR, para permitir uma plotagem de gráfico mais refinada em um PC. A porta USB também pode ser usada para atualizar o firmware, se necessário.

Recentemente entrei no rádio amador (porque gostei da ideia de comunicação ponto a ponto em grandes distâncias sem infraestrutura) e rapidamente fiz as seguintes observações:

1. Todas as comunicações mundiais que me interessam ocorrem nas bandas de HF (3-30 MHz)

2. Os transceptores de HF são muito caros e irão quebrar se você não os colocar em uma antena razoavelmente bem combinada

3. Em geral, espera-se que você monte sua própria antena HF com pedaços de arame estendidos no jardim (a menos que queira gastar ainda mais dinheiro do que gastou em 2).

4. Sua antena pode não ser compatível, mas você não saberá até tentar.

Agora, um purista provavelmente diria que se deve primeiro testar a antena em potência muito baixa na frequência de interesse e verificar o VSWR no medidor da plataforma para avaliar a qualidade da combinação. Eu realmente não tenho tempo para mexer com esse tipo de coisa para cada frequência que posso querer usar. O que eu realmente queria era um analisador de antena. Esses dispositivos podem testar a qualidade da combinação da antena em qualquer frequência nas bandas de HF. Infelizmente, eles também são muito caros, então comecei a pensar se poderia fazer os meus próprios. Me deparei com o excelente trabalho realizado por K6BEZ (ver https://www.hamstack.com/project_antenna_analyzer.html), que investigou o uso de um Arduino para controlar um módulo sintetizador digital direto barato (DDS). Ele logo abandonou o Arduino por motivos de custo, preferindo usar um PIC. Bem, em 2017 você pode comprar um Arduino Nano por cerca de £ 3,50, então achei que era hora de revisitar o trabalho dele, continuar de onde ele parou e ver o que eu poderia fazer (note que eu não sou o único quem fez isto: existem alguns exemplos muito bons que podem ser encontrados na Internet).

Atualização (29/7/2018) - este trabalho foi desenvolvido consideravelmente por bi3qwq, da China, que fez algumas melhorias realmente interessantes na interface do usuário, que gentilmente compartilhou. Ele projetou um PCB muito profissional (com um ótimo recurso de resistor de calibração) e fez uma construção realmente bonita. Para completar, ele preparou um esquema, que sei que vai deliciar muitos dos que comentaram anteriormente. Por favor, veja a seção de comentários para mais informações.

Atualização - recentemente estou entrando em 60 m, que o esboço original não cobriu. Então, agora eu carreguei a versão 7 do firmware, que adiciona as bandas de 160 me 60 m. Estes não são complementos; eles são totalmente integrados à operação do analisador. Tive a sorte de encontrar uma fonte u8glib que ainda era legível, mas me permitiu exibir dez bandas simultaneamente naquela pequena tela (embora não fosse monoespaço, o que causou algum sofrimento). Estimei os valores de calibração para as novas bandas, com base na interpolação / extrapolação dos valores de calibração existentes. Eu então verifiquei isso com resistores fixos e eles deram resultados muito bons.

Atualização - como várias pessoas perguntaram sobre os esquemas, o circuito de ponte Arduino / DDS / VSWR fundamental está praticamente inalterado em relação ao trabalho original do K6BEZ. Por favor, verifique o URL acima para seu esquema original no qual baseei este projeto. Eu adicionei um codificador, uma tela OLED e um firmware totalmente desenvolvido para proporcionar uma experiência de usuário sem esforço.

Atualização - Este sistema usa uma fonte de sinal DDS de voltagem muito baixa em conjunto com uma ponte resistiva contendo detectores de diodo. Assim, os diodos estão operando em suas regiões não lineares e minha primeira versão desse sistema tendia a sub-ler o VSWR. Como exemplo, uma carga de impedância de 16 ohms ou 160 ohms deve mostrar um VSWR de cerca de 3 em um sistema de 50 ohms; este medidor indicou um VSWR mais próximo de 2 nesta situação. Portanto, realizei uma calibração de software usando cargas conhecidas que parece ser uma solução eficaz para este problema. Isso é descrito na penúltima etapa deste instrutível e um esboço revisado foi carregado.

Atualização - recurso gráfico integrado adicionado a varreduras únicas, pois era muito útil para ser omitido, particularmente ao ajustar comprimentos de antena para VSWR mínimo: um gráfico fornece uma tendência instantaneamente visível.

Etapa 1: Compre suas coisas

Você precisará dos seguintes itens. A maioria deles pode ser obtida a baixo custo no Ebay. O item mais caro era a caixa, por cerca de £ 10! Pode ser possível substituir alguns itens (usei 47 Rs em vez de 50 Rs, por exemplo). Os diodos eram bastante incomuns (eu tive que comprar 5 da Itália) e valeria a pena substituí-los por itens mais facilmente disponíveis se você souber o que está fazendo.

  • Arduino Nano
  • Módulo DDS (Módulo gerador de sinal DDS AD9850 HC-SR08 sinal sinusoidal onda quadrada 0-40 MHz)
  • Tela OLED i2c de 1,3"
  • Op-amp MCP6002 (8 pinos)
  • 2 díodo AA143 desligado
  • Capacitores de cerâmica: 2 desligados 100 nF, 3 desligados 10 nF
  • 1 uF capacitor eletrolítico
  • Resistores: 3 de 50 R, 2 de 10 K, 2 de 100 K, 2 de 5 K, 2 de 648 R
  • Blocos de terminais de parafuso de passo de 2,54 mm: 3 de 2 pinos, 2 de 4 pinos
  • Fio de conexão de núcleo único
  • 702 ou fio de conexão semelhante
  • Stripboard
  • Faixa de cabeçalho quadrada (fêmea) para conectar o Arduino e o DDS - não compre o soquete redondo por engano!
  • Soquete de montagem em chassi SO-239
  • Codificador giratório (15 pulsos, 30 detenção) com interruptor e botão
  • 'Módulo' codificador rotativo barato (opcional)
  • Caixa de projeto
  • Interruptor
  • Mini-usb em ângulo reto para cabo de montagem em anteparo USB B (50 cm)
  • PP3 e clipe / suporte de bateria
  • Postes / separadores de montagem de PCB autoadesivos

Você também precisará de um ferro de solda e ferramentas eletrônicas. Uma impressora 3D e uma furadeira são úteis para o gabinete, embora, se você quisesse, provavelmente poderia montar tudo no stripboard e não se preocupar com uma caixa.

Naturalmente, você realiza este trabalho e explora os resultados gerados por sua própria conta e risco.

Etapa 2: Layout do Stripboard

Esquematize o Stripboard
Esquematize o Stripboard
Esquematize o Stripboard
Esquematize o Stripboard

Planeje como você vai organizar os componentes no stripboard. Você pode fazer isso sozinho, referindo-se ao esquema original do K6BEZ (que não possui um codificador ou tela - consulte a página 7 de https://www.hamstack.com/hs_projects/antenna_analyzer_docs.pdf), ou você pode economizar muito tempo e copie meu layout.

Faço esses layouts de maneira simples, usando papel quadriculado e lápis. Cada interseção representa um buraco de stripboard. As trilhas de cobre vão horizontalmente. Uma cruz representa uma pista quebrada (use uma broca de 6 mm ou a ferramenta adequada, se tiver uma). Linhas de círculos com uma caixa ao redor representam cabeçalhos. Caixas grandes com parafusos denotam os blocos de conectores. Observe que em meu diagrama há uma linha extra que passa horizontalmente no meio do tabuleiro. Deixe isso de fora quando estiver montando (está marcado como 'omitir esta linha').

Alguns dos componentes podem parecer estranhos. Isso ocorre porque o design evoluiu depois que o hardware básico funcionou (principalmente quando percebi que o codificador precisava de interrupções de hardware, por exemplo).

Ao soldar componentes na placa, eu uso Blu-Tak para prendê-los firmemente no lugar enquanto viro a placa para soldar as pernas.

Tentei minimizar a quantidade de fio que usei alinhando o Arduino e o módulo DDS e apenas usando o stripboard para conectar os pinos-chave. Não percebi na época que as interrupções de hardware necessárias para ler o codificador funcionam apenas nos pinos D2 e D3, então tive que mover o DDS RESET de sua conexão D3 original com um pouco de fio:

DDS RESET - Arduino D7

DDS SDAT - Arduino D4

DDS FQ. UD - Arduino D5

DDS SCLK - Arduino D6

Arduino D2 e D3 são usados para as entradas do codificador A e B. D11 é usado para a entrada da chave do codificador. O D12 não é usado, mas pensei em fazer um terminal de parafuso para ele de qualquer maneira, para expansão futura.

Arduino A4 e A5 fornecem os sinais SDA e SCL (I2C) para a tela OLED.

Arduino A0 e A1 pegam as entradas da ponte VSWR (via OPAMP).

Etapa 3: instale os módulos, anexe os periféricos e atualize o código

Instale os módulos, anexe os periféricos e atualize o código
Instale os módulos, anexe os periféricos e atualize o código

Vale a pena testar a placa antes de se dar ao trabalho de montá-la em um gabinete. Conecte os seguintes componentes usando fio flexível à placa usando os blocos de terminais de parafuso:

  • Display OLED de 1,3 "(SDA e SCL estão conectados ao pino A4 e A5 do Arduino, respectivamente; terra e Vcc vão para Arduino GND e + 5V, obviamente)
  • Codificador rotativo (isso precisa de um aterramento, duas linhas de sinal e uma linha de switch - você pode precisar inverter as linhas de switch se o codificador funcionar da maneira errada - conecte-os ao aterramento do Arduino, D2, D3 e D11 respectivamente). Observe que, para o meu trabalho de prototipagem, montei o codificador 15/30 em uma placa de módulo do codificador KH-XXX, pois os pinos nos codificadores simples são muito frágeis. Para o trabalho final, soldei os fios diretamente no codificador.
  • Bateria 9V
  • Soquete SO-239 - solde o pino central à linha de sinal da antena e use um terminal de anel M3 e parafuso para o aterramento da antena

Faça o flash do seguinte esboço no Arduino. Certifique-se também de incluir a excelente biblioteca de drivers OLED de Oli Kraus, ou a compilação irá travar e queimar:

Se o seu display OLED for ligeiramente diferente, você pode precisar de uma definição de configuração diferente no u8glib; isso está bem documentado no código de exemplo do Oli.

Etapa 4: coloque tudo em uma caixa bonita (opcional)

Coloque tudo em uma bela caixa (opcional)
Coloque tudo em uma bela caixa (opcional)
Coloque tudo em uma caixa bonita (opcional)
Coloque tudo em uma caixa bonita (opcional)
Coloque tudo em uma caixa bonita (opcional)
Coloque tudo em uma caixa bonita (opcional)
Coloque tudo em uma caixa bonita (opcional)
Coloque tudo em uma caixa bonita (opcional)

Considerei seriamente deixar o analisador como uma placa vazia, já que provavelmente seria usado apenas ocasionalmente. Pensando bem, porém, pensei que se estivesse trabalhando muito em uma única antena, ela poderia acabar sendo danificada. Então tudo foi em uma caixa. Não adianta entrar em detalhes sobre como isso foi feito, pois sua caixa provavelmente será diferente, mas alguns recursos importantes devem ser mencionados:

1. Use suportes de PCB autoadesivos para montar o stripboard. Eles tornam a vida muito fácil.

2. Use um cabo adaptador USB curto para trazer a porta USB do Arduino para a parte traseira do gabinete. Em seguida, é fácil acessar a porta serial para obter dados de frequência vs. VSWR e também para fazer o reflash do Arduino sem tirar a tampa.

3. Desenvolvi uma peça impressa em 3D personalizada para suportar o display OLED, pois não consegui encontrar nada na web. Este possui um recesso para permitir a inserção de um pedaço de acrílico de 2 mm para proteger a tela frágil. Ele pode ser montado com fita dupla-face ou parafusos auto-roscantes (com as abas em ambos os lados). Depois que a tela for instalada, você pode usar um fio elétrico (pense em um clipe de papel e um maçarico) para derreter os pinos do PLA na parte traseira da placa de circuito para proteger tudo. Aqui está o arquivo STL para qualquer pessoa interessada:

Etapa 5: Calibração

Calibração
Calibração

Originalmente, eu não fiz nenhuma calibração, mas descobri que o medidor VSWR estava consistentemente lendo baixo. Isso significava que, embora uma antena parecesse estar boa, o sintonizador automático do meu equipamento não era capaz de corresponder a ela. Este problema surge porque o módulo DDS emite um sinal de amplitude muito baixa (cerca de 0,5 Vpp a 3,5 MHz, rolando conforme a frequência aumenta). Os diodos detectores na ponte VSWR estão, portanto, operando em sua região não linear.

Existem duas soluções possíveis para isso. A primeira é encaixar um amplificador de banda larga na saída do DDS. Dispositivos potencialmente adequados estão disponíveis mais barato na China e irão aumentar a produção para cerca de 2 V pp. Eu comprei um desses, mas ainda não experimentei. Minha sensação é que mesmo essa amplitude será um pouco marginal e alguma não linearidade permanecerá. O segundo método é colocar cargas conhecidas na saída do medidor existente e registrar o VSWR exibido em cada banda de frequência. Isso permite que você construa curvas de correção para VSWR real versus relatado, que podem então ser colocadas no esboço do Arduino para aplicar a correção em tempo real.

Adotei o segundo método porque era fácil de fazer. Basta obter os seguintes resistores: 50, 100, 150 e 200 ohms. Neste instrumento de 50 ohms, eles corresponderão a VSWRs de 1, 2, 3 e 4 por definição. No esboço, há uma opção 'use_calibration'. Defina como BAIXO e carregue o esboço (que exibirá um aviso na tela inicial). Em seguida, realize medições no centro de cada banda de frequência para cada resistor. Use uma planilha para traçar o VSWR esperado e o exibido. Você pode então fazer um ajuste de curva logarítmica para cada banda de frequência, o que dá um multiplicador e interceptação da forma TrueVSWR = m.ln (MeasuredVSWR) + c. Esses valores devem ser carregados na matriz swr_results nas duas últimas colunas (consulte a declaração de comentário anterior no esboço). Este é um lugar estranho para colocá-los, mas eu estava com pressa e como essa variedade de lojas flutua, parecia uma escolha sensata na época. Em seguida, coloque o switch use_calibration de volta em HIGH, atualize o Arduino e pronto.

Observe que ao fazer as medições de frequência pontual, a calibração é aplicada para a escolha inicial da banda. Isso não será atualizado se você fizer alterações grosseiras na frequência.

Agora o medidor lê conforme o esperado para as cargas fixas e parece fazer sentido ao medir minhas antenas! Suspeito que não vou me incomodar em experimentar aquele amplificador de banda larga quando ele chegar …

Etapa 6: usando o analisador

Usando o analisador
Usando o analisador
Usando o analisador
Usando o analisador

Conecte uma antena por meio de um cabo PL-259 e ligue o dispositivo. Ele exibirá uma tela inicial e realizará automaticamente uma varredura de todas as bandas principais de HF. O visor mostra a frequência sob teste, a leitura atual do VSWR, a leitura mínima do VSWR e a frequência em que ocorreu. A fim de reduzir o ruído de medição, cinco medições são feitas de VSWR em cada ponto de frequência; o valor médio dessas cinco leituras é então passado por um filtro de média móvel de nove pontos em relação à frequência antes que o valor final seja exibido.

Se você quiser interromper essa varredura de todas as bandas, basta pressionar o botão do codificador. A varredura será interrompida e um resumo de todos os dados de banda coletados será exibido (com nulos para as bandas ainda não varridas). Um segundo toque abrirá o menu principal. As escolhas são feitas girando o codificador e pressionando-o no ponto apropriado. Existem três opções no menu principal:

A varredura de todas as bandas reiniciará a varredura de todas as bandas principais de HF. Quando terminar, ele exibirá a tela de resumo descrita acima. Escreva ou tire uma foto se quiser mantê-la.

A varredura de banda única permitirá que você selecione uma única banda com o codificador e, em seguida, faça a varredura. O comprimento de onda e a faixa de frequência são exibidos durante a seleção. Quando a varredura terminar, um segundo pressionamento do codificador exibirá um gráfico VSWR simples versus frequência da banda recém-varrida, com uma indicação numérica do VSWR mínimo e a frequência em que ocorreu. Isso é muito útil se você deseja saber se deve encurtar ou alongar seus braços dipolo, pois mostra a tendência VSWR com frequência; isso se perde com o relatório numérico simples.

A frequência única permite que você escolha uma única frequência fixa e, em seguida, atualize continuamente uma medição VSWR ao vivo, para fins de sintonização da antena em tempo real. Selecione primeiro a banda de frequência relevante; o display mostrará então a freqüência central da banda escolhida e uma leitura de VSWR ao vivo. A calibração de banda relevante é aplicada neste ponto. Um dos dígitos da frequência ficará sublinhado. Isso pode ser movido para a esquerda e para a direita com o codificador. Pressionar o codificador encoraja a linha; em seguida, girar o codificador reduzirá ou aumentará o dígito (0-9 sem agrupamento ou transporte). Pressione o codificador novamente para corrigir o dígito e vá para o próximo. Você pode acessar praticamente qualquer frequência em todo o espectro de HF usando este recurso - a seleção de banda no início apenas ajuda a chegar perto de onde você provavelmente deseja estar. Porém, há uma ressalva: a calibração da banda selecionada é carregada no início. Se você se afastar muito da banda selecionada, alterando os dígitos, a calibração se tornará menos válida, portanto, tente permanecer dentro da banda escolhida. Quando tiver terminado com este modo, mova o sublinhado totalmente para a direita até que esteja em 'sair' e pressione o codificador para retornar ao menu principal.

Se você conectar seu PC ao soquete USB na parte traseira do analisador (ou seja, no Arduino), você pode usar o monitor serial do Arduino para coletar os valores de frequência e VSWR durante qualquer operação de varredura (atualmente está definido para 9600, mas você pode mudar isso facilmente editando meu esboço). Os valores podem então ser colocados em uma planilha para que você possa traçar gráficos mais permanentes, etc.

A imagem mostra o resumo do VSWR para minha antena vertical de vara de pescar de 7,6 m com 9: 1 UNUN. Meu equipamento pode acomodar um SWR máximo de 3: 1 com sua unidade de sintonizador automático interno. Você pode ver que poderei ajustá-lo em todas as bandas, exceto 80 me 17 m. Portanto, agora posso relaxar sabendo que tenho uma antena multibanda transitável e não vou quebrar nada caro ao transmitir na maioria das bandas.

Boa sorte e espero que isso seja útil.

Recomendado: