HomeMade

Pełna wersja: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Szczerze mówiąc Michał to nie mam pomysłu dlaczego tak się u Ciebie dzieje.
Spróbuj podejrzeć w monitorze portu szeregowego jakie masz wartości z ADC dla każdego przycisku. Jest w kodzie odkomentowane wysyłanie tych danych na port szeregowy więc będzie widać.

[attachment=9220]

Przy okazji, wyczyściłem repozytorium SVN na google code i wysłałem tam pokolei wszystkie kolejne wersje złomka. Dzięki temu w łatwy sposób można porównywać zmiany pomiędzy wersjami.

https://code.google.com/p/zlomek/source/list

Można zmiany wyświetlać w taki sposób:
https://code.google.com/p/zlomek/source/detail?r=2

Albo w taki:
https://code.google.com/p/zlomek/source/...zlomek.ino

W kazdym przypadku po prawej na górze mamy nawigację do kolejnych wersji i zmian z tym związanych.
Rysiu, jak tam projekt, jest ciąg dalszy?
Złożyłem Fork-Heńka i nie za bardzo te programowanie mi idzie, nie mój język. Prędzej zmiana dla własnych potrzeb niż dołożenie kodu dla zmiany pasm i emisji. Może dwa pasma a to spora podpowiedź.
Hej Darek, na razie stanęło w miejscu trochę... to znaczy nie do końca tak. Miałem kiedyś zrobioną syntezę na mniejszym procesorze i w bascomie. Zrobiłem to na wyświetlaczu 2x20 z przeznaczeniem dla Taurusa. No i pomyślałem sobie że mogę zrobić gałąź osobną w projekcie pod taki wyświetlacz. Oczywiście z mniejszą ilością opcji itd. Więc wziąłem Złomka w wersji 1.0.4 i zrobiłem odnogę projektu.
Na http://coode.goole.com można znaleźć tę wersję.

[attachment=9236]

Jeśli chodzi zaś o złomka bez zmian w hardware nie da się go prosto przystosować do wiekszej ilości pasm niż dwa. Napisz jak konkretnie widzisz rozwój softu dalej to coś podziałamy.
Zrobiłem podobnie bascom at8 i 4x20 lcd. Teraz robię urlopowe radio sterowane fork-henikem. Wychodzi że i tak tyllko dwu pasmowe.Na płytce można jeszcze jednym pinem to wysterować, nic dodatkowo nie wyświetlać a na pinie pojawia się sygnał jak na lcd wyświetla f pow. np 5MHz. Tak robiłem ale to jakoś ......
A tak to ok to ja proponuję opcję taką... dodatkowa zmienna w konfiguracji (częstotliwość przełączenia pasm) i przełączenie na tym pinie, stan niski poniżej częstotliwości granicznej a stan wysoki powyżej częstotliwości granicznej.
A jeśli ustawimy tam wartość "0" to zawsze będzie niski stan opcja dla jednego pasma.
No dobra cisa w eterze na temat Zlomka .Ja znowu na chorobowym i namalowałem płytkę *shelda*pod Lcd5110 ,Arduino Mini ,modul DDS impulsator 4x switch (jeden więcej) i powielacz ICS502 na dodatkowej płytce na kanapę(schemat SQ3AWS post nb.21 z tematu:Proste powielanie częstotliwości).Zasilanie zworkom USB lub zewnętrzne stabilizatory 5V i 3V3 Moze się komu przyda
Michał świetna robota!

Bardzo mi się podoba ta płyteczka. Muszę się zorientować ile by kosztowało zrobienie fabryki to sobie zamówimy, co Ty na to?. Ale zanim to zrobimy to może w wolnej chwili wyprowadzisz wolne piny procesora na goldpiny? Do dalszego wykorzystania...
Witam znowu namalowałem następna plyteczka nad arduino(kanapka) wyprowadzone piny i propozycja piny A4 A5 do komunikacji z PCF8574 a do PTT i S metra proponuje A6 A7
dodatkowo kilka (8pin)pinuAngel
Z Arduino do góry wyprowadzić tylko wybrane piny. Boczne piny 9 ,10 ,DTR tylko do podtrzymania płytkę z PCF8574
Mała kosmetyka w okolica impulsatora i na tym bi zakonczil projekt płytki chyba że trafią się konstruktywne sugestyje Angry.
Zalecane powielanie,kopiowanie,wytrawianie itp..Blush
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

[attachment=9253]
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
Stron: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Przekierowanie