Controlador Profesional de Rotor de Antena – Integración Perfecta con Software de Seguimiento
Componentes y Suministros
- Arduino UNO × 1
- Potenciómetro rotativo (genérico, máx. 1Kohm, 500 Ohm funcionan mejor) × 2
- Encoder Rotativo con Pulsador × 2
- Protoboard (genérica) × 1
- Módulo Relé (Genérico) 2 módulos x 2 relés NO-Com-NC × 2
- MOSFET Canal N de Potencia (módulo min 12V/3A) × 2
Aplicaciones y Servicios Online
- Arduino IDE
Sobre este Proyecto
Última actualización: Noviembre 2021
Este proyecto empezó como entretenimiento y se convirtió en un equipo serio.
El Controlador permite posicionamiento manual de la antena mediante dos encoders rotativos (Azimut y Elevación). Puede rastrear satélites automáticamente cuando se conecta por USB a un PC ejecutando software de seguimiento de satélites.
Es compatible con todo software de seguimiento que use protocolo EasyComm2 / 9600 baudios: PstRotator, WXtrack, HRD, MacDoppler... Incluso WXtoIMG puede controlar el rotor. Funciona directamente con Orbitron usando un plugin DDE de https://tripsintech.com/orbitron-dde-azimuth-elevation-to-serial/
El controlador envía una respuesta por serie para que el software de seguimiento muestre la posición real de la antena en pantalla. De momento, solo PstRotator lo hace.
El código no usa ninguna librería (excepto para la LCD) y se ejecuta tal cual, con pines según el diagrama eléctrico. Si pulsas el botón del encoder de Azimut, todo movimiento de antena se detiene inmediatamente, y el comando de azimut se puede ajustar en pasos de 10 grados.
Encontrarás dos versiones: Una para motores DC, y otra para motores AC (solo relés). Esta última puede interconectarse con rotores de antena comerciales existentes.
La versión de motores DC tiene la ventaja de usar PWM para movimiento más suave/progresivo (Soft-Start / Soft-Stop). Emite una respuesta de potencia proporcional al error de ángulo (Objetivo ↔ Antena). Cuando la antena empieza a moverse, acelera progresivamente, y al acercarse a la posición deseada, frena hasta parada total. Hay una Zona Muerta ajustable donde la antena no se mueve por el más mínimo desplazamiento del objetivo.
Tengo una versión beta con Soft-Start/Soft-Stop para motores AC usando un módulo Dimmer AC, pero ahora solo funciona para azimut. Si quieres probarla, contáctame por email.
Si tienes sistema de elevación de 180°, avísame por email. También hay versión con precisión 0.1°, pero no la recomiendo a menos que tengas una lectura de potenciómetro extremadamente estable y un diseño de controlador paranoico. Encontrarás más versiones en mi web.
Tras terminar la construcción, debes aplicar los procedimientos de calibración:
- Calibración del potenciómetro (obligatoria): asegura lectura correcta de 0-359° / 0-90°, sin importar el potenciómetro usado.
- Calibración del motor (solo para ajustar Soft-Start/Stop): necesaria si no te gustan los ajustes por defecto.
Explicaciones más detalladas en los vídeos. Como el código ha mejorado con el tiempo y los vídeos no se pueden actualizar, consulta mi web para la info más reciente y experiencia personal: https://racov.ro/index.php/2020/12/09/arduino-based-antenna-rotator-part3-software-tracking-update/
Escríbeme si quieres saber más, porque esta plataforma no me avisa de nuevos comentarios. Intentaré resolver pequeños problemas lo mejor que pueda. YO3RAK@gmail.com
Muchas gracias a todos los que me enviaron feedback, ayudando a hacer este proyecto más fiable. ¡Cualquier feedback es muy apreciado!
Código
Versión para Motores DC (ant-rot-DC-nov2021)
Código completo para motores DC con salida PWM Soft-Start/Stop. Incluye: librerías Wire y LiquidCrystal_I2C, símbolos personalizados para flechas, calibración de potenciómetros, zona muerta, PWM proporcional al error de ángulo, lectura de encoders con interrupciones, comunicación serie EasyComm2, promediado de lecturas (25 muestras), y funciones de visualización en LCD.
Versión para Motores AC (ant-rot-AC-aug2021)
Código para motores AC con contactos secos (ON/OFF). Interfaz fácil con rotores comerciales. Similar a versión DC pero sin PWM, usando relés para dirección Izquierda/Derecha, Arriba/Abajo.
Procedimiento de Calibración de Potenciómetros
Procedimiento para calibrar límites AZ/EL (0-359° / 0-90°):
- Descomenta líneas de depuración en funciones
DisplAzimyDisplElevque imprimen lecturas analógicas crudas. - Sube código y abre Monitor Serie.
- Mueve antena a mínimos (0° azimut, 0° elevación). Anota valores (ej: AzMin=90, ElMin=10).
- Mueve antena a máximos (359° azimut, 90° elevación). Anota valores (ej: AzMax=1000, ElMax=992).
- En sección
// ANTENNA potentiometers CALIBRATION, introduce tus valores medidos. - Vuelve a comentar líneas de depuración y sube código de nuevo.
Procedimiento de Calibración de Motores
Configura parámetros para zona de aceleración/frenado (Soft-Start/Stop) y zona muerta:
- Azimut:
AzErr(zona muerta, default 8°),Amax(grados donde empieza frenado, default 25°),PwAzMin(potencia mínima %, default 30%),PwAzMax(potencia máxima %, default 100%) - Elevación:
ElErr(default 4°),Emax(default 15°),PwElMin(default 30%),PwElMax(default 100%)
No es estrictamente necesario, solo si no te gustan los valores por defecto. Asegúrate de hacer primero la Calibración de Potenciómetros.
Esquemáticos
Diagrama para motores DC: conexiones de módulos, encoders, LCD, relés, MOSFET, etc.
Diagrama para motores AC: contactos secos (ON/OFF), interfaz fácil con rotores comerciales.
Proceso de manufactura
- Control de Brillo LED con PWM mediante Pulsador en Arduino Mega
- Construye un Juego Giroscópico en Tiempo Real con Arduino Nano y Sensor MPU-6050
- Proyecto Sensor DHT11 Temperatura y Humedad con Indicadores LED y Altavoz Piezo
- Unopad: Controlador MIDI Arduino para Ableton Live sin complicaciones
- Construye un Iron Man animado con Arduino: componentes, sensores y guía paso a paso
- Sensor de obstáculos IR casero con Arduino – Tutorial fácil con LED IR y fotodiodo
- Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
- Controlador de Humidificador DIY con Arduino y Relé: Configuración Segura de Alto Voltaje
- Construye un Cubo LED 4x4x4 con Arduino Uno y 1Sheeld – Proyecto LED Interactivo
- Construye un volante joystick personalizado con Arduino para gaming
- Arduino 101: Construye un Podómetro con Sensor DHT11 y Pantalla LCD