اطلاعیه

Collapse
No announcement yet.

انتقال اطلاعات با ماژول hmt-hmr

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    انتقال اطلاعات با ماژول hmt-hmr

    سلام من میخوام اطلاعات رو بفرستم و در گیرنده روی lcd نشون بدم. به دلیل نویز اطلاعات رو تبدیل به رشته کردم و میفرستم.
    فرستنده:
    $regfile = "m16def.dat"
    $crystal = 11059200
    $baud = 9600
    Config Portb.0 = Input
    Config Porta = Input
    Portb.0 = 1
    Dim B As Byte , S As String * 3 , A As String * 1 , Ro As String * 4
    A = "h"
    Do
    Debounce Pinb.0 , 0 , Ersal
    Loop
    Ersal:
    B = Pina
    S = Str(b)
    Ro = A + S
    Do
    Print Ro;chr(13);
    Waitms 50
    Loop
    End
    گیرنده:
    $regfile = "m16def.dat"
    $crystal = 11059200
    $baud = 9600
    Config Porta = Output
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , _
    Db7 = Porta.5 , Rs = Porta.0 , E = Porta.1
    Dim B As Byte , S As String * 10 , A As String * 1 , D As Byte , Ro As String * 10
    Cls
    Do
    Input Ro
    A = Left(ro , 1)
    If A = "h" Then
    S = Mid(ro , 2 , )
    B = Val(s)
    Home
    Lcd B
    End If
    Loop
    End
    من وقتی پورت A رو تغییر میدم باید در گیرنده روی lcd عدد مربوطه رو نشون بده.
    وقتی فرستنده رو روشن می کنم و میفرستم یک بار نشون میده ولی وقتی فرستنده رو
    خاموش و روشن می کنم و دوباره میفرسم عدد نامشخصی نشون میده به نظرتون مشکل کجاست؟؟
    ممنون میشم کمکم کنید

    #2
    پاسخ : انتقال اطلاعات با ماژول hmt-hmr

    من برنامه شما رو مطالعه نکردم اما در مورد ماژولآ‌هایی که استفاده کردید باید عرض کنم که این ماژولآ‌ها بهتر هست اول با هم سنکرون بشوند بعد شروع به کار با اونها بکنید، جهت اینکار میآ‌تونید چند بار عدد 55 هگزا دسیمال را ارسال کنید ( معادل این عدد به باینری یکی در میان صفر و یک است ) با ارسال این کد یک پالس تقریبا مربعی ارسال میشه و گیرنده بهتر میآ‌تواند همزمان شود، در غیر اینصورت ممکن هست داده ها اشتباهی دریافت شوند. بهتر هست حتی در حین کار نیز هر از گاهی عدد 55 هگزا را ارسال کنید.

    از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
    هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
    اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
    اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
    شاد و موفق باشید

    دیدگاه


      #3
      پاسخ : انتقال اطلاعات با ماژول hmt-hmr

      من با این دو ماژول کار کردم این دو ماژول چند نکته داره که باید رعایت کنی اول اینکه فرستنده بعد از چند میلی ثانیه که اطلاعات بر روی پایه Data قرار نگیره به حالت standby می ره به همین خاطر قبل از ارسال کد اصلی یک بار عددی را ارسال کن و بعد دیتای اصلی نکته دوم حتما اطلاعاتی را که می خواهی بفرستی کد کن و بعد بفرست و برای دریافت اطلاعات صحیح توسط گیرنده در محیط پر نویز اطلاعاتتو چند بار ارسال کن

      دیدگاه


        #4
        پاسخ : انتقال اطلاعات با ماژول hmt-hmr

        من تا حالا 3 4 بار با این ماژول کار کردم
        2 نکته هم من اضافه کنم
        1 اینکه از کریستال 11059200 استفاده کن!
        2 اینکه دفعه اول اطلاعاتو کامل از ورودی بگیر
        اما از دفعه دوم به بعد از کاراکتر دوم به بعد بگیر مثلا اگه 10 تا کاراکتر می فرستی بار اول 10 تا بگیر بار دوم 11 تا بگیر و بعد کاراکتر اولو حذف کن
        { خلاف قوانین ، پاک شد }

        دیدگاه


          #5
          پاسخ : انتقال اطلاعات با ماژول hmt-hmr

          به نظرتون چه تغییری باید در برنامم انجام دهم؟
          ممنون میشم اگه کمکم کنید
          من باید پروژه رو زودتر تحویل دهم

          دیدگاه


            #6
            پاسخ : انتقال اطلاعات با ماژول hmt-hmr

            سلام این برنامه فرستنده هست:
            $regfile = "m16def.dat"
            $crystal = 11059200
            $baud = 9600
            Config Portb.0 = Input
            Config Porta = Input
            Portb.0 = 1
            Dim B As Byte , S As String * 3 , A As String * 1 , Ro As String * 4
            Dim D As Byte
            Cls
            Do
            Debounce Pinb.0 , 0 , Ersal
            Loop
            Ersal:
            B = Pina
            A = "h"
            S = Str(b)
            Ro = A + S
            For D = 1 To 8
            Print Ro ; Chr(13);
            Waitms 10
            Next D
            Return
            End

            گیرنده:
            $regfile = "m16def.dat"
            $crystal = 11059200
            $baud = 9600
            Config Porta = Output
            Config Lcd = 16 * 2
            Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , _
            Db7 = Porta.5 , Rs = Porta.0 , E = Porta.1
            Dim B As Byte , S As String * 3 , A As String * 1 , Ro As String * 4
            Cls
            Locate 1 , 5
            Lcd "welcom"
            Wait 2
            Cls
            Do
            Input Ro
            A = Left(ro , 1)
            If A = "h" Then
            S = Mid(ro , 2 , 2)
            B = Val(s)
            Locate 1 , 1
            Lcd B
            Wait 3
            Cls
            End If
            Loop
            End
            وقتی در فرستنده کلید رو می زنم به زیر برنامه ارسال می رود و پورت a رو میخونه و میفرسته. ولی وقتی مثلا عدد 3 رو میفرستم در گیرنده عدد 67 رو نشون میده و بعضی وقت ها درست نشون میده. یه بار عدد ارسالی رو درست نشون میده و بعضی وقت ها نه. به نظرتون مشکل کجاست؟ آیا باید برنامه رو درست کنم یا مشکل سخت افزاره؟ من پایه های پورت a روpull down کردم.
            ممنون میشم کمکم کنید

            دیدگاه


              #7
              پاسخ : انتقال اطلاعات با ماژول hmt-hmr

              دوست عزیز دقیقا مشکلتون کجاست؟؟؟؟؟
              practice make perfect

              دیدگاه


                #8
                پاسخ : انتقال اطلاعات با ماژول hmt-hmr

                وقتی مثلا عدد 3 رو میفرستم در گیرنده عدد 67 رو نشون میده و بعضی وقت ها درست نشون میده.
                آیا باید تغییری در برنامم بدم یا از نظر سخت افزاری مشکل هست؟
                ممنون میشم

                دیدگاه


                  #9
                  پاسخ : انتقال اطلاعات با ماژول hmt-hmr

                  دوست عزیز شماتیکت را بذار .
                  شاید مشکل را متوجه شدیم >
                  practice make perfect

                  دیدگاه


                    #10
                    پاسخ : انتقال اطلاعات با ماژول hmt-hmr

                    http://www.4shared.com/file/H9BMcuv3/ersal.html

                    دیدگاه


                      #11
                      پاسخ : انتقال اطلاعات با ماژول hmt-hmr

                      دوست عزیز من که این جا فرستنده گیرنده ندیدم .
                      میشه بگی فرستنده و گیرنده را چجوری به میکرو زدین ؟؟
                      practice make perfect

                      دیدگاه


                        #12
                        پاسخ : انتقال اطلاعات با ماژول hmt-hmr

                        پایه tx میکرو فرستنده رو به پایه data ماژول.
                        پایه VCC و gnd ماژول رو به منبغ تغذیه.
                        پایه rx میکرو گیرنده رو به پایه data ماژول گیرنده.
                        پایه vcc وgnd ماژول رو مثل فرستنده وصل کردم.
                        پایه enable ماژول گیرنده رو به vcc وصل کردم.

                        دیدگاه


                          #13
                          پاسخ : انتقال اطلاعات با ماژول hmt-hmr

                          من تا حالا هرجا ماژول HMT &HMR شماتیکشو تو تاپیک ها دیدم واسط MAX232 استفاده نکردن در صورتی که این ماژول خروجیش فقط RS232 یعنی مثل HMTR نیست که هم TTL داشته باشه هم RS232 خیلی عجیبه که بعضیا می گن ما جواب گرفتیم اوونم بدون 232 MAX !!!!!!
                          به هر حال این برنامه یه عدد و از اینور میفرسته اوونور در قسمت گیرنده رو LCD و پورت نمایش میده می تونی خودت گسترشش بدی
                          HMR خیلی زود تر از ماژول HMTR به استند بای میره و به صورت اتومات با دریافت اطلاعات از این حالت بیرون میاد که این وسط امکان داره یه سری اطلاعات از بین بره برای این کار بهتر اطلاعات تو یه حلقه قرار بگیرن و 10 15 بار ارسال بشه
                          در کل به نظرم یه تفاوت های جزیی بین HMR &HMT و HMTR هست که رعایت نشه جواب نمی گیری
                          باود ریت نرمال هم 4800 پیشنهاد شده اما با 9600 هم بخوبی کار می کنه
                          یه نکته دیگه هم یادم اوومد
                          موقع کار با این ماژول برای بار اول رشته به صورت کامل و دقیق ارسال میشه اما از دفعه دوم به بعد یک کاراکتر به اول رشته اضافه میشه که یه چیز تو مایه های نویز سیستمه !!!!! هنوزم دلیلشو نفهیمدم
                          فرستنده!!

                          گیرنده
                          کد:
                          $regfile = "m16def.dat" : $crystal = 11059200
                          $baud = 4800
                          Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db7 = Portc.2 , Db6 = Portc.3 , Db5 = Portc.4 , Db4 = Portc.5
                          Cursor Off
                          Config Portb = Output
                          Config Porta.0 = Input
                          Dim S As String * 20 , Ss As String * 20 , B As Byte
                          Dim P As Byte , X As Byte
                          
                          
                          Do
                            Input S
                          
                            B = Len(s) : Ss = Left(s , 3)
                          
                            If Ss = "mnt" And B = 6 Then :
                             Ss = Mid(s , 4 , 3)
                             P = Val(ss)
                             Locate 1 , 1 : Lcd Ss ; "    "
                          
                             End If
                          
                          
                            S = Mid(s , 2 , 20)
                            B = Len(s) : Ss = Left(s , 3)
                          
                            If Ss = "mnt" And B = 6 Then :
                             Ss = Mid(s , 4 , 3)
                             P = Val(ss)
                             Locate 1 , 1 : Lcd Ss ; "    "
                          
                             End If
                          
                          
                          
                            Portb = P
                          
                          Loop

                          فرستنده
                          کد:
                          $regfile = "m16def.dat" : $crystal = 11059200
                          $baud = 4800
                          Config Portb = Input
                          Dim A As Byte , B As Byte
                          Do
                          
                             Debounce Pinb.0 , 0 , Afzayesh , Sub
                             Debounce Pinb.1 , 0 , Kahesh , Sub
                          
                             Loop
                          
                          Afzayesh:
                          Incr A
                          Gosub Send
                          Return
                          
                          
                          Kahesh:
                          Decr A
                          Gosub Send
                          Return
                          
                          Send:
                          For B = 1 To 15
                          If A < 10 Then Print "mnt" ; "00" ; A
                          If A > 9 And A < 100 Then Print "mnt" ; "0" ; A
                          If A > 99 Then Print "mnt" ; A
                          Next
                          Return
                          { خلاف قوانین ، پاک شد }

                          دیدگاه


                            #14
                            پاسخ : انتقال اطلاعات با ماژول hmt-hmr

                            سلام
                            کد گذاری بلدین ؟
                            توجه داشته باشین این ماژول ها نیم دو طرفه هستن
                            هم زمان نمی توان ارسال و دریافت کنند
                            این مشکل من بود
                            برای حل مشکل شما بهترین راه کد گذاری هستش
                            :read:
                            [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

                            دیدگاه


                              #15
                              پاسخ : انتقال اطلاعات با ماژول hmt-hmr

                              یه مثال برای کد گذاری میزنید.
                              ممنون میشم

                              دیدگاه

                              لطفا صبر کنید...
                              X