| "Descrizione" by Al222 (24917 pt) | 2026-Jun-04 09:10 |
In questo progetto voglio realizzare un’interfaccia economica e modificabile per comandare il rotore Yaesu G-5500DC con Arduino e Gpredict, come alternativa a soluzioni commerciali già pronte come ERC-DUO o RTC-200. L’obiettivo è creare un sistema in grado di gestire azimut ed elevazione per il tracking satellitare, mantenendo però la possibilità (a differenza di ERC-DUO o RTC-200) di modificare liberamente il firmware, aggiungere funzioni personalizzate, regolare la logica di movimento e adattare il progetto alle proprie esigenze.
Avviso importante
Questo progetto viene sviluppato giorno dopo giorno, con prove progressive e verifiche pratiche sul campo. Non si tratta ancora di una guida definitiva, ma di un percorso sperimentale per realizzare un’interfaccia economica, modificabile e personalizzabile per comandare il rotore Yaesu G-5500DC con Arduino, Gpredict e, successivamente, altri software compatibili.
Ogni collegamento deve essere controllato con attenzione prima di alimentare il sistema. Arduino non deve comandare direttamente i motori del rotore, ma deve interfacciarsi con la presa External Control del controller Yaesu, simulando i comandi esterni e leggendo le posizioni di azimut ed elevazione.
Il progetto sarà aggiornato passo dopo passo, man mano che verranno effettuati nuovi test, corrette eventuali imprecisioni e aggiunte nuove funzioni.
Yaesu G-5500DC: progetto Arduino per tracking satellitare - Parte 2
Per il nostro progetto erano sufficienti 4 canali, ma un modulo PC817 a 8 canali lascia canali liberi per usi futuri, ad esempio LED errore, fine corsa, stop emergenza, abilitazione tracking, ecc.

Sul modulo PC817, ogni uscita deve comportarsi come un contatto che chiude verso massa:
Lato basso della scheda = ingressi Arduino
Sono quelli scritti IN1 G, IN2 G, IN3 G…
Lato alto della scheda = uscite verso YAESU
Sono quelli scritti U1 G, U2 G, U3 G…
Sequenza corretta:
Per il primo test colleghiamo solo RIGHT, cioè un canale.
| Funzione | Arduino Mega | Modulo PC817 ingresso | Modulo PC817 uscita | DIN External Control |
|---|---|---|---|---|
| RIGHT / CW | Pin digitale 22 | IN1 | U1 | Pin 2 viola |
| Massa Arduino | GND | G vicino a IN1 | — | — |
| Massa YAESU | — | — | G vicino a U1 | Pin 8 calza/GND |
Quindi:
Arduino 22 → IN1
Arduino GND → G basso vicino a IN1
U1 alto → filo viola pin 2 DIN
G alto vicino a U1 → calza/pin 8 DIN
Prima proviamo solo questo canale. Poi con uno sketch facciamo attivare RIGHT per 1 secondo e vediamo se il rotore azimut gira. Non collegare ancora LEFT, UP e DOWN.
Collegare Arduino al PC via USB.
Accendere il controller YAESU.
Accendere il controller YAESU.
Per il primo test conviene usare un pin digitale facile da individuare su Arduino Mega. In questo caso è stato usato il pin D8, cioè il pin digitale 8 presente nella fila dei pin digitali/PWM.
Il primo collegamento di prova serve solo a comandare RIGHT / CW, quindi la rotazione verso destra dell’azimut.
Collegamenti del primo canale:
| Funzione | Collegamento |
|---|---|
| Comando Arduino | Arduino D8 → IN1 del modulo PC817 |
| Massa Arduino | Arduino GND → G vicino a IN1 |
| Comando RIGHT YAESU | U1 del modulo PC817 → filo viola, pin 2 del DIN 8 |
| Massa External Control | G vicino a U1 → calza / pin 8 del DIN 8 |
In questo modo Arduino non invia tensione direttamente al controller YAESU, ma attiva l’optoisolatore, che chiude il comando RIGHT verso la massa comune della presa External Control.
Per il test del comando RIGHT è stato usato questo sketch:
const int PIN_RIGHT = 8;
void setup() {
Serial.begin(9600);
pinMode(PIN_RIGHT, OUTPUT);
digitalWrite(PIN_RIGHT, LOW); // Comando spento
Serial.println("Test RIGHT pronto.");
Serial.println("Scrivere R e premere Invio per attivare RIGHT per 1 secondo.");
}
void loop() {
if (Serial.available() > 0) {
char comando = Serial.read();
if (comando == 'R' || comando == 'r') {
Serial.println("RIGHT attivo per 1 secondo");
digitalWrite(PIN_RIGHT, HIGH); // PC817 attivo
delay(1000);
digitalWrite(PIN_RIGHT, LOW); // PC817 spento
Serial.println("RIGHT spento");
}
}
}
Dopo avere caricato lo sketch con Arduino IDE, aprire il Serial Monitor a 9600 baud.
Nel campo di invio del Serial Monitor scrivere:
R
Premere Invio.
Se il collegamento è corretto, il LED del canale IN1 sul modulo PC817 si accende per circa 1 secondo, il rotore azimut gira verso destra e poi si ferma. Quando il comando termina, il LED del PC817 si spegne e il rotore si arresta.
Questo conferma che il comando:
Arduino D8 → PC817 IN1 → U1 → pin 2 External Control → RIGHT/CW
funziona correttamente.
Dopo avere verificato il comando RIGHT, si possono collegare anche gli altri comandi usando lo stesso schema.
Tabella completa dei comandi:
| Comando | Pin Arduino Mega | Ingresso PC817 | Uscita PC817 | Pin DIN 8 External Control | Colore filo |
|---|---|---|---|---|---|
| RIGHT / CW | D8 | IN1 | U1 | 2 | Viola |
| LEFT / CCW | D9 | IN2 | U2 | 4 | Azzurro |
| UP | D10 | IN3 | U3 | 3 | Grigio |
| DOWN | D11 | IN4 | U4 | 5 | Bianco |
La massa comune della presa External Control resta sempre:
Pin 8 DIN / calza → G del modulo PC817 / GND Arduino
Sul modulo usato in questa prova, le masse G del lato ingressi e del lato uscite risultano collegate tra loro. Questo significa che il modulo non lavora come isolamento galvanico completo, ma resta comunque utile come interfaccia di comando tra Arduino e il controller YAESU.
Per completare anche le letture di posizione, collegare:
| Filo | Pin DIN 8 | Funzione | Arduino Mega |
|---|---|---|---|
| Rosso | 6 | Feedback azimut | A0 |
| Nero | 1 | Feedback elevazione | A1 |
| Calza | 8 | Massa comune | GND |
Il pin 7 del DIN 8 non deve essere collegato.
A questo punto il sistema dispone di:
| Funzione | Stato |
|---|---|
| Lettura azimut | Pin 6 → Arduino A0 |
| Lettura elevazione | Pin 1 → Arduino A1 |
| Comando RIGHT | Arduino D8 → PC817 → pin 2 |
| Comando LEFT | Arduino D9 → PC817 → pin 4 |
| Comando UP | Arduino D10 → PC817 → pin 3 |
| Comando DOWN | Arduino D11 → PC817 → pin 5 |
| Massa comune | Pin 8 → GND |
Il passo successivo sarà verificare separatamente i comandi LEFT, UP e DOWN, sempre con impulsi brevi di circa 1 secondo, prima di passare al firmware completo per il tracking automatico con Gpredict.
Queste sono le due tabelle riepilogative corrette per il sistema completo.
Arduino Mega → modulo PC817
| Funzione | Arduino Mega | Modulo PC817 lato ingresso |
|---|---|---|
| RIGHT / CW | D8 | IN1 |
| LEFT / CCW | D9 | IN2 |
| UP | D10 | IN3 |
| DOWN | D11 | IN4 |
| Massa comune | GND | G del modulo PC817 |
Modulo PC817 → DIN 8 External Control YAESU
| Funzione | Modulo PC817 lato uscita | Pin DIN 8 | Colore filo |
|---|---|---|---|
| RIGHT / CW | U1 | 2 | Viola |
| LEFT / CCW | U2 | 4 | Azzurro |
| UP | U3 | 3 | Grigio |
| DOWN | U4 | 5 | Bianco |
| Massa comune | G del modulo PC817 | 8 | Calza / GND |
E i due fili di lettura posizione, che non passano dal PC817:
| Funzione | Pin DIN 8 | Colore filo | Arduino Mega |
|---|---|---|---|
| Feedback azimut | 6 | Rosso | A0 |
| Feedback elevazione | 1 | Nero | A1 |
| Pin 7 | 7 | — | Non collegare |
Il Pin 7 resta quindi non collegato.
Passiamo alla Parte 3 con le calibrazioni, Hamlib e Gpredict.
| Evaluate |