Witam
Do przeanalizowania kodu namówił mnie SQ3PJV na spotkaniu klubowym zadając pytanie jak zrobić aby złomek był dwupasmowy i aby wystawiał na wolnym nieużywanym pinie informację o tym do sterowania przełączaniem filtrów we/wy TRX.
Najprościej wykorzystać do tego przełącznik VFO A/B.
W oryginale mamy VFO A - pasmo 3,5 Mhz a VFO B - 7 MHZ
dodajmy zmienna f_switch_filter i jej wartość ustawmy na częstotliwość pomiędzy pasmami czyli w tym przypadku na 5 MHz
Dodając prosty warunek możemy automatycznie włączać filtr 1 ( pin 13 - dioda w arduino jest w stanie LOW) gdy f< 5MHz
lub filtr 2 ( pin 13=HIGH) gdy f>5MHz
Wszelkie niezbędne zmiany:
Modyfikacje kodu do automatycznego przełączania filtrów
w sekcji
------------------------------------------------------
//zmienne do modyfikacji każdy ustawia to co potrzebuje
po linii
const long start_frequency = 3715000; //częstotliwość startowa syntezy
wstawiamy
const int filterPin = 13; // numer pinu do sterowania przełączaniem filtrów
const long f_switch_filter = 5000000; // f przy której przełączamy filtry if f_vfo< f_switch_filter then pin 13 = LOW, else HIGH
w funkcji:
--------------------------------------
//setup funkcja odpalana przy starcie
void setup(){
po
pinMode(dim_out,OUTPUT); //ustawiam tryb pracy wyjścia dla ściemniania LCD (DIM)
wstawiamy linie
pinMode(filterPin, OUTPUT); // tryb pracy dla PIN=13
w funkcji:
-----------------------------------------
//funkcja ustawiająca częstotliwość DDS-a, lub RIT-a
void set_frequency(int plus_or_minus){
po linii
AD9850.set_frequency(frequency_to_dds); //ustawiam syntezę na odpowiedniej częstotliwości
wstawiamy
if (frequency > f_switch_filter){digitalWrite(filterPin, HIGH); }
else {digitalWrite(filterPin, LOW);}
Działanie powyższej modyfikacji można wypróbować obserwując diodę na PIN 13 - każde arduino ma fabrycznie wbudowaną diodę
zmieniając VFO A na VFO B powinna zapalać się lub gasnąć dioda
Jeżeli będziemy enkoderem zmieniać częstotliwość i przejdziemy przez ustawiona dla f_switch_filter częstotliwość to automatycznie nastąpi zmiana włączonego filtru.
W załączeniu pełny plik z naniesionymi zmianami.
----------------------------------------------------------------------------------------------------------------
Pozdrawiam
Waldemar
Do przeanalizowania kodu namówił mnie SQ3PJV na spotkaniu klubowym zadając pytanie jak zrobić aby złomek był dwupasmowy i aby wystawiał na wolnym nieużywanym pinie informację o tym do sterowania przełączaniem filtrów we/wy TRX.
Najprościej wykorzystać do tego przełącznik VFO A/B.
W oryginale mamy VFO A - pasmo 3,5 Mhz a VFO B - 7 MHZ
dodajmy zmienna f_switch_filter i jej wartość ustawmy na częstotliwość pomiędzy pasmami czyli w tym przypadku na 5 MHz
Dodając prosty warunek możemy automatycznie włączać filtr 1 ( pin 13 - dioda w arduino jest w stanie LOW) gdy f< 5MHz
lub filtr 2 ( pin 13=HIGH) gdy f>5MHz
Wszelkie niezbędne zmiany:
Modyfikacje kodu do automatycznego przełączania filtrów
w sekcji
------------------------------------------------------
//zmienne do modyfikacji każdy ustawia to co potrzebuje
po linii
const long start_frequency = 3715000; //częstotliwość startowa syntezy
wstawiamy
const int filterPin = 13; // numer pinu do sterowania przełączaniem filtrów
const long f_switch_filter = 5000000; // f przy której przełączamy filtry if f_vfo< f_switch_filter then pin 13 = LOW, else HIGH
w funkcji:
--------------------------------------
//setup funkcja odpalana przy starcie
void setup(){
po
pinMode(dim_out,OUTPUT); //ustawiam tryb pracy wyjścia dla ściemniania LCD (DIM)
wstawiamy linie
pinMode(filterPin, OUTPUT); // tryb pracy dla PIN=13
w funkcji:
-----------------------------------------
//funkcja ustawiająca częstotliwość DDS-a, lub RIT-a
void set_frequency(int plus_or_minus){
po linii
AD9850.set_frequency(frequency_to_dds); //ustawiam syntezę na odpowiedniej częstotliwości
wstawiamy
if (frequency > f_switch_filter){digitalWrite(filterPin, HIGH); }
else {digitalWrite(filterPin, LOW);}
Działanie powyższej modyfikacji można wypróbować obserwując diodę na PIN 13 - każde arduino ma fabrycznie wbudowaną diodę
zmieniając VFO A na VFO B powinna zapalać się lub gasnąć dioda
Jeżeli będziemy enkoderem zmieniać częstotliwość i przejdziemy przez ustawiona dla f_switch_filter częstotliwość to automatycznie nastąpi zmiana włączonego filtru.
W załączeniu pełny plik z naniesionymi zmianami.
----------------------------------------------------------------------------------------------------------------
Pozdrawiam
Waldemar

