FORUM RADIOAMATORIALE - Info per Beacom con Si5351
    FORUM RADIOAMATORIALE
Sostieni il nostro lavoro. Per altri modi leggi FAQ


FORUM RADIOAMATORIALE
Nome Utente:

Password:
 


Registrati
Salva Password
Password Dimenticata?

 

    


Menù riservato agli utenti registrati - Registrati  




 Tutti i Forum
 Discussioni
 AUTOCOSTRUZIONE
 Info per Beacom con Si5351
I seguenti utenti stanno leggendo questo Forum Qui c'è:


Tutti gli utenti possono inserire NUOVE discussioni in questo forum Tutti gli utenti possono rispondere in questo forum
  Bookmark this Topic  
| Altri..
Autore Discussione  

IW3INQ

oltre 1000 messaggi sul Forum



Inserito il - 07/04/2020 : 23:28:30  Link diretto a questa discussione  Mostra Profilo  Visita l'Homepage di IW3INQ  Guarda l'indirizzo Skype di IW3INQ Invia a IW3INQ un Messaggio Privato


Salve a tutti

In questi giorni ho provato a realizzare il progetto di questo link

https://github.com/la3pna/si5351_be...eacon_6m.ino

Ma non riesco a farlo funzionare in bande 6 metri ...
funziona regolarmente in banda 2 metri
Imposto la frequenza e con un errore accettabile rilevo il segnale .

C'è qualcuno che mi può dare una spiegazione in merito ???

grazie Alex iw3inq






 Firma di IW3INQ 
indirizzi mail:
iw3inq(AT)gmail.com
Sez. A.R.I. Palermo

http://iw3inq.jimdo.com/
SKYPE: iw3inq.



 Regione Veneto  ~ Prov.: Treviso  ~  Messaggi: 1489  ~  Membro dal: 06/07/2005  ~  Ultima visita: 10/11/2024

IK1LBW

oltre 100 messaggi sul Forum



Inserito il - 08/04/2020 : 07:33:40  Link diretto a questa risposta  Mostra Profilo  Visita l'Homepage di IK1LBW Invia a IK1LBW un Messaggio Privato
Buongiorno Alex....


Premetto che non sono un conoscitore di programmazione legato ad Arduino...mi fermo al GW-basic (hi).

Ho avuto a che fare con lo sketch di LA3PNA e anch'io ho avuto problemi.

Tempo fa' relazionandomi con Giorgio (ik2mmr), che era intenzionato a riattivare il bcn di Cremona IQ2CY/b,e conversando sul possibile uso
di Arduino in unione ai moduli SI5351 per uso BCN ,mi ha inviato uno sketch modificato per tale scopo.



Un po' ci ho "pasticciato" anch'io, e visto che non sono un conoscitore di linguaggio C++ questo e' cio' che ne e' uscito fuori.

Sketch Arduino in unione modulo SI5351:

/**************************************************************************/

//v.0.0.1 24.0.201 Frequency generator 1...160MHz with 100Hz steps. IK2MMR


/**************************************************************************/


#include <Wire.h>
#include <Adafruit_SI5351.h>
Adafruit_SI5351 clockgen = Adafruit_SI5351();
#define SPEED (12) //12 velocita' cw in WPM. Default: 16
#define DOTLEN (1200/SPEED) //1200
#define DASHLEN (3*(1200/SPEED)) //1200
#define PAUSE 15// tempo durata portante fissa tx (15)

#define ENCODER_A 3 // Encoder pin A
#define ENCODER_B 2 // Encoder pin B
#define ENCODER_BTN 4 // Encoder c button
void sendMsg(char*);
void Msg(char);
void dash();
void dot();
int giro = 1;
///////////////////////////
unsigned long previousMillis = 0; //will store last time LED was updated
unsigned long interval = 1000; //interval at which to blink (milliseconds)
///////////////////////////

char str[230]; // = "";


volatile uint32_t vfo = 50425000; //12034116;// 144419000 metti la frequenza hz iniziale in questo punto(es. 28225000//50425//144450...)
uint32_t pllFreq; // si5351 internal vco frequency
uint32_t radix = 1000; // start step size 12.5kHz
uint32_t si5351multiCount; // Multicounter
uint32_t si5351multi_int; // Multicounter integer
uint32_t si5351nomi; // Multicounter nominator
uint32_t si5351denomi = 1000000; // Multicounter denominator one million
uint32_t si5351divider; // VCO output divider integer part
boolean changed_f = 1;
String tbfo = "";

/**************************************/
/* Displays the frequency */
/**************************************/
void count_frequency()
{

uint16_t f, g;


f = vfo / 1000000; //variable is now vfo instead of 'frequency' vfo esim 145787500
si5351divider = 900000000/vfo; // vfo divider integer
pllFreq = si5351divider * vfo; // counts pllFrequency
si5351multiCount = pllFreq / 25; // feedback divider
si5351multi_int = pllFreq / 25000000; // feedback divider integer
si5351nomi = si5351multiCount % 1000000; // feedback divider integer
si5351denomi = 1000000; // feedback divider fraktion
Serial.print(" vfo ");
Serial.println( vfo);
Serial.print(" pllFreq ");
Serial.println( pllFreq);
Serial.print("si5351divider ");
Serial.println(si5351divider);
Serial.print(" si5351multiCount ");
Serial.println(si5351multiCount);
Serial.print(" si5351multi_int ");
Serial.println(si5351multi_int);
Serial.print(" si5351nomi ");
Serial.println(si5351nomi);
Serial.print(" si5351denomi ");
Serial.println(si5351denomi);

}

/**************************************/
/* Displays the frequency change step */
/**************************************/
void display_radix()
{

switch (radix)
{


}

Serial.println("radix");
Serial.println(radix);
}

/**************************************/
/* Interrupt service routine for */
/* encoder frequency change */
/**************************************/

ISR(PCINT2_vect){
set_frequency(1);
set_frequency(-1);
}






/**************************************/
/* Change the frequency */
/* dir = 1 Increment */
/* dir = -1 Decrement */
/**************************************/
void set_frequency(short dir)
{
if (dir == 1)
vfo += radix;
if (dir == -1)
vfo -= radix;
if(vfo > 170000000)
vfo = 100000;
if(vfo < 100000)
vfo = 150000000;
if (vfo < 0)
vfo = 100000;
changed_f = 1;
}




void dash()
{
clockgen.enableOutputs(true);
delay(DASHLEN);
clockgen.enableOutputs(false);
delay(DOTLEN);
}

void dot()
{
clockgen.enableOutputs(true);
delay(DOTLEN);
clockgen.enableOutputs(false);
delay(DOTLEN);
}

void setup(void)
{




delay(2000); //2seconds
Wire.begin();
/* Initialise the sensor */
if (clockgen.begin() != ERROR_NONE)
{
while(1);
}

/* Enable the clocks */
clockgen.enableOutputs(true);
pinMode(ENCODER_BTN, INPUT_PULLUP);
PCICR |= (1 << PCIE2); // Enable pin change interrupt for the encoder
PCMSK2 |= (1 << PCINT18) | (1 << PCINT19);
sei();
count_frequency(); // Count f and update the display

}

void loop(void)
{
if (previousMillis/1000 > 1)
{
//// Da commentare per usarlo come generatore
strcat (str, "VVV DE IW3INQ JN65EU IW3INQ JN65EU PSE QSL "); //testo messaggio da trasmettere(rispettare gli spazi=pausa)
sendMsg( str ); // messaggio da inviare!
/////
}
else {
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis; //save the last time you blinked the LED


}
}
// Update the display if the frequency has been changed
if (changed_f)
{

///clockgen.setupPLL(SI5351_PLL_B, (si5351multi_int),(si5351nomi),(si5351denomi)); // write si5351ctl divider word
clockgen.setupPLL(SI5351_PLL_A, (si5351multi_int),(si5351nomi),(si5351denomi)); // write si5351ctl divider word
// clockgen.setupMultisynthInt(0, SI5351_PLL_A, SI5351_MULTISYNTH_DIV_6);
clockgen.setupMultisynth(0, SI5351_PLL_A,(si5351divider),0,1 );
///clockgen.setupMultisynth(0, SI5351_PLL_B,(si5351divider),0,1 );
changed_f = 0;
}


{
giro = 3;
switch (radix)
{
case 100:
radix = 1000;
break;
case 1000:
radix = 12500;
break;
case 12500:
radix = 100000;
break;
case 100000:
radix = 1000000;
break;
case 1000000:
radix = 10000000;
break;
case 10000000:
radix = 100;
break;
}
display_radix();

}

}

void sendMsg(char *str)
{
int i;
delay(500);
for(i=0;i<strlen(str);i++)
{
switch (str[i])
{
case 'A':
dot();dash();break;
case 'B':
dash();dot();dot();dot();break;
case 'C':
dash();dot();dash();dot();break;
case 'D':
dash();dot();dot();break;
case 'E':
dot();break;
case 'F':
dot();dot();dash();dot();break;
case 'G':
dash();dash();dot();break;
case 'H':
dot();dot();dot();dot();break;
case 'I':
dot();dot();break;
case 'J':
dot();dash();dash();dash();break;
case 'K':
dash();dot();dash();break;
case 'L':
dot();dash();dot();dot();break;
case 'M':
dash();dash();break;
case 'N':
dash();dot();break;
case 'O':
dash();dash();dash();break;
case 'P':
dot();dash();dash();dot();break;
case 'Q':
dash();dash();dot();dash();break;
case 'R':
dot();dash();dot();break;
case 'S':
dot();dot();dot();break;
case 'T':
dash();break;
case 'U':
dot();dot();dash();break;
case 'V':
dot();dot();dot();dash();break;
case 'W':
dot();dash();dash();break;
case 'X':
dash();dot();dot();dash();break;
case 'Y':
dash();dot();dash();dash();break;
case 'Z':
dash();dash();dot();dot();break;
case ' ':
// tone(tonePin, 21000);
delay(DOTLEN*5);
// noTone(tonePin);
break;
case '.':
dot();dash();dot();dash();dot();dash();break;
case ',':
dash();dash();dot();dot();dash();dash();break;
case ':':
dash();dash();dash();dot();dot();break;
case '?':
dot();dot();dash();dash();dot();dot();break;
case '\'':
dot();dash();dash();dash();dash();dot();break;
case '-':
dash();dot();dot();dot();dot();dash();break;
case '/':
dash();dot();dot();dash();dot();break;
case '(':
case ')':
dash();dot();dash();dash();dot();dash();break;
case '\"':
dot();dash();dot();dot();dash();dot();break;
case '@':
dot();dash();dash();dot();dash();dot();break;
case '=':
dash();dot();dot();dot();dash();break;
case '0':
dash();dash();dash();dash();dash();break;
case '1':
dot();dash();dash();dash();dash();break;
case '2':
dot();dot();dash();dash();dash();break;
case '3':
dot();dot();dot();dash();dash();break;
case '4':
dot();dot();dot();dot();dash();break;
case '5':
dot();dot();dot();dot();dot();break;
case '6':
dash();dot();dot();dot();dot();break;
case '7':
dash();dash();dot();dot();dot();break;
case '8':
dash();dash();dash();dot();dot();break;
case '9':
dash();dash();dash();dash();dot();break;
}
// Serial.print(str[i]);
delay(2*DOTLEN);
}

// pulisce al stringa con tutti i terminatori di fine riga
memset( str, '\0', strlen( str ) );
//accende la nota
clockgen.enableOutputs(true);
//portante x secondi
delay(PAUSE*1000);
//spegne la portante
clockgen.enableOutputs(false);
// tempo di bianco
delay(PAUSE*400);

Info:

Alla quarta riga puoi modificare il tempo della portante tx...a circa meta' programma puoi variare il msg. e sul finale del programma trovi la riga per variare i tempi di pausa prima della ripresa del loop.

Per chi avesse piu' conoscenza di programmazione C++ sono gradite varianti allo sketch qui proposto.

Alex spero che il programma di IK2MMR qui proposto ti possa essere di aiuto.

Sono anch'io alle prese con un sistema multi-becon(28/50/144) fatto con Arduino con pwr out di 300/400 milliwatt max.

Inoltre utilizzando eventuali mixer ci si puo' spingere su' frequenze superiori visto che lo SI5351 e' limitato come data sheet a 150 mhz.

Buona costruzione es 73.

armando











  Firma di IK1LBW 


MY E-mail --->ik1lbw@tiscali.it



QRZ.COM --->https://www.qrz.com/lookup/ik1lbw/



IT's A BEATIFUL DAY --->https://youtu.be/9tEUs7bGVIY



S.O.S. LA TENDA ROSSA (film) --->https://www.youtube.com/watch?v=7Igj0LOewGI




NO MESSAGGI PRIVATI SU ARI FIDENZA !

IN CASO DI VENDITA ACCETTO PAGAMENTI SOLO TRAMITE POSTEPAY.


 Regione Liguria  ~ Prov.: La Spezia  ~ Città: Polverara  ~  Messaggi: 461  ~  Membro dal: 20/11/2012  ~  Ultima visita: 21/11/2024 Torna all'inizio della Pagina

IK1LBW

oltre 100 messaggi sul Forum



Inserito il - 08/04/2020 : 07:50:29  Link diretto a questa risposta  Mostra Profilo  Visita l'Homepage di IK1LBW Invia a IK1LBW un Messaggio Privato
....dimenticavo.

Riguardo allo sketch di LA3PNA.....

a titolo di prova a 50 mhz togli uno zero alla frequenza che vuoi programmare mentre a 144 mhz lascia invariato i numeri di zero finali (3).

Sappici dire.

73 armando






  Firma di IK1LBW 


MY E-mail --->ik1lbw@tiscali.it



QRZ.COM --->https://www.qrz.com/lookup/ik1lbw/



IT's A BEATIFUL DAY --->https://youtu.be/9tEUs7bGVIY



S.O.S. LA TENDA ROSSA (film) --->https://www.youtube.com/watch?v=7Igj0LOewGI




NO MESSAGGI PRIVATI SU ARI FIDENZA !

IN CASO DI VENDITA ACCETTO PAGAMENTI SOLO TRAMITE POSTEPAY.


 Regione Liguria  ~ Prov.: La Spezia  ~ Città: Polverara  ~  Messaggi: 461  ~  Membro dal: 20/11/2012  ~  Ultima visita: 21/11/2024 Torna all'inizio della Pagina

IW3INQ

oltre 1000 messaggi sul Forum



Inserito il - 08/04/2020 : 10:54:07  Link diretto a questa risposta  Mostra Profilo  Visita l'Homepage di IW3INQ  Clicca sul telefono per chiamare con Skype  IW3INQ Invia a IW3INQ un Messaggio Privato
Grazie Armando


Per la risposta ...

Provo ad eliminare uno 0 e vediamo cosa succede ma se non ricordo male avevo provato con esito negativo ...

Per il tuo sketch sarebbe da modificare perchè se non erro è previsto anche un dispaly che nel mio caso non andrei ad usare .... e non ho assolutamente esperienza in linguaggio C++

Vi tengo aggiornato

73 Alex iw3inq







  Firma di IW3INQ 
indirizzi mail:
iw3inq(AT)gmail.com
Sez. A.R.I. Palermo

http://iw3inq.jimdo.com/
SKYPE: iw3inq.



 Regione Veneto  ~ Prov.: Treviso  ~  Messaggi: 1489  ~  Membro dal: 06/07/2005  ~  Ultima visita: 10/11/2024 Torna all'inizio della Pagina

IK1LBW

oltre 100 messaggi sul Forum



Inserito il - 08/04/2020 : 11:10:19  Link diretto a questa risposta  Mostra Profilo  Visita l'Homepage di IK1LBW Invia a IK1LBW un Messaggio Privato
Ciao Alex....

Si era in origine uno sketch per un generatore di segnali anche r.f.

Io ho tralasciato i vari file di comando per il visore etc. provalo a mo' di beacon va' alla prima.

All' epoca avevo contattato Thomas (LA3PNA) per ragguagli...ma mi disse che per lui lo sketch pubblicato (bcn 50 mhz) era corretto e doveva funzionare (??).

ancora 73

armando






  Firma di IK1LBW 


MY E-mail --->ik1lbw@tiscali.it



QRZ.COM --->https://www.qrz.com/lookup/ik1lbw/



IT's A BEATIFUL DAY --->https://youtu.be/9tEUs7bGVIY



S.O.S. LA TENDA ROSSA (film) --->https://www.youtube.com/watch?v=7Igj0LOewGI




NO MESSAGGI PRIVATI SU ARI FIDENZA !

IN CASO DI VENDITA ACCETTO PAGAMENTI SOLO TRAMITE POSTEPAY.


 Regione Liguria  ~ Prov.: La Spezia  ~ Città: Polverara  ~  Messaggi: 461  ~  Membro dal: 20/11/2012  ~  Ultima visita: 21/11/2024 Torna all'inizio della Pagina

ix1ixg

oltre 2000 messaggi sul Forum



Inserito il - 08/04/2020 : 18:01:18  Link diretto a questa risposta  Mostra Profilo  Visita l'Homepage di ix1ixg Invia a ix1ixg un Messaggio Privato
Ciao Alex,

molto probabile che il problema risieda nella libreria per l' SI5351... molto spesso questi driver di periferica risultano pesantissimi e scritti male con il risultato di malfunzionare... il fatto che chi li scrive, spesso non riscontri particolari problematiche, dipende dalle tolleranze dei componenti i quali non essendo tutti perfettamente uguali, quando portati a lavorare troppo al limite delle loro caratteristiche manifestano instabilità... per farla breve, prova a cambiare la libreria (chiaramente dovrai modificare anche qualche piccola porzione di codice)... essendo questo un progetto molto semplice, se ti interessa l' argomento, potrebbe rappresentare un ottimo punto di partenza per iniziare ad apprendere il linguaggio in oggetto... in futuro probabilmente risulterà sicuramente più utile di un qualsiasi ammennicolo radioamatoriale (ma questo è solo un parere personale).

P.S. Non ho visto lo schema del beacon in oggetto ma ricorda che dal SI5351 esce un segnale quadro con armoniche che superano tranquillamente il GHz, se realmente vuoi utilizzarlo per andare in aria non scordare un adeguato filtraggio.

Ciao a Tutti, Dave.






 Messaggi: 2207  ~  Membro dal: 15/05/2007  ~  Ultima visita: 01/02/2024 Torna all'inizio della Pagina

IK1LBW

oltre 100 messaggi sul Forum



Inserito il - 08/04/2020 : 20:10:17  Link diretto a questa risposta  Mostra Profilo  Visita l'Homepage di IK1LBW Invia a IK1LBW un Messaggio Privato
Buonasera Dave....

Grazie per il tuo interessamento all'argomento.

Il linguaggio di programmazione C++ mi risulta un pochino "indigesto" (hi)...ma ci si applica.

Riguardo il programma BCN di LA3PNA penso che abbia delle problematiche nella scrittura.

Anche oggi dopo circa 1 anno mi sono messo di nuovo a vedere se riuscivo a risolvere il problema ma senza risultati.

Continuo ad usare il progr. modificato da IK2MMR (giorgio) e risulta facilmente modificabile riguardo msg./ velocita' tx etc.

Il programma che ho postato forse non era quello definitivo....aspettero' i gg per poterlo modificare su A.F.

Il circuito del bcn e' molto semplice: utilizza una scheda Arduino Uno che programmata comanda un generatore di segnale SI5351.

Tale generatore r.f. arriva sino a circa 150 mhz...e ha 3 uscite distinte a disposizione...e genera segnali di circa 10 milliwatt.

Il segnale in uscita risulta ad onda quadra e per l'uso BCN (non solo) necessita di un filtro in uscita...passa basso opp. passa banda.







Una semplice immagine del cablaggio Arduino--->SI5351 :



Immagine:

116,7 KB



Rinnovo l'invito ai 9300 iscritti su A.F. (e non solo) se tra loro ci fosse qualcuno interessato all'argomento applicato all'uso BCN.



grazie e 73 de armando






  Firma di IK1LBW 


MY E-mail --->ik1lbw@tiscali.it



QRZ.COM --->https://www.qrz.com/lookup/ik1lbw/



IT's A BEATIFUL DAY --->https://youtu.be/9tEUs7bGVIY



S.O.S. LA TENDA ROSSA (film) --->https://www.youtube.com/watch?v=7Igj0LOewGI




NO MESSAGGI PRIVATI SU ARI FIDENZA !

IN CASO DI VENDITA ACCETTO PAGAMENTI SOLO TRAMITE POSTEPAY.


 Regione Liguria  ~ Prov.: La Spezia  ~ Città: Polverara  ~  Messaggi: 461  ~  Membro dal: 20/11/2012  ~  Ultima visita: 21/11/2024 Torna all'inizio della Pagina

IZ8EWD

oltre 500 messaggi sul Forum


Inserito il - 08/04/2020 : 21:59:23  Link diretto a questa risposta  Mostra Profilo  Visita l'Homepage di IZ8EWD Invia a IZ8EWD un Messaggio Privato
Ho anch'io una di quelle schede, presa da qualche tempo per realizzare un VFO, ma non mi ci sono ancora messo.
Se trovo un po' di tempo in questi giorni per provare lo sketch di la3pna vi terrò aggiornati.






Città: Potenza/Roma  ~  Messaggi: 810  ~  Membro dal: 28/04/2010  ~  Ultima visita: 29/10/2024 Torna all'inizio della Pagina

IZ0KBA

oltre 1000 messaggi sul Forum



Inserito il - 08/04/2020 : 22:21:07  Link diretto a questa risposta  Mostra Profilo  Visita l'Homepage di IZ0KBA Invia a IZ0KBA un Messaggio Privato
Io ho usato un AD9851, funziona anche in 6Metri.
Trovi le info sui commenti del video:






 Regione Lazio  ~ Prov.: Roma  ~ Città: Castel Madama  ~  Messaggi: 1347  ~  Membro dal: 09/04/2011  ~  Ultima visita: 23/11/2024 Torna all'inizio della Pagina

ix1ixg

oltre 2000 messaggi sul Forum



Inserito il - 08/04/2020 : 23:36:09  Link diretto a questa risposta  Mostra Profilo  Visita l'Homepage di ix1ixg Invia a ix1ixg un Messaggio Privato
Ciao Armando,

riguardo al codice C++ ti capisco benissimo... soprattutto quando trovi del codice scritto in una certa maniera... già solo la notazione utilizzata fa venir voglia di scappare, per non parlare poi della struttura... Critiche a parte, visto che avevo arduino già collegato alla piastrina con l' SI ho voluto per curiosità provare questo progetto... è bastato caricare lo sketch (o come cacchio lo chiamano)collegare l ' AS per rendersi conto che non funzionava... il generatore di clock andava a lavorare intorno ai 225 MHz con tracce evidenti di “sganciamento saltuario”... per risolvere è stato sufficiente, come presupponevo, cambiare la libreria (comprese le funzioni di classe utilizzate).
Vi allego il codice modificato (da rinominare in *.ino).

si5351_beacon_6m.txt (3,47 KB)

P.S. Mi sono limitato esclusivamente a rimpiazzare la libreria... non ho idea se siano presenti o meno altri errori concettuali o procedurali, così come è sembra funzionare... se volete utilizzarlo senza farvi venire il mal di testa, vi consiglio caldamente di risistemare la posizione delle varie dichiarazioni... così come è strutturato anche quelle 4 righe di codice messe in croce rischiamo di farvi venire il mal di testa. Lo schema è quello da te utilizzato e dipende dall' implementazione della libreria wire.

La libreria utilizzata per l' SI è questa:

https://github.com/pavelmc/Si5351mcu

non ho idea di quanto sia "buona", su 2 piedi però sembra funzionare senza problemi...

Ciao a Tutti, Dave.






 Messaggi: 2207  ~  Membro dal: 15/05/2007  ~  Ultima visita: 01/02/2024 Torna all'inizio della Pagina

IK1LBW

oltre 100 messaggi sul Forum



Inserito il - 09/04/2020 : 09:31:08  Link diretto a questa risposta  Mostra Profilo  Visita l'Homepage di IK1LBW Invia a IK1LBW un Messaggio Privato
Buongiorno a tutti i lettori di questo post...


Ringrazio G.Franco(IZ8EWD) e Lorenzo(IZ0KBA) per la loro partecipazione. EWD facci sapere quando hai programmato.....KBA ho visionato il filmato e letto le info grazie.


Un doveroso grazie va' anche a Dave che con la sua partecipazione ha fatto si che il problema sullo sketch di LA3PNA si risolvesse

Infatti era una mancanza di dati sulle librerie...aggiornate quest'ultime il progr. gira che e' una bellezza.


L'unione tra Arduino uno e SI5351 da' numerose possibilita' r.f. (vfo-rtx-generatore b.f./r.f.-beacon....) ognuno puo' scegliere il proprio uso in base alla programmazione.

Ad esempio lo si puo' usare ad uso mini-beacon per la taratura di antenne e preamplificatori etc.


Riguardando sul computer nelle cartelle di Arduino ho ritrovato un'altro programma ad uso BCN.per chi fosse interessato vorrei passare lo sketch per la programmazione ideato da
LA2WSG.


Oltre a generare il msg. permette la visualizzazione della manipolazione cw tramite led e l'ascolto tramite altoparlante con nota regolabile.

A lato di alcune righe ho aggiunto un commento sul loro utilizzo (velocita' cw-msg.-dely vari...).


Ancora grazie.


73 armando





Arduino Beacon by LZ2WSG :




// 2.11.2018, Arduino IDE v1.8.7, v0.2
// CW Beacon using Si5351, LZ2WSG, KN34PC
//---------------------------------------------------------------------------------------------------------
#include "si5351.h"

#define PIN_SP 10// posizione out monitor audio= pin 10 Arduino
#define PIN_TX 13// posizione out monitor ledtx= pin 13 Arduino

Si5351 si5351(0x60);

uint16_t duration = 90;//valore velocita' cw (WPM 80-100)
uint16_t hz = 750;//valore nota monitor (750hz)
String cw_message = "V V V DE IK1LBW JN44VD ";//inserire il msg. da trasmettere (maiuscolo)
uint32_t tx = 144000000; // inserire freq. tx (es.)--> 50.426 mhz= 50426000 144.444 mhz= 144444000
//---------------------------------------------------------------------------------------------------------
void setup() {
pinMode(PIN_TX, OUTPUT);

si5351.init(SI5351_CRYSTAL_LOAD_8PF, 25000000, 0);
si5351.set_freq(tx * SI5351_FREQ_MULT, SI5351_CLK0);
si5351.output_enable(SI5351_CLK0, 0);
}
//---------------------------------------------------------------------------------------------------------
void loop() {
cw_string_proc(cw_message); // durata spazio tra msg. e portante fissa bcn (>900)
delay(1000);

cw(true);
delay(18000); // durata portante fissa bcn (>15000)

cw(false);
delay(7000); // durata spazio tra portante fissa bcn e inizio msg. (>5000)
}
//---------------------------------------------------------------------------------------------------------
void cw_string_proc(String str) { // processing string to characters
for (uint8_t j = 0; j < str.length(); j++)
cw_char_proc(str[j]);
}
//---------------------------------------------------------------------------------------------------------
void cw_char_proc(char m) { // processing characters to Morse code symbols
String s;

if (m == ' ') { // #1087;#1072;#1091;#1079;#1072; #1084;#1077;#1078;#1076;#1091; #1076;#1091;#1084;#1080;#1090;#1077;
word_space();
return;
}

if (m > 96) // ACSII, case change a-z to A-Z
if (m < 123)
m -= 32;

switch (m) { // Morse code
case 'A': s = ".-#"; break;
case 'B': s = "-...#"; break;
case 'C': s = "-.-.#"; break;
case 'D': s = "-..#"; break;
case 'E': s = ".#"; break;
case 'F': s = "..-.#"; break;
case 'G': s = "--.#"; break;
case 'H': s = "....#"; break;
case 'I': s = "..#"; break;
case 'J': s = ".---#"; break;
case 'K': s = "-.-#"; break;
case 'L': s = ".-..#"; break;
case 'M': s = "--#"; break;
case 'N': s = "-.#"; break;
case 'O': s = "---#"; break;
case 'P': s = ".--.#"; break;
case 'Q': s = "--.-#"; break;
case 'R': s = ".-.#"; break;
case 'S': s = "...#"; break;
case 'T': s = "-#"; break;
case 'U': s = "..-#"; break;
case 'V': s = "...-#"; break;
case 'W': s = ".--#"; break;
case 'X': s = "-..-#"; break;
case 'Y': s = "-.--#"; break;
case 'Z': s = "--..#"; break;

case '1': s = ".----#"; break;
case '2': s = "..---#"; break;
case '3': s = "...--#"; break;
case '4': s = "....-#"; break;
case '5': s = ".....#"; break;
case '6': s = "-....#"; break;
case '7': s = "--...#"; break;
case '8': s = "---..#"; break;
case '9': s = "----.#"; break;
case '0': s = "-----#"; break;

case '?': s = "..--..#"; break;
case ',': s = "--..--#"; break;
case '/': s = "-..-.#"; break;
}

for (uint8_t i = 0; i < 7; i++) {
switch (s[i]) {
case '.': ti(); break; // TI (punto)
case '-': ta(); break; // TA (linea)
case '#': char_space(); return; // end of Morse code symbol
}
}
}
//---------------------------------------------------------------------------------------------------------
void ti() {
cw(true); // TX TI (punto)
delay(duration);

cw(false); // stop TX TI (punto)
delay(duration);
}
//---------------------------------------------------------------------------------------------------------
void ta() {
cw(true); // TX TA (linea)
delay(3 * duration);

cw(false); // stop TX TA (linea)
delay(duration);
}
//---------------------------------------------------------------------------------------------------------
void char_space() { // 3x, #1087;#1072;#1091;#1079;#1072; #1084;#1077;#1078;#1076;#1091; #1073;#1091;#1082;#1074;#1080;#1090;#1077;
delay(2 * duration); // 1 from element-end + 2 new
}
//---------------------------------------------------------------------------------------------------------
void word_space() { // 7x, #1087;#1072;#1091;#1079;#1072; #1084;#1077;#1078;#1076;#1091; #1076;#1091;#1084;#1080;#1090;#1077;
delay(6 * duration); // 1 from element-end + 6 new
}
//---------------------------------------------------------------------------------------------------------
void cw(bool state) { // TX-CW, monitor>TX-LED, monitor audio>750 Hz sound
if (state) {
si5351.output_enable(SI5351_CLK0, 1);
digitalWrite(PIN_TX, HIGH);
tone(PIN_SP, hz);
}
else {
si5351.output_enable(SI5351_CLK0, 0);
digitalWrite(PIN_TX, LOW);
noTone(PIN_SP);








  Firma di IK1LBW 


MY E-mail --->ik1lbw@tiscali.it



QRZ.COM --->https://www.qrz.com/lookup/ik1lbw/



IT's A BEATIFUL DAY --->https://youtu.be/9tEUs7bGVIY



S.O.S. LA TENDA ROSSA (film) --->https://www.youtube.com/watch?v=7Igj0LOewGI




NO MESSAGGI PRIVATI SU ARI FIDENZA !

IN CASO DI VENDITA ACCETTO PAGAMENTI SOLO TRAMITE POSTEPAY.


 Regione Liguria  ~ Prov.: La Spezia  ~ Città: Polverara  ~  Messaggi: 461  ~  Membro dal: 20/11/2012  ~  Ultima visita: 21/11/2024 Torna all'inizio della Pagina

IU3BRB

oltre 100 messaggi sul Forum



Inserito il - 11/04/2020 : 10:30:34  Link diretto a questa risposta  Mostra Profilo  Visita l'Homepage di IU3BRB Invia a IU3BRB un Messaggio Privato
Buongiorno, ho provato lo sketch postato da IK1LBW ed è molto attendibile e funzionante, ho aggiunto solo la stringa che fa accendere il led per avere un riscontro visivo della trasmissione. Guardando l'emissione del modulo su un semplice sdr confermo che serve un efficiente filtraggio se si vuole andare on-air dopo averlo collegato ad un piccolo amplificatore perchè trasmette un po ovunque

all'inizio dopo gli "include"

int LEDpin = 13 ;

e quando si configurano punti e linee

void dash()
{
digitalWrite(LEDpin, HIGH) ;
clockgen.enableOutputs(true);
delay(DASHLEN);
digitalWrite(LEDpin, LOW) ;
clockgen.enableOutputs(false);
delay(DOTLEN);
}

void dot()
{
digitalWrite(LEDpin, HIGH) ;
clockgen.enableOutputs(true);
delay(DOTLEN);
digitalWrite(LEDpin, LOW) ;
clockgen.enableOutputs(false);
delay(DOTLEN);






  Firma di IU3BRB 
IU3BRB Alberto

 Regione Veneto  ~ Prov.: Treviso  ~ Città: San Vendemiano  ~  Messaggi: 254  ~  Membro dal: 01/02/2014  ~  Ultima visita: 24/03/2021 Torna all'inizio della Pagina

IK1LBW

oltre 100 messaggi sul Forum



Inserito il - 11/04/2020 : 12:30:26  Link diretto a questa risposta  Mostra Profilo  Visita l'Homepage di IK1LBW Invia a IK1LBW un Messaggio Privato
Buongiorno Alberto e grazie per il tuo interessamento all'argomento e per la variante allo sketch.

Si confermo che in uscita allo SI5351 e' necessario porre,prima di amplificare il segnale , un buon filtro passa basso...cosi' come dopo il p.a.

Io ne ho scelto uno a 5 celle.


Aggiungo foto di un possibile filtro passa basso con frequenza di taglio (F.T.) a 34 mhz del tipo Butterworth a 5 celle...compilato con RFSim99.




Immagine:

42,4 KB


Link softw. RFSim99 ---> https://www.electroschematics.com/r...99-download/


Buone costruzioni....es 73 armando









  Firma di IK1LBW 


MY E-mail --->ik1lbw@tiscali.it



QRZ.COM --->https://www.qrz.com/lookup/ik1lbw/



IT's A BEATIFUL DAY --->https://youtu.be/9tEUs7bGVIY



S.O.S. LA TENDA ROSSA (film) --->https://www.youtube.com/watch?v=7Igj0LOewGI




NO MESSAGGI PRIVATI SU ARI FIDENZA !

IN CASO DI VENDITA ACCETTO PAGAMENTI SOLO TRAMITE POSTEPAY.


 Regione Liguria  ~ Prov.: La Spezia  ~ Città: Polverara  ~  Messaggi: 461  ~  Membro dal: 20/11/2012  ~  Ultima visita: 21/11/2024 Torna all'inizio della Pagina

ix1ixg

oltre 2000 messaggi sul Forum



Inserito il - 11/04/2020 : 18:31:30  Link diretto a questa risposta  Mostra Profilo  Visita l'Homepage di ix1ixg Invia a ix1ixg un Messaggio Privato
Ciao Armando,

riguardo al filtro, probabilmente è meglio utilizzare il classico pigreco in modo da lasciar passare solo la F desiderata, il filtro che hai proposto, blocca tutto sopra i 34 MHz se però uno decide di realizzare un beacon a 3.5 Mhz si ritroverà armoniche indesiderate in almeno 9 punti... mi riferisco ad un circuito di questo tipo:

Immagine:

2,35 KB


in questo caso passano solo ì 10 MHz e la BW relativa risulta essere di circa 2 MHz...

Important Tips: volendo stringere la banda passante (o aumentare il Q come preferite) utilizzando componenti non specifici per RF evitate di scegliere per le capacità valori che presentino una reattanza inferiore a 10...15 Ohm... la loro elevata RS potrebbe farvi perdere parecchia potenza...

Buona Pasqua a Tutti.

Ciao Dave.






 Messaggi: 2207  ~  Membro dal: 15/05/2007  ~  Ultima visita: 01/02/2024 Torna all'inizio della Pagina

IK1LBW

oltre 100 messaggi sul Forum



Inserito il - 11/04/2020 : 21:51:09  Link diretto a questa risposta  Mostra Profilo  Visita l'Homepage di IK1LBW Invia a IK1LBW un Messaggio Privato
Ciao Dave....

Sono daccordo con te che se uno vuol fare un bcn opp. un tx a 3,5 mhz non utilizzera' un FPB con FT a 34 mhz...bensi un tipo con FT a 6/7 mhz.

Io ho voluto illustrare un Filtro Passa Basso per i 28 mhz con Frequenza di Taglio a 34 mhz a mo' di esempio.

Ed un tipo a 5 celle per una migliore attenuazioni per le ottave superiori.

Ok per le caratteristiche delle capacita' da utilizzare...

73 de armando






  Firma di IK1LBW 


MY E-mail --->ik1lbw@tiscali.it



QRZ.COM --->https://www.qrz.com/lookup/ik1lbw/



IT's A BEATIFUL DAY --->https://youtu.be/9tEUs7bGVIY



S.O.S. LA TENDA ROSSA (film) --->https://www.youtube.com/watch?v=7Igj0LOewGI




NO MESSAGGI PRIVATI SU ARI FIDENZA !

IN CASO DI VENDITA ACCETTO PAGAMENTI SOLO TRAMITE POSTEPAY.


 Regione Liguria  ~ Prov.: La Spezia  ~ Città: Polverara  ~  Messaggi: 461  ~  Membro dal: 20/11/2012  ~  Ultima visita: 21/11/2024 Torna all'inizio della Pagina
  Discussione  
  Bookmark this Topic  
| Altri..
 
Vai a:

Arifidenza.it | Attività  - ARI Fidenza | Home La Sezione - ARI Fidenza
Questa pagina è stata generata in 0,3 secondi.