Koleżankom i Kolegom Radioamatorom, Krótkofalowcom,
Konstruktorom i Waszym Rodzinom – w tych trudnych czasach –
po dotkliwej awarii naszego forum
Pogodnego czasu po Bożym Narodzeniu,
Dosiego Nowego Roku
oraz Radosnych Trzech Króli

Życzy Zespół Home Made

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

Gratuluje bardzo fajnego projektu, w załączniku mój złomek
Dziękuje Ryśkowi za pomoc

Pozdrawiam

Andrzej
Witam

A to mój złomek

   
Odpowiedz
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 czestotliwośc to automatycznie nastąpi zmiana włączonego filtru.
W załaczeniu pełny
Odpowiedz
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
Waldermar, super!

Fajnie że miałeś trochę czasu w takim przedświątecznym okresie Wink Pewnie jakoś po świętach będzie wiecej czasu by się zająć projektem.
Muszę przysiąść i poprzeglądać płytkę Michała pod kątem zgodności z softem poczynić ewentualne zmiany. I myślę że zamówię płytki w merkarze tam gdzie dvsp zamawialiśmy. Wtedy każdy będzie mógł sobie złomka sam od nich kupić bez ponoszenia kosztów projektu.

A tymczasem Panowie Życzę Zdrowych i Wesołych Świąt.
Do usłyszenia Wink


...przede wszystkim nie zakłócać...
Odpowiedz
No na Swięta obrazky :
   
cynowanie we wrzątku z użyciem stopu Lichtenberga
   
http://www.elektroda.pl/rtvforum/topic2483449.html
   
zlomek wersja podstawowa
   
i
   
pozdrawiam
Spokojnych i Pogodnych
Świąt Bożego Narodzenia oraz Szczęśliwego Nowego Roku
Nie otrzymasz koni wyścigowych krzyżując dwa osły
Odpowiedz
Witaj amatorzy panowie, chcę zadać pytania na temat projektu tego generatora. Proszę mi powiedzieć, w jaki sposób należy rozwiązać można w języku polskim lub języku rosyjskim? Używam tłumacza i martwi, że niesie nie jest prawidłowe. Z poważaniem, Rusłan.
Здравствуйте Господа радиолюбители, хочу задать Вам вопросы про конструкцию этого генератора. Скажите пожалуйста, как мне лучше обращаться к Вам на Польском или Русском языке? я пользуюсь переводчиком и переживаю, что он переводит не корректно. С Уважением Руслан.
Odpowiedz
Witaj Rusłan.

Do mnie możesz pisać po polsku, angielsku lub rosyjsku.

Вы можете написать мне на польском, английском или русском языке.

Waldemar

Odpowiedz
(10-01-2015, 16:35)SP3NYR napisał(a): Witaj Rusłan.

Do mnie możesz pisać po polsku, angielsku lub rosyjsku.

Вы можете написать мне на польском, английском или русском языке.

Waldemar

Здравствуйте! Smile не ожидал, что так быстро мне ответят, спасибо Вам. Мой вопрос, в этом синтезаторе можно ввести значения промежуточной частоты (ПЧ) ? Я просто еще не собирал конструкции на микроконтроллерах и не могу понять всех тонкостей. Сейчас я заканчиваю сборку трансивера Bitix 20 и хочу собрать этот синтезатор для него.
Odpowiedz
да, можно

source, line 87:
const long if_frequency = -8000000; //częstotliwość pośredniej, każdy dobiera swoją w zależności od konstrukcji radia ( значения промежуточной частоты )

73
MAc
mrn
Odpowiedz
(10-01-2015, 17:29)SP9MRN napisał(a): да, можно

source, line 87:
const long if_frequency = -8000000; //częstotliwość pośredniej, każdy dobiera swoją w zależności od konstrukcji radia ( значения промежуточной частоты )

73
MAc
mrn

Большое спасибо за ответ! Теперь осталось дождаться купленных деталей и произвести сборку. Результаты и фотографии обязательно выложу на этом сайте. Всем ответившим большое спасибо! 73!
Odpowiedz


Skocz do:


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