Tabla de contenido:

Analizador de antena HF con módulo Arduino y DDS: 6 pasos (con imágenes)
Analizador de antena HF con módulo Arduino y DDS: 6 pasos (con imágenes)

Video: Analizador de antena HF con módulo Arduino y DDS: 6 pasos (con imágenes)

Video: Analizador de antena HF con módulo Arduino y DDS: 6 pasos (con imágenes)
Video: Charla 26 10 23 MICROONDAS, ¿por que hay menos usuarios? por EB5EA 2024, Mes de julio
Anonim
Analizador de antena HF con módulo Arduino y DDS
Analizador de antena HF con módulo Arduino y DDS
Analizador de antena HF con módulo Arduino y DDS
Analizador de antena HF con módulo Arduino y DDS

Hola

En este Instructable, le mostraré cómo construí un analizador de antenas de bajo costo que puede medir una antena y mostrar su VSWR en cualquiera o todas las bandas de frecuencia de HF. Encontrará el VSWR mínimo y la frecuencia correspondiente para cada banda, pero también mostrará un VSWR en tiempo real para una frecuencia seleccionada por el usuario para facilitar el ajuste de la antena. Si barre una sola banda de frecuencia, mostrará un gráfico de VSWR versus frecuencia. También tiene un puerto USB en la parte posterior para la salida de datos de frecuencia y VSWR, para permitir un trazado de gráficos más refinado en una PC. El puerto USB también se puede utilizar para actualizar el firmware si es necesario.

Recientemente me inicié en la radioafición (porque me gustaba la idea de la comunicación entre pares a grandes distancias sin infraestructura) y rápidamente hice las siguientes observaciones:

1. Todas las comunicaciones mundiales que me interesaron se realizan en las bandas de HF (3-30 MHz)

2. Los transceptores de HF son muy caros y se romperán si no los conecta a una antena razonablemente adecuada

3. Por lo general, se espera que instale su propia antena de HF con trozos de cable tendidos en el jardín (a menos que desee gastar aún más dinero del que gastó en 2).

4. Su antena puede no coincidir, pero no lo sabrá hasta que la pruebe.

Ahora, un purista probablemente diría que primero se debe probar la antena a muy baja potencia a la frecuencia de interés y verificar el VSWR en el medidor de la plataforma para evaluar la calidad de la coincidencia. Realmente no tengo tiempo para perder el tiempo con ese tipo de cosas para cada frecuencia que quiera usar. Lo que realmente quería era un analizador de antena. Estos dispositivos pueden probar la calidad de la correspondencia de la antena en cualquier frecuencia en las bandas de HF. Desafortunadamente, también son muy caros, así que me puse a considerar si podría hacer los míos. Me topé con el excelente trabajo realizado por K6BEZ (ver https://www.hamstack.com/project_antenna_analyzer.html), quien investigó el uso de un Arduino para controlar un módulo de sintetizador digital directo (DDS) barato. Pronto abandonó el Arduino por motivos de costo, prefiriendo usar un PIC. Bueno, en 2017 puedes comprar un Arduino Nano por alrededor de £ 3.50, así que pensé que era hora de revisar su trabajo, continuar donde lo dejó y ver qué se me ocurrió (tenga en cuenta que no soy el único quién ha hecho esto: hay algunos ejemplos muy buenos que se pueden encontrar en Internet).

Actualización (29/7/2018): este trabajo ha sido desarrollado considerablemente por bi3qwq, de China, quien ha realizado algunas mejoras realmente agradables en la interfaz de usuario, que amablemente compartió. Ha diseñado una PCB muy profesional (con una gran característica de resistencia de calibración) y ha hecho una construcción realmente atractiva. Para colmo ha preparado un esquema, que sé que hará las delicias de muchos de los que ya lo han comentado anteriormente. Consulte la sección de comentarios para obtener más información.

Actualización: he estado entrando en 60 m recientemente, que el boceto original no cubría. Así que ahora he subido la versión de firmware 7, que agrega las bandas de 160 my 60 m. Estos no son complementos; están completamente integrados en el funcionamiento del analizador. Fue una suerte que pude encontrar una fuente u8glib que aún era legible pero me permitió mostrar diez bandas simultáneamente en esa pequeña pantalla (aunque no era monoespacio, lo que causó cierto dolor). He estimado los valores de calibración para las nuevas bandas, basados en la interpolación / extrapolación de los valores de calibración existentes. Luego los comprobé con resistencias fijas y dan resultados bastante buenos.

Actualización: como varias personas han preguntado acerca de los esquemas, el circuito de puente fundamental Arduino / DDS / VSWR no se ha modificado en gran medida con respecto al trabajo original de K6BEZ. Consulte la URL anterior para ver su esquema original en el que basé este proyecto. Agregué un codificador, una pantalla OLED y un firmware completamente desarrollado para brindar una experiencia de usuario sin esfuerzo.

Actualización: este sistema utiliza una fuente de señal DDS de muy bajo voltaje junto con un puente resistivo que contiene detectores de diodos. Por lo tanto, los diodos están operando en sus regiones no lineales y mi primera versión de este sistema tendía a interpretar menos VSWR. Por ejemplo, una carga de impedancia de 16 ohmios o 160 ohmios debería mostrar un VSWR de aproximadamente 3 en un sistema de 50 ohmios; este medidor indicó un VSWR más cercano a 2 en esta situación. Por lo tanto, llevé a cabo una calibración de software utilizando cargas conocidas que parece ser una solución eficaz para este problema. Esto se describe en el penúltimo paso de este instructivo y se ha subido un boceto revisado.

Actualización: función de gráficos incorporada agregada a los barridos individuales, ya que era demasiado útil para omitirla, particularmente cuando se sintonizan las longitudes de las antenas para obtener un VSWR mínimo: un gráfico le brinda una tendencia visible al instante.

Paso 1: compra tus cosas

Necesitará los siguientes elementos. La mayoría de ellos se pueden obtener de forma económica en Ebay. El artículo individual más caro fue la caja, ¡con un precio de casi 10 libras esterlinas! Podría ser posible sustituir algunos artículos (usé 47 R en lugar de 50 R, por ejemplo). Los diodos eran bastante inusuales (tuve que comprar 5 de Italia) y valdría la pena sustituirlos por artículos más fácilmente disponibles si sabe lo que está haciendo.

  • Arduino Nano
  • Módulo DDS (Módulo generador de señal DDS AD9850 HC-SR08 Señal Sine Square Wave 0-40MHz)
  • Pantalla OLED i2c de 1.3"
  • Amplificador operacional MCP6002 (8 pines)
  • 2 diodos AA143
  • Condensadores cerámicos: 2 de 100 nF, 3 de 10 nF
  • Condensador electrolítico de 1 uF
  • Resistencias: 3 de 50 R, 2 de 10 K, 2 de 100 K, 2 de 5 K, 2 de 648 R
  • Bloques de terminales de tornillo de paso de 2,54 mm: 3 de 2 pines, 2 de 4 pines
  • Alambre de conexión de un solo núcleo
  • 702 o cable de conexión similar
  • Stripboard
  • Tira de encabezado cuadrada (hembra) para enchufar Arduino y DDS, ¡no compre el enchufe redondo por error!
  • Zócalo para montaje en chasis SO-239
  • Codificador rotatorio (15 pulsos, 30 retén) con interruptor de presión y perilla
  • 'Módulo' de codificador rotatorio económico (opcional)
  • Caja de proyecto
  • Interruptor de palanca
  • Cable de montaje en mamparo de mini-usb a USB B en ángulo recto (50 cm)
  • PP3 y clip / soporte de batería
  • Postes / separadores de montaje de PCB autoadhesivos

También necesitará un soldador y herramientas electrónicas. Una impresora 3D y un taladro de pilar son útiles para el gabinete, aunque si lo desea, probablemente podría ensamblar todo en el tablero sin molestarse con una caja.

Naturalmente, usted emprende este trabajo y explota los resultados generados bajo su propio riesgo.

Paso 2: Diseñe el Stripboard

Diseñe el Stripboard
Diseñe el Stripboard
Diseñe el Stripboard
Diseñe el Stripboard

Planifique cómo va a colocar los componentes en el tablero. Puede hacerlo usted mismo, consultando el esquema original de K6BEZ (que carece de codificador o pantalla; consulte la página 7 de https://www.hamstack.com/hs_projects/antenna_analyzer_docs.pdf), o puede ahorrar mucho tiempo y copiar mi diseño.

Hago estos diseños de forma sencilla, utilizando papel cuadriculado y un lápiz. Cada intersección representa un agujero de tablilla. Las pistas de cobre van horizontalmente. Una cruz representa una pista rota (use un taladro de 6 mm o la herramienta adecuada si tiene una). Las líneas de círculos con un recuadro alrededor representan encabezados. Las cajas grandes con tornillos indican los bloques de conectores. Tenga en cuenta que en mi diagrama hay una línea adicional que pasa horizontalmente por el medio del tablero. Deje esto fuera cuando lo esté juntando (está marcado como 'omitir esta línea').

Algunos de los componentes pueden parecer distribuidos de forma extraña. Esto se debe a que el diseño evolucionó una vez que conseguí que funcionara el hardware básico (especialmente cuando me di cuenta de que el codificador necesitaba interrupciones de hardware, por ejemplo).

Cuando sueldo componentes en la placa, utilizo Blu-Tak para mantenerlos firmemente en su lugar mientras doy la vuelta a la placa para soldar las patas.

Traté de minimizar la cantidad de cable que usé alineando el Arduino y el módulo DDS y simplemente usando el tablero para conectar los pines clave. En ese momento no me di cuenta de que las interrupciones de hardware necesarias para leer el codificador solo funcionan en los pines D2 y D3, por lo que tuve que mover DDS RESET de su conexión D3 original con un poco de cable:

RESTABLECIMIENTO DE DDS - Arduino D7

DDS SDAT - Arduino D4

DDS FQ. UD - Arduino D5

DDS SCLK - Arduino D6

Arduino D2 y D3 se utilizan para las entradas del codificador A y B. D11 se utiliza para la entrada del interruptor del codificador. D12 no se usa, pero pensé en hacer un terminal de tornillo para él de todos modos, para una futura expansión.

Arduino A4 y A5 proporcionan las señales SDA y SCL (I2C) para la pantalla OLED.

Arduino A0 y A1 toman las entradas del puente VSWR (a través del OPAMP).

Paso 3: Instale los módulos, conecte los periféricos y actualice el código

Instale los módulos, conecte los periféricos y actualice el código
Instale los módulos, conecte los periféricos y actualice el código

Vale la pena probar la placa antes de tomarse la molestia de montarla en un gabinete. Conecte los siguientes componentes usando un cable flexible a la placa usando los bloques de terminales de tornillo:

  • Pantalla OLED de 1.3 "(SDA y SCL están conectados a Arduino pin A4 y A5 respectivamente; tierra y Vcc van a Arduino GND y + 5V, obviamente)
  • Codificador rotatorio (esto necesita una tierra, dos líneas de señal y una línea de interruptor; es posible que deba girar las líneas de interruptor si el codificador funciona de manera incorrecta; conéctelas a la tierra de Arduino, D2, D3 y D11 respectivamente). Tenga en cuenta que para mi trabajo de creación de prototipos, monté el codificador 15/30 en una placa de módulo de codificador KH-XXX, ya que los pines de los codificadores desnudos son muy endebles. Para el trabajo final, soldé cables directamente al codificador.
  • Batería de 9V
  • Toma SO-239: suelde la clavija central a la línea de señal de la antena y use un terminal de anillo M3 y un tornillo para la conexión a tierra de la antena.

Actualice el siguiente boceto en el Arduino. También asegúrese de haber incluido la muy buena biblioteca de controladores OLED de Oli Kraus, o la compilación se bloqueará y se quemará:

Si su pantalla OLED es ligeramente diferente, es posible que necesite una configuración diferente en u8glib; esto está bien documentado en el código de ejemplo de Oli.

Paso 4: Ponlo todo en una bonita caja (opcional)

Ponlo todo en una bonita caja (opcional)
Ponlo todo en una bonita caja (opcional)
Ponlo todo en una bonita caja (opcional)
Ponlo todo en una bonita caja (opcional)
Ponlo todo en una bonita caja (opcional)
Ponlo todo en una bonita caja (opcional)
Ponlo todo en una bonita caja (opcional)
Ponlo todo en una bonita caja (opcional)

Consideré seriamente dejar el analizador como un tablero desnudo, ya que probablemente solo se usaría ocasionalmente. Sin embargo, pensándolo bien, pensé que si estaba trabajando mucho en una sola antena, podría terminar dañándose. Entonces todo fue en una caja. No tiene sentido entrar en detalles sobre cómo se hizo esto, ya que su caja probablemente será diferente, pero vale la pena mencionar algunas características clave:

1. Utilice separadores de placa de circuito impreso autoadhesivos para montar el tablero. Hacen la vida realmente fácil.

2. Utilice un cable adaptador USB corto para sacar el puerto USB Arduino a la parte posterior del gabinete. Entonces es fácil acceder al puerto serie para obtener la frecuencia frente a los datos VSWR y también volver a flashear el Arduino sin quitar la tapa.

3. Desarrollé una pieza impresa en 3D personalizada para admitir la pantalla OLED, ya que no pude encontrar nada en la web. Tiene un hueco que permite insertar una pieza de acrílico de 2 mm para proteger la frágil pantalla. Puede montarse con cinta adhesiva de doble cara o tornillos autorroscantes (con las pestañas a cada lado). Una vez que se ha instalado la pantalla, puede usar un cable caliente (piense en un clip y una lámpara de soplado) para derretir los pines de PLA en la parte posterior de la placa de circuito para asegurar todo. Aquí está el archivo STL para cualquiera que esté interesado:

Paso 5: Calibración

Calibración
Calibración

Originalmente no hice ninguna calibración, pero descubrí que el medidor VSWR estaba constantemente leyendo bajo. Esto significaba que, aunque una antena parecía estar bien, el sintonizador automático de mi equipo no podía coincidir con ella. Este problema surge porque el módulo DDS emite una señal de amplitud muy baja (alrededor de 0,5 Vpp a 3,5 MHz, disminuyendo a medida que aumenta la frecuencia). Por tanto, los diodos detectores del puente VSWR funcionan en su región no lineal.

Hay dos posibles soluciones para esto. El primero es instalar un amplificador de banda ancha a la salida del DDS. Los dispositivos potencialmente adecuados están disponibles a bajo precio en China y aumentarán la salida a aproximadamente 2 V pp. He pedido uno de estos, pero aún no lo he probado. Mi sensación es que incluso esta amplitud será un poco marginal y permanecerá algo de no linealidad. El segundo método es poner cargas conocidas en la salida del medidor existente y registrar el VSWR mostrado en cada banda de frecuencia. Esto le permite construir curvas de corrección para VSWR real versus reportado, que luego se pueden colocar en el boceto de Arduino para aplicar la corrección sobre la marcha.

Adopté el segundo método porque era fácil de hacer. Basta con conseguir las siguientes resistencias: 50, 100, 150 y 200 ohmios. En este instrumento de 50 ohmios, estos corresponderán a VSWR de 1, 2, 3 y 4 por definición. En el boceto hay un interruptor 'use_calibration'. Establezca esto en BAJO y cargue el boceto (que mostrará una advertencia en la pantalla de inicio). Luego, realice mediciones en el centro de cada banda de frecuencia para cada resistencia. Utilice una hoja de cálculo para trazar el VSWR esperado frente al mostrado. Luego, puede hacer un ajuste de curva logarítmica para cada banda de frecuencia, lo que da un multiplicador y una intersección de la forma TrueVSWR = m.ln (MeasuredVSWR) + c. Estos valores deben cargarse en la matriz swr_results en las dos últimas columnas (consulte la declaración de comentario anterior en el esquema). Este es un lugar extraño para colocarlos, pero tenía prisa y, como esta matriz almacena flota, me pareció una elección sensata en ese momento. Luego, vuelva a colocar el interruptor use_calibration en HIGH, vuelva a flashear el Arduino y listo.

Tenga en cuenta que al realizar las mediciones de frecuencia puntual, la calibración se aplica para la elección inicial de banda. Esto no se actualizará si realiza cambios brutos en la frecuencia.

¡Ahora el medidor lee como se esperaba para las cargas fijas y parece tener sentido al medir mis antenas! Sospecho que no me molestaré en probar ese amplificador de banda ancha cuando llegue …

Paso 6: uso del analizador

Usando el analizador
Usando el analizador
Usando el analizador
Usando el analizador

Conecte una antena a través de un cable PL-259 y encienda el dispositivo. Mostrará una pantalla de bienvenida y luego realizará automáticamente un barrido de todas las bandas de HF principales. La pantalla muestra la frecuencia bajo prueba, la lectura actual de VSWR, la lectura mínima de VSWR y la frecuencia a la que ocurrió. Para reducir el ruido de medición, se toman cinco mediciones de VSWR en cada punto de frecuencia; el valor medio de estas cinco lecturas se pasa a través de un filtro de media móvil de nueve puntos con respecto a la frecuencia antes de que se muestre el valor final.

Si desea detener este barrido de todas las bandas, simplemente presione la perilla del codificador. El barrido se detendrá y se mostrará un resumen de todos los datos de banda recopilados (con valores nulos para aquellas bandas que aún no se han barrido). Una segunda pulsación hará que aparezca el menú principal. Las elecciones se realizan girando el codificador y luego presionándolo en el punto apropiado. Hay tres opciones en el menú principal:

El barrido de todas las bandas reiniciará el barrido de todas las bandas principales de HF. Cuando finalice, mostrará la pantalla de resumen descrita anteriormente. Escriba esto o tome una foto si desea conservarla.

El barrido de una sola banda le permitirá seleccionar una sola banda con el codificador y luego barrerla. Tanto la longitud de onda como el rango de frecuencia se muestran al realizar la selección. Cuando el barrido haya finalizado, una segunda pulsación del codificador mostrará un gráfico simple de VSWR versus frecuencia de la banda recién barrida, con una indicación numérica del VSWR mínimo y la frecuencia en la que ocurrió. Esto es muy útil si desea saber si acortar o alargar sus brazos dipolos, ya que muestra la tendencia VSWR con frecuencia; esto se pierde con el simple informe numérico.

Una sola frecuencia le permite elegir una sola frecuencia fija y luego actualiza continuamente una medición de VSWR en vivo, con el fin de sintonizar la antena en tiempo real. Primero seleccione la banda de frecuencia relevante; la pantalla mostrará la frecuencia central de la banda elegida y una lectura VSWR en vivo. En este punto se aplica la calibración de banda correspondiente. Se subrayará uno de los dígitos de la frecuencia. Esto se puede mover hacia la izquierda y hacia la derecha con el codificador. Presionar el codificador envalentona la línea; luego, al girar el codificador, se reducirá o aumentará el dígito (0-9 sin envoltura ni acarreo). Presione el codificador nuevamente para fijar el dígito, luego continúe con el siguiente. Puede acceder a prácticamente cualquier frecuencia en todo el espectro de HF utilizando esta función: la selección de banda al principio solo lo ayuda a acercarse a donde probablemente desee estar. Sin embargo, hay una advertencia: la calibración de la banda seleccionada se carga al principio. Si se aleja demasiado de la banda seleccionada cambiando los dígitos, la calibración será menos válida, así que trate de permanecer dentro de la banda elegida. Cuando haya terminado con este modo, mueva el guión bajo completamente hacia la derecha hasta que esté debajo de 'salir', luego presione el codificador para regresar al menú principal.

Si conecta su PC a la toma USB en la parte posterior del analizador (es decir, en el Arduino), puede usar el monitor serial Arduino para recopilar valores de frecuencia versus VSWR durante cualquier operación de barrido (actualmente está configurado en 9600 pero puede cambiar eso fácilmente editando mi boceto). Los valores se pueden colocar en una hoja de cálculo para que pueda trazar gráficos más permanentes, etc.

La captura de pantalla muestra el resumen de VSWR para mi antena vertical de caña de pescar de 7,6 m con UNUN 9: 1. Mi equipo puede acomodar una ROE máxima de 3: 1 con su unidad interna de sintonizador automático. Puede ver que podré sintonizarlo en todas las bandas excepto en 80 my 17 m. Así que ahora puedo relajarme sabiendo que tengo una antena multibanda aceptable y no voy a romper nada caro al transmitir en la mayoría de las bandas.

Buena suerte y espero que te sea de utilidad.

Recomendado: