• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z komunikacją radiostacji z Arduino Uno RS232
#11
Znalazłem sprawcę, w radiu był zimny lut na jednym z pinów gniazda RS232. Przelutowane i działa. Przy okazji dowiedziałem się nieco więcej o samym Arduino i mam nadzieję, że kolejne projekty będą mniej kłopotliwe. Przy okazji chciałbym się zapytać o jedną kwestię, czy jest taka opcja możliwa do wdrążenia.
W tym fragmencie kodu:
Kod:
// IO port definition for bands
int b160 = 2;
int b80 = 3;
int b40 = 4;
int b30 = 5;
int b20 = 6;
int b17 = 7;
int b15 = 8;
int b12 = 9;
int b10 = 10;
int b6 = 11;
// variables
zdefiniowane jest na jakim pinie pojawia się sygnał aby przełączyć odpowiedni przekaźnik , który zaś załączy odpowiednią antenę. Fajnie, ale problem jest tak, że mam trzy anteny a pasm jest więcej, jednak jedna antena obsługuje różne pasma, i tak np pasmo 160m, 80, 17m, 15m,  jest na jednej antenie. Próbowałem zrobić tak aby te pasma załączały pin 2, jednak okazuje się, że mimo iż program się wgrał to jest jakiś konflikt i w efekcie anteny przełączają się jak chcą. Rozumiem więc, że nie mogę w ten sposób zdefiniować kilku pasm pod jeden pin. Czy można to jakoś inaczej zapisać, ten fragment, tak aby możliwe było takie działanie jak opisałem. Dziękuję za pomoc.
 
Odpowiedź
#12
Możesz ale źle podchodzisz do tematu, operuj na flagach a nie na pinach dopiero pozniej uzależnij flagi od pinu
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#13
(29-09-2022, 18:16)Jarewa0606 napisał(a): Możesz ale źle podchodzisz do tematu, operuj na flagach a nie na pinach dopiero pozniej uzależnij flagi od pinu
Poczytam o tym. Niestety Arduino ogarniam na poziomie gotowych kodów, wgrać, podłączyć dodatkowe akcesoria itp... Sam niestety nie znam się na programowaniu, flagach itp. Zdaję sobie też sprawę, że ten kod, który tu zaprezentowałem jest prosty ponieważ pisany też przez jakiegoś radioamatora i to około 7 lat w tył więc pewnie się nieco zmieniło i całość można było by napisać lepiej. Ale finalnie działa i spełnia swoje zadanie, choć jak napisałem chciałbym to zmodyfikować bardziej do swoich potrzeb.
 
Odpowiedź
#14
No i po to są właśnie kursy Arduino, by nie musieć cieszyć się z gotowców znalezionych w sieci.
Jest wiele technik by zrealizować taką zależność, ale trzeba trochę popisać własnych kodów, bo na razie Twój poziom jest na tyle niski, że w ogóle nie zadajesz prawidłowego pytania, albo przyjmujesz jakieś dziwne założenia.
Ja z kolei nie mam pojęcia jak są zbudowane anteny, ale z kodu postu #1 odniosłem wrażenie, że gość dla pasma
// 10m band nie włącza 1 przekaźnika by uruchomić dla tej opcji 1 antenę, tylko odpowiednią ich kombinację, część jest włączana, część wyłączana. Tak jakby budował antenę pod pasmo z wielu komponentów. Czy tam aktywuje jakieś pasma w urządzeniu? No tak czy inaczej jak ma być określona kombinacja to masz zrobić taką kombinację, tylko założenia zmieniasz w tej części gdzie jest ten blok program: if (qrg[1] == '7'), jeśli ta sama kombinacja ma być dla if (qrg[1]=='3' to po prostu w tej linii robisz if (qrg[1] == '7' or qrg[1] == '3' ), w tej sekcji ustawiasz wyjścia do anten takie jak pasują do pasma // 40m band oraz // 80m band (nawet jeśli w tym przykładzie łączenie 40 i 80 jest bzdurą).
a całą sekcję qrg[1]=='3' usuwasz, albo // - zakomentowujesz.
Zresztą on tam też ma taki przykład, or to to samo co || - czyli operator logiczny LUB. Te && to AND. Czyli KURS?
Ma tam taki przykład, gdzie muszą być znaki w tablicy w kombinacji 2 i 8 lub 2 i 9 to wtedy odpala zestaw dla band 10m.
Albo nie rozumiem pytania...
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości