Odpowiedz 
 
Ocena wątku:
  • 6 Głosów - 4 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO
SP3NYR Offline
Nowicjusz
*

Liczba postów: 13
Dołączył: 30-01-2011
Post: #190
RE: 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ń: 1285)
(Ten post był ostatnio modyfikowany: 22-12-2014 22:47 przez SP3NYR.)
22-12-2014 22:47
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Wiadomości w tym wątku

Skocz do:


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