logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zbudować jednokierunkowy tor 433MHz w BASCOM?

ShEvU_elektro 15 Kwi 2006 23:03 3976 6
REKLAMA
  • #1 2532797
    ShEvU_elektro
    Poziom 25  
    Posty: 995
    Pomógł: 26
    Ocena: 22
    Witam chce sobie poskładac taki tor nadawczo odbiorczy oczywiście jednokierunkowy.


    Nie mam zupełnie pojęcia jak sie do tego zabrać w BASCOM-ie.
    Niewiem jak przesłac dane itd.
    prosze o naświetlenie sprawy :)
    z góry dzieki :)

    Pozdrawiam
  • REKLAMA
  • #2 2532841
    cyberdar
    Poziom 31  
    Posty: 1465
    Pomógł: 161
    Ocena: 73
    Witam

    Zakładam, że robisz to na dwóch mikrokontrolerach. Do wyprowadzenia TxD jednego mikrokontrolera podłączasz nadajnik a do drugiego mikrokontrolera do wyprowadzenia RxD podłączasz odbiornik. I to cała filozofia. Ale radzę ustawić raczej niską prędkość transmisji no chyba, że masz dobrej jakości moduły. Kolejna sprawa to właśnie jakość tych modułów. Jak będziesz miał paści to pewnie nic z tego nie zrobisz - mam na myśli przede wszystkim odbiornik. Odbiorniki za 15-20zł łapią zwykle wszystko co popadnie przez co nawiązanie jakiejkolwiek komunikacji będzie dość kłopotliwe. Warto na wyjściu odbiornika dać diodę LED. Jeśli po włączeniu samego odbiornika dioda będzie się zapalać pomimo braku sygnału z nadajnika lub będzie świecić światłem ciągłym to na tym etapie zmień odbiornik bo nici będą z tego wszystkiego. Oczywiście diodę należy połączyć do układu tak aby w stanie spoczynku bez sygnału nie świeciła. Dobrze będzie dać jakiś bufor/negator.

    --
    pozdrawiam
  • REKLAMA
  • #3 2532889
    ShEvU_elektro
    Poziom 25  
    Posty: 995
    Pomógł: 26
    Ocena: 22
    dzięki za odpowiedz. :)
    Cała sprzetówke znam wiem jak to połączyc itd.
    Niewiem tylko jak to uruchomic poprostu niewiem co i jak wysyłac.
    dajmy przykład powiedzmy chce zby dioda w odbiorniku zaświeciła sie na chwilke po wysłaniu komendy przez procka. i tutaj niewiem jak to zrobi.

    Byłbym bardzo szczęśliwy gdybyś drapnoł kawałek kodu :)

    P.S odbiornik zamówiłem RR16 telecontrolii mysle że nie bedzie kłopotów przy zakupie patrzyłem na filtracje ten ma filterki SAW wejścia i wyjścia, a nadajnik do tego RT6 też SAW :)

    Pozdrawiam
  • REKLAMA
  • #4 2532999
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Końcówki TXD (nadawanie) i RXD (odbieranie) służą do wymiany danych przez UART. W help'ie do Bascoma jest to opisane. Dane wysyła się instrukcją Print. Do odbioru jest kilka instrukcji. Poszukaj na forum pod hasłem UART, RS232.
  • REKLAMA
  • #6 2534172
    ShEvU_elektro
    Poziom 25  
    Posty: 995
    Pomógł: 26
    Ocena: 22
    Witam.
    ok ok wszytko rozumiem. Używałem już UART-a do połączenia z PC wiem jak przesyłać polecenia itd., lecz niewiem w dalszym ciągu jak ma wyglądać program w procku w nadajniku jak i w odbiorniku. Chciałbym włączac np. 5 urządzen poprzez ten tor radiowy, i tu jest problem bo niewiem jak przesłąć te dane z informacją które urządzenie ma byc aktualnie włączone.
    Mam nadzieje ze teraz wiecie o co mi chodzi. :)

    Aha i ja pisze w BASCOM gdyby ktoś mógł napisać kawałęk kodu to by było bardzo fajnie. :)

    Pozdrawiam
  • #7 2534314
    desa
    Poziom 14  
    Posty: 83
    Pomógł: 8
    Dobra ale jeszcze powedz jaki procesor. Tutaj masz kod prostego nadajnika bez algorytmu kodujacego na procesor 89c51. dane sa wysylane z portu P1.

    Nadajnik:
    
    $large
    Dim X As Byte
    Dim Y As String * 3
    Dim Z As String * 3
    Dim V As Integer
    Dim N As Integer
    Dim L As Integer
    $baud = 4800
    $crystal = 12000000
    Start:
    If P1 <> 255 Then
    Dim A As Byte
    Gosub Wys
    Y = Str(p1)
    If X <> P1 Then
       If Y <> "255" Then
       Reset P2.3
       Z = "1"
       V = Len(z)
       Waitms 200
       Y = Str(p1)
       X = P1
       Waitms 200
       Gosub Nad
       Waitms 200
       Gosub Nad
       Waitms 200
       Gosub Nad
       Waitms 200
       Gosub Nad
       Waitms 200
       Gosub Nad
       Waitms 200
       Gosub Nad
       Waitms 200
       Gosub Nad
       Waitms 100
       Set P2.3
    
       End If
    End If
    End If
    If P1 = 255 Then
    X = "FF"
    End If
    Home
    Goto Start
    End
    Nad:
          Locate 2 , 10
          If V = 1 Then
             N = Len(y)
             If N = 1 Then
             Print "100" ; Z ; "00" ; Y
             Lcd "100" ; Z ; "00" ; Y
             End If
             If N = 2 Then
             Print "100" ; Z ; "0" ; Y
             Lcd "100" ; Z ; "0" ; Y
             End If
             If N = 3 Then
             Print "100" ; Z ; Y
             Lcd "100" ; Z ; Y
             End If
          End If
          If V = 2 Then
             N = Len(y)
             If N = 1 Then
             Print "10" ; Z ; "00" ; Y
             Lcd "10" ; Z ; "00" ; Y
             End If
             If N = 2 Then
             Print "10" ; Z ; "0" ; Y
             Lcd "10" ; Z ; "0" ; Y
             End If
             If N = 3 Then
             Print "10" ; Z ; Y
             Lcd "10" ; Z ; Y
             End If
          End If
          If V = 3 Then
             N = Len(y)
             If N = 1 Then
             Print "1" ; Z ; "00" ; Y
             Lcd "1" ; Z ; "00" ; Y
             End If
             If N = 2 Then
             Print "1" ; Z ; "0" ; Y
             Lcd "1" ; Z ; "0" ; Y
             End If
             If N = 3 Then
             Print "1" ; Z ; Y
             Lcd "1" ; Z ; Y
             End If
          End If
    Return
    
    

    Odbiornik tez zrobiony na tym procesorze. Wyjście masz na portcie P0. Powinno działac. Sorrka za taki kod ale ja to przerabialem z mojego a ja mam jeszcze aimpementowana obsluge wyswetlacza LCD a algorytm kodujący.

    Odbiornik:

    
    $timeout
    $large
    P0 = 0
    $baud = 4800
    $crystal = 12000000
    Dim S As String * 7
    Dim Z As String * 6
    Dim A0 As Integer
    Dim A1 As Integer
    Dim A2 As Integer
    Dim A3 As Integer
    Dim A4 As Integer
    Dim A5 As Integer
    Dim A6 As Integer
    Dim A As Byte
    Dim D As String * 6
    Start:
    Input S Noecho Timeout = 1159
    If S <> "" Then
    If Len(s) = 7 Then
    A0 = Val(left(s , 1))
    A2 = Val(mid(s , 2 , 1))
    A2 = Val(mid(s , 3 , 1))
    A3 = Val(mid(s , 4 , 1))
    A4 = Val(mid(s , 5 , 1))
    A5 = Val(mid(s , 6 , 1))
    A6 = Val(mid(s , 7 , 1))
    If A0 = 1 Then
    If A1 <= 9 Then
    If A2 <= 9 Then
    If A3 <= 9 Then
    If A4 <= 9 Then
    If A5 <= 9 Then
    If A6 <= 9 Then
    Z = Mid(s , 5 , 3)
    A = Val(z)
    P0 = A
    Input S Noecho Timeout = 50
    Input S Noecho Timeout = 50
    Input S Noecho Timeout = 50
    
    Wait 1
    Waitms 255
    Waitms 245
    S = ""
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    Goto Start
    


    Sprawdz czy to chodzi bo nie mam mozliwosci sprawdzic. Ale powinno byc wszytko oki. Ja uzywam nadajnika i odbiornikow BR i BT.

Podsumowanie tematu

✨ Dyskusja dotyczy budowy jednokierunkowego toru nadawczo-odbiorczego 433MHz w BASCOM-ie, wykorzystującego dwa mikrokontrolery połączone z modułami radiowymi. Nadajnik podłączany jest do wyjścia TxD mikrokontrolera, a odbiornik do wejścia RxD, komunikacja odbywa się przez UART z niską prędkością transmisji ze względu na jakość modułów. Zaleca się stosowanie modułów z filtrami SAW dla lepszej selektywności sygnału. Przykładowo użyto odbiornika RR16 i nadajnika RT6 z filtracją SAW. W BASCOM-ie dane wysyła się instrukcją Print, a odbiera za pomocą funkcji UART. Przedstawiono fragment kodu dla mikrokontrolera 89c51, który pokazuje prostą implementację nadajnika wysyłającego dane z portu P1 przy prędkości 4800 baudów i taktowaniu 12 MHz. Poruszono także problem adresowania i sterowania wieloma urządzeniami (np. 5 urządzeń) poprzez przesyłanie odpowiednich komend radiowych. Wskazano na konieczność odpowiedniego buforowania sygnału odbiornika i testowania działania diodą LED sygnalizującą odbiór sygnału. Dodatkowo udostępniono link do projektu opartego na podobnej transmisji radiowej.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA