Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Moduły 433Mhz+bascom= jak? bo zupełnie niewiem

ShEvU_elektro 15 Kwi 2006 23:03 3325 6
  • #1 15 Kwi 2006 23:03
    ShEvU_elektro
    Poziom 25  

    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

    0 6
  • #2 15 Kwi 2006 23:15
    cyberdar
    Poziom 31  

    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

    0
  • #3 15 Kwi 2006 23:25
    ShEvU_elektro
    Poziom 25  

    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

    0
  • #4 15 Kwi 2006 23:58
    M. S.
    Poziom 34  

    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.

    0
  • #6 16 Kwi 2006 14:24
    ShEvU_elektro
    Poziom 25  

    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

    0
  • #7 16 Kwi 2006 15:20
    desa
    Poziom 13  

    Dobra ale jeszcze powedz jaki procesor. Tutaj masz kod prostego nadajnika bez algorytmu kodujacego na procesor 89c51. dane sa wysylane z portu P1.

    Nadajnik:

    Code:

    $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:

    Code:

    $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.

    0