Hello, Guest!
 
 

 
 
  Objects Tiiips Categories
Yaesu G-5500DC: progetto Arduino tracking satellitare - Parte 1
"Descrizione"
by Al222 (24917 pt)
2026-Jun-05 19:06

Yaesu G-5500DC: progetto Arduino per tracking satellitare - Parte 1

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.

Componenti: Arduino Mega 2560 


Scheda PC817 i cui collegamenti vedremo nella Parte 2



Colleghiamo Arduino Mega 2560 a External control

Colleghiamo DIN 8 poli ad Arduino.

Fare solo questi due collegamenti:

Filo dal DINCollegare su Arduino MegaFunzione
Rosso dal pin 6A0Lettura azimut
Filo della calza dal pin 8GNDMassa comune

Meglio ancora, se hai una resistenza da 10 kΩ, metterla in serie così:

Pin 6 DIN / filo rosso → resistenza 10 kΩ → Arduino A0

La massa invece va diretta:

Pin 8 DIN / calza → Arduino GND

Per ora non collegare nessun altro filo.

Dopo il collegamento, controllare con il tester:

A0 e GND non devono essere in corto.

 caricare su Arduino Mega uno sketch solo per leggere A0.

Aprire Arduino IDE dal Desktop/Menu Start e caricare questo codice:

void setup() {
  Serial.begin(9600);
}

void loop() {
  int valore = analogRead(A0);
  float volt = valore * (5.0 / 1023.0);

  Serial.print("A0 = ");
  Serial.print(valore);
  Serial.print("   Volt = ");
  Serial.println(volt, 3);

  delay(500);
}

Poi fare così:

  1. Collegare Arduino Mega al PC con USB.
  2. In Arduino IDE, selezionare Tools → Board → Arduino Mega or Mega 2560.
  3. Selezionare Tools → Port → COM… corretta.
  4. Premere Sketch → Verify / Compile.
  5. Premere Upload.
  6. Aprire Tools → Serial Monitor.
  7. Impostare 9600 baud.

A questo punto dovresti vedere valori tipo:

A0 = xxx   Volt = x.xxx

Nota importante: se il rotore azimut non è ancora collegato al controller YAESU, la lettura del pin 6 potrebbe non rappresentare ancora un vero angolo. Però intanto verifichiamo che Arduino legga correttamente il segnale A0.

Possiamo collegare il rotore adesso, ma farei solo l’azimut.

Prima cosa da fare:

  1. Spegnere il controller YAESU.
  2. Staccare la spina di alimentazione del controller.
  3. Per sicurezza, scollegare momentaneamente anche la DIN 8 pin External Control da Arduino.

Poi collegare il rotore azimut così:

Rotore AZIMUTH → cavo 5 fili → morsettiera AZIMUTH sul retro del controller YAESU


Seguire i numeri (nel mio caso ho un cavo 5 poli 0.5mm2)

Rotore azimutController YAESU AZIMUTH
Pin 1  NeroMorsetto 1
Pin 2  Marrone  Morsetto 2
Pin 3  AzzurroMorsetto 3
Pin 4  GialloMorsetto 4
Pin 5 GrigioMorsetto 5

I pin 6 e 7 del connettore rotondo del rotore non si usano. Il manuale indica di collegare i fili rispettando gli stessi numeri tra connettore del rotore e morsetti posteriori del controller. 

Dopo il collegamento, prima di accendere, controllare con il tester che non ci siano corti evidenti tra i fili. Poi proveremo LEFT e RIGHT dai pulsanti frontali.

Rotore Elevazione→ cavo 5 fili → morsettiera Elevazione sul retro del controller YAESU

Per il rotore ELEVATION fai quindi:

Rotore elevazioneColoreController YAESU ELEVATION
Pin 1NeroMorsetto 1
Pin 2MarroneMorsetto 2
Pin 3AzzurroMorsetto 3
Pin 4GialloMorsetto 4
Pin 5GrigioMorsetto 5

L’importante è che sia sempre:

1 → 1, 2 → 2, 3 → 3, 4 → 4, 5 → 5

I pin 6 e 7 del connettore del rotore non si usano.

Prima di accendere: controller spento e scollegato, controllo continuità filo per filo e controllo che non ci siano corti tra morsetti vicini. Poi provare brevemente UP e DOWN dal pannello frontale.

 Completiamo il cavo DIN 8 poli External Control usando la mappatura già scelta.

Prima: controller YAESU spento e spina scollegata.

Pin DIN External ControlColoreFunzioneDestinazione
8Calza + filo già saldatoMassa comuneGND Arduino
6RossoFeedback azimutA0 Arduino
1NeroFeedback elevazioneA1 Arduino
2ViolaRIGHT / CWUscita optoisolatore
4AzzurroLEFT / CCWUscita optoisolatore
3GrigioUPUscita optoisolatore
5BiancoDOWNUscita optoisolatore
7Non collegato+8–13 VLasciare libero

Il prossimo collegamento utile è quindi:

Nero → pin 1 DIN → Arduino A1

Meglio con resistenza in serie:

Pin 1 / filo nero → resistenza 10 kΩ → Arduino A1

Poi saldare anche i fili dei comandi sul DIN, ma non collegarli ancora direttamente ad Arduino: andranno al modulo optoisolatore.

Dopo le saldature, fare questi controlli con il tester:

  • Pin 1 non in corto con pin 8
  • Pin 2, 3, 4, 5 non in corto con pin 8
  • Pin 7 non collegato
  • Ogni colore deve corrispondere al suo pin corretto.

test di lettura completa azimut + elevazione, senza comandare ancora i motori da Arduino.

Prima controllare:

ControlloEsito richiesto
Pin 7Non collegato
Pin 1 ↔ pin 8Non in corto
Pin 6 ↔ pin 8Non in corto
Pin 2, 3, 4, 5Fili isolati, non collegati ad Arduino

Collegamenti Arduino:

DIN External ControlArduino Mega
Pin 6 azimutA0
Pin 1 elevazioneA1
Pin 8 massaGND

Poi caricare questo sketch:

const int PIN_AZ = A0;

const int PIN_EL = A1;

const int SOGLIA = 2;              // Più sensibile

const float MIN_VOLT_ON = 0.10;    // Sotto questo valore considera il controller spento

int ultimoAz = -1;

int ultimoEl = -1;

int leggiMedia(int pin) {

  long somma = 0;

  for (int i = 0; i < 30; i++) {

    somma += analogRead(pin);

    delay(2);

  }

  return somma / 30;

}

void stampaValori(const char* evento, int az, int el) {

  float voltAz = az * (5.0 / 1023.0);

  float voltEl = el * (5.0 / 1023.0);

  Serial.print(evento);

  Serial.print("   AZ A0=");

  Serial.print(az);

  Serial.print(" Volt=");

  Serial.print(voltAz, 3);

  Serial.print("   |   EL A1=");

  Serial.print(el);

  Serial.print(" Volt=");

  Serial.println(voltEl, 3);

}

void setup() {

  Serial.begin(9600);

  delay(1000);

  ultimoAz = leggiMedia(PIN_AZ);

  ultimoEl = leggiMedia(PIN_EL);

  Serial.println("Monitor pronto.");

  stampaValori("Valori iniziali", ultimoAz, ultimoEl);

}

void loop() {

  int az = leggiMedia(PIN_AZ);

  int el = leggiMedia(PIN_EL);

  float voltAz = az * (5.0 / 1023.0);

  float voltEl = el * (5.0 / 1023.0);

  if (voltAz < MIN_VOLT_ON && voltEl < MIN_VOLT_ON) {

    delay(300);

    return;

  }

  int diffAz = az - ultimoAz;

  int diffEl = el - ultimoEl;

  if (abs(diffAz) >= SOGLIA || abs(diffEl) >= SOGLIA) {

    if (abs(diffAz) >= SOGLIA && abs(diffEl) >= SOGLIA) {

      stampaValori("AZ+EL mossi", az, el);

    } else if (abs(diffAz) >= SOGLIA) {

      if (diffAz > 0) stampaValori("AZ aumenta", az, el);

      else stampaValori("AZ diminuisce", az, el);

    } else if (abs(diffEl) >= SOGLIA) {

      if (diffEl > 0) stampaValori("EL aumenta", az, el);

      else stampaValori("EL diminuisce", az, el);

    }

    ultimoAz = az;

    ultimoEl = el;

  }

  delay(150);

}


}

Poi:

  1. Inserire la DIN 8 poli nella presa External Control.
  2. Accendere il controller YAESU.
  3. Aprire il Serial Monitor a 9600 baud.
  4. Muovere manualmente LEFT/RIGHT e verificare che cambi Volt AZ.
  5. Muovere manualmente UP/DOWN e verificare che cambi Volt EL.

Il manuale indica che il pin 6 dà la posizione azimut e il pin 1 dà la posizione elevazione, entrambi riferiti al pin 8 massa comune.

Se tutto funziona passiamo a collegare i rimanenti 4 fili del DIN 8, ma non direttamente ad Arduino: devono andare al lato uscita del modulo PC817.

Prima: spegnere il controller YAESU e staccare la spina.

Mappatura DIN 8 External Control:


Pin DINColore filoFunzioneStatoCollegamento
1NeroFeedback elevazioneGià collegatoArduino A1
2ViolaRIGHT / CWDa collegare oraUscita optoisolatore CH1
3GrigioUPDa collegare oraUscita optoisolatore CH3
4AzzurroLEFT / CCWDa collegare oraUscita optoisolatore CH2
5BiancoDOWNDa collegare oraUscita optoisolatore CH4
6RossoFeedback azimutGià collegatoArduino A0
7+8–13 V max 100 mANon collegareLasciare libero e isolato
8Calza + filo saldatoMassa comuneGià collegatoArduino GND e comune uscite optoisolatori

Quindi i fili ancora da collegare sono:

Viola = pin 2 RIGHT
Azzurro = pin 4 LEFT
Grigio = pin 3 UP
Bianco = pin 5 DOWN

A questo punto è necessario utilizzare il modulo optoisolatore PC 817 i cui collegamenti vedremo nella Parte 2

Evaluate