mercoledì 14 agosto 2019

Arduino N° 10 - Radiotransponder con COR in bassa frequenza


Arduino N° 9

 Achille De Santis

Arduino N° 11




Questo SW può essere utile per realizzare rapidamente un modulo COR (Carrier Operated Relay) per il comando di un transponder RF a tre vie.
Utile soprattutto in situazioni di emergenza o di Protezione Civile, per realizzare una tratta di trasferimento VHF/UHF.

Fig. 1: schema applicativo del COR

Il firmware è stato da me ideato, realizzato e collaudato. Il programma, adeguatamente "strutturato" risulta molto efficiente e funzionale.

Sulle uscite, sono disponibili sia segnali "diretti" che "complementari" per una facile interfaccia con i dispositivi esterni da collegare.





v. anche: 

Dispositivo COR per Ripetitori o Transponder - RadioRama n° 95 agosto 2019


/* ---------------------------------- Inizio programma -----------------------------------------------
 * COR in bassa frequenza per Transponder Radio a tre moduli TRX.
 * Achille De Santis - tecnatron@gmail.com - V6.0 del 05-05-2019
 * prelevare i segnali di BF da ogni uscita altoparlante attraverso un potenziometro da 10 KOhm
 * I segnali di PTT sono "interbloccati".
 * La scansione ciclica della BF permette la rilevazione del segnale che, se presente, manda in 
 * trasmissione gli altri due moduli.
 * La sequenza di priorità è: 1,2,3.
 * Ridurre opportunamente il segnale di BF da iniettare sugli ingressi microfonici.
*/

// --------------- parametri di I/O ---------------------------
#define BF1   A1     // ingresso 1
#define PTT1  12    // uscita   1
#define PTT1A   7  // uscita ausiliaria invertita 1

#define BF2   A2     // ingresso 2
#define PTT2  11    // uscita   2
#define PTT2A   6  // uscita ausiliaria invertita 2

#define BF3   A3     // ingresso 3
#define PTT3  10    // uscita   3
#define PTT3A   5  // uscita ausiliaria invertita 3
// ---------------------------------------------------------------

const int soglia1=200;  // soglia di intervento I modulo
const int soglia2=200;  // soglia di intervento II modulo
const int soglia3=200;  // soglia di intervento III modulo
const int T1=200;         // tempo di ritardo rilascio portante

int S=0;

void attivalink (bool A, bool B, bool C) 
  {
    digitalWrite(PTT1, A);
    digitalWrite(PTT2, B);
    digitalWrite(PTT3, C);
 
    digitalWrite(PTT1A, !A);
    digitalWrite(PTT2A, !B);
    digitalWrite(PTT3A, !C);
  }

void disattiva()   { attivalink(0,0,0); }

void setup()
  {
    pinMode(BF1, INPUT);
    pinMode(BF2, INPUT);
    pinMode(BF3, INPUT);

    pinMode(PTT1, OUTPUT);
    pinMode(PTT2, OUTPUT);
    pinMode(PTT3, OUTPUT);

    pinMode(PTT1A, OUTPUT);
    pinMode(PTT2A, OUTPUT);
    pinMode(PTT3A, OUTPUT);
  }

void loop()
{
    S=analogRead(BF1);
    if (S>=soglia1) {attivalink(0,1,1);}
      else
      {S=analogRead(BF2);
          if (S>=soglia2)  {attivalink(1,0,1);}
            else
                {
                  S=analogRead(BF3);
            if (S>=soglia3)  {attivalink(1,1,0);}
                else {delay(T1); disattiva();}
                }
        }
}
// ------------------------------ fine programma ------------- tecnatronATgmail.com ------------------

Simulazione: Radiotransponder con COR in bassa frequenza

v. anche RadioRama n° 95-pag 57

Arduino N° 11

Nessun commento:

Posta un commento