Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO
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


Załączone pliki
.ino   zlomek_z_filtrem.ino (Rozmiar: 31.8 KB / Pobrań: 1,553)
Odpowiedz


Wiadomości w tym wątku

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości