mercoledì 3 luglio 2019

Arduino N° 4 - Beacon CW modulato in BF


 Achille De Santis








Eccoci alla quarta puntata di applicazioni con Arduino.

Questo beacon modula la portante con un segnale fonico (in bassa frequenza).

E', altresì, dotato di due comandi complementari per l'attivazione del PTT del trasmettitore. Si può scegliere l'uno o l'altro, secondo la necessità.

Se la nota modulante è troppo robusta si può attenuare.
E' conveniente inserire un condensatore all'uscita della modulante.
Buon lavoro!




* Questo sketch non è adatto per Arduino DUE!

/*----------------------------- Inizio Programma --------------------------------
 *  Achille De Santis 20-06-2019
 *  Beacon CW  Fonia - IU0EUF.
 *  - 2 linee di uscita per il comando di PTT (complementari)
 *  - 1 linea di uscita per il testo CW_BF
 *  - Testo beacon1:                                    IU0EUF / JN61KL      (da modificare!)
 *  il messaggio di identificazione viene trasmesso ciclicamente in audio Morse ogni 10 minuti;
 *  pin 13 = uscita del testo beacon;
 *  pin 3, 11 = uscite per il comando di PTT,
 *  -------------------------------------------------
*/

// -------------------------------- Parametri ----------------------------------------
#define   pin   13         // Uscita testo beacon sul piedino 13.
#define   ptt1   3         //  Uscita comando ptt1 sul piedino 3.
#define   ptt2  11        // Uscita comando ptt2 ausiliario.

const int TA= 10;          // 10 minuti di pausa
const int freq = 800;     // frequenza della nota di bassa frequenza (audio)
const int T = 100;         // base tempi T.

// ---------------------------- Fine parametri --------------------------------------

const int T2 = 2*T;
const int T3 = 3*T;
const int T4 = 4*T;
const int TS= 60*1000*TA;

void genera(int T1)
    {
       tone(pin, freq);  delay(T1);
       noTone(pin);      delay(T);
    }

void punto()         {genera(T);}
void linea()         {genera(T3);}

void DE()
    {
       linea(); punto(); punto();   delay(T2);                        // D
       punto();                             delay(T4);                        // E
    }

void K()
    {       linea(); punto(); linea(); delay(T4);     }              // K

void CALL()
  {
    // ----------------------- Da modificare -------------------------
    punto(); punto();                                      delay(T2);    // I
    punto(); punto(); linea();                         delay(T2);    // U
    linea(); linea(); linea(); linea(); linea();   delay(T2);    // 0
    punto();                                                    delay(T2);    // E
    punto(); punto(); linea();                         delay(T2);    // U
    punto(); punto(); linea(); punto();           delay(T4);     // F
    // -------------------------------------------------------------------
 }

  void LOCATOR()
  { 
    linea(); punto(); punto(); linea(); punto();  delay(T4);        //   /  (barra!)

    // ------------------- LOCATOR -------------- da Modificare -----------------
    punto(); linea(); linea(); linea();                   delay(T2);     // J
    linea(); punto();                                            delay(T2);     // N
    linea(); punto(); punto(); punto(); punto();  delay(T2);     // 6
    punto(); linea(); linea(); linea(); linea();      delay(T2);     // 1
    linea(); punto(); linea();                               delay(T2);     // K
    punto(); linea(); punto(); punto();                delay(T4);     // L
    // -----------------------------------------------------------------------------------
}

void PORTANTE(boolean p)
  {
    digitalWrite (ptt1, p);                      // ptt1
    digitalWrite (ptt2, !p);                    // ptt2 ausiliario.
    delay(100);
  }

void setup()
{
 // pinMode (pin, OUTPUT);            //Variabile di uscita testo
 pinMode (ptt1, OUTPUT);             //Variabile di uscita 1 PTT
 pinMode (ptt2, OUTPUT);            //Variabile di uscita 2 PTT
}

void loop()
{
    PORTANTE(1);
    DE();
    CALL();
    LOCATOR();
    K();
    PORTANTE(0);
    delay(TS);  // --
}

// ----------------------------- Fine programma ----------------------------------------------

Arduino N°5

Nessun commento:

Posta un commento