اطلاعیه

Collapse
No announcement yet.

کمک در مورد راه اندازی HM-R و HM-T 433Mhz

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

    #16
    پاسخ : کمک در مورد راه اندازی HM-R و HM-T 433Mhz

    سلام آقا مجید
    منhm-tr دارم و اول بصورت ارتباط سریال بستم و جواب گرفتم ولی وقتی ماژولارو گذاشتم نویز گرفتم :sad:که گفتن از interrupt استفاده کنیم ولی من با اینتراپت rx کار نکردم میشه کد برنامشو بذارین واسم اگه در bascom باشه ممنون میشم اگه نه codevision
    یک دنیا ممنونم

    دیدگاه


      #17
      پاسخ : کمک در مورد راه اندازی HM-R و HM-T 433Mhz

      سلام A.S Roma
      شدیدا به کمکتون محتاجم
      پروژه من شامل ارسالو دریافت دیتا با hm-tr است. خیلی وقته دارم روش کار میکنم ولی هیچ نتیجه ای نگرفتم :angry:
      شما در فروم گفته بودین جواب گرفتین
      میشه ازتون خواهش کنم برنامه ای که باهاش جواب گرفتینو واسم میل کنید یا تو فروم بذارین؟ plzzzzzzz
      یه دنیا ممنونم.
      ni_saghari@yahoo.com

      دیدگاه


        #18
        پاسخ : کمک در مورد راه اندازی HM-R و HM-T 433Mhz

        ببخشید که دیر جواب میدم :redface:

        با code vision بلدم کار خاصی نمیخواد انجام بدی فقط دیتاهایی که میاد خودش میریزه تو ارایه کافیه اون ارایه رو هر کاری میخوای روش انجام بدی برنامشو ندارم ولی من همیشه یه پالس سینک میفرستادم و یه سری چک سام و اونارو چک میکردم اگه درست بود فرض رو بر این میزاشتم که اطلاعات اصلیمم درسته و شروع به دریافت میکردم

        // USART Receiver interrupt service routine
        interrupt [USART_RXC] void usart_rx_isr(void)
        {
        char status,data;
        status=UCSRA;
        data=UDR;
        if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
        {
        rx_buffer[rx_wr_index]=data;
        دیتا ریخته میشه تو بافر rx ولی من شرطی براش نزاشتم میتونی شما اینکارو بکنی در اصل چیزایی که میخوای بنویسی یا اگه شرط داری تو همین قسمت بنویس

        rx_wr_index++;
        if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
        if (++rx_counter == RX_BUFFER_SIZE)
        {
        rx_counter=0;
        rx_buffer_overflow=1;
        };
        };
        }
        ذکات علم یاد دادنه ....

        دیدگاه


          #19
          پاسخ : کمک در مورد راه اندازی HM-R و HM-T 433Mhz

          دوستان من یه دماسنج ساختم و می خوام دما رو با ماژول HMT بفرستم و میکرو دیگه دما رو با HMTR بخونه .برنامه رو نوشتم و با سیم هم که وصل میکنم درست جوایب میده اما وقتی با ماژول میفرستم روی LCD چرت و پرت مینویسه .برنامه فرستنده و گیرنده همین دو برنامه زیر هست. لطفا راهنمایی کنید.PDF آقا سبحان رو هم خوندم ولی نتونستم کاری از پیش ببرم.
          برنامه فرستنده:

          $regfile = "m16def.dat"
          $crystal = 1000000
          $baud = 2400
          Config Adc = Single , Prescaler = Auto , Reference = Avcc

          Dim A As Word

          Cursor Off

          Start Adc

          Do
          A = Getadc(0)
          A = A / 2
          Locate 1 , 1
          Printbin A
          Waitms 10
          Loop
          End

          برنامه گیرنده:

          $regfile = "m32def.dat"
          $crystal = 1000000
          $baud = 2400

          Config Portb = Output
          Config Lcd = 16 * 2
          Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , Rs = Portb.0 , E = Portb.1

          Dim A As Word , B As Byte

          Cls
          Cursor Off

          Do

          Home
          A = Waitkey()
          Locate 1 , 1
          Lcd "temp : "
          Lcd A

          If A < 20 Then
          Portb.2 = 0
          Portb.3 = 1
          Locate 2 , 1
          Lcd "heater on "
          Waitms 20

          Elseif A => 20 And A <= 30 Then
          Portb.2 = 0
          Portb.3 = 0
          Locate 2 , 1
          Lcd "fan,heater: off"
          Waitms 20

          Elseif A > 30 Then
          Portb.3 = 0
          Portb.2 = 1
          Locate 2 , 1
          Lcd "fan on "
          Waitms 20

          End If

          Loop

          End

          دیدگاه


            #20
            پاسخ : کمک در مورد راه اندازی HM-R و HM-T 433Mhz

            با سلام

            این مشکل از فرکانس میکرو می باشد
            شما باید میکرو را روی کریستال خارجی تنظیم کنید و مقدار کریستال هم باید با کریستال موجود روی ماژول HM-TR مطابقت داشته باشد
            که مقدار کریستال 11.0592 می باشد

            با سپاس
            http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

            دیدگاه


              #21
              پاسخ : کمک در مورد راه اندازی HM-R و HM-T 433Mhz

              نوشته اصلی توسط Soodi
              با سلام

              این مشکل از فرکانس میکرو می باشد
              شما باید میکرو را روی کریستال خارجی تنظیم کنید و مقدار کریستال هم باید با کریستال موجود روی ماژول HM-TR مطابقت داشته باشد
              که مقدار کریستال 11.0592 می باشد

              با سپاس
              دوست عزیز من از hmt , hmr استفاده می کنم نه از HM-TR
              کریستال روی ماژول 10.000 است و فرکانی ماژول 433 مگ

              دیدگاه


                #22
                پاسخ : کمک در مورد راه اندازی HM-R و HM-T 433Mhz

                شما اطلاعاتتو کد نکردی در قسمت گیرنده روی باند 433 چون نویز وجود داره مرتب اطلاعات دریافت می کنه برای جلوگیری از این کار شما باید در زمان ارسال اطلاعاتتو کد کنی که گیرنده فقط کد را به عنوان اطلاعات صحیح قبول کنه

                دیدگاه


                  #23
                  پاسخ : کمک در مورد راه اندازی HM-R و HM-T 433Mhz

                  نوشته اصلی توسط balabe
                  شما اطلاعاتتو کد نکردی در قسمت گیرنده روی باند 433 چون نویز وجود داره مرتب اطلاعات دریافت می کنه برای جلوگیری از این کار شما باید در زمان ارسال اطلاعاتتو کد کنی که گیرنده فقط کد را به عنوان اطلاعات صحیح قبول کنه
                  دوست عزیز منظورت از کد فرستادن چند بایت صفر اول هست.؟
                  اگه ممکنه یه مثال توی این برنامه بزنید!؟

                  دیدگاه


                    #24
                    پاسخ : کمک در مورد راه اندازی HM-R و HM-T 433Mhz

                    برای کد کردن مثلا اول عدد 60 و بعد عدد 140 و بعد اطلاعات اصلی و بعد عدد 20 را ارسال می کنی ، در قسمت گیرنده به میکرو می گی اگه عدد اول و دوم و عدد چهارم درست بود عدد سوم را به عنوان اطلاعات اصلی قبول کنه در غیر اینصورت تمامی اعداد را پاک کنه

                    دیدگاه


                      #25
                      کمک در مورد راه اندازی HM-R و HM-T 433Mhz


                      با سلام به همه
                      من یه پروژه دارم که توش از این ماژولها استفاده کردم راستش قبل از این که این ماژولها رو وصل کنم با اتصال سیم به دو ایسی بخوبی جواب میگیرم ولی با وصل این دو ماژول توlcd دمایی که نشون میده هی تغییر میکنه مثلا 300c بعد 0cاینجوری نشون میده ولی سیم وصل میکنم 30c بخوبی نمایش میده کسی از این ماژولا اطلاعی داره ممنون میشم کمکم کن
                      یه سوال اگه فرکانس ماژولهای من 915mhzباشه برنامه هم واسه یه فرکانس دگه از این ماژولها تعریف بشه باید چیکار کنم کجای برنامه رو تغییر بدم ممنون میشم زود جوابی بدین :cry: :cry: :cry:
                      a happy person is one who wants happiness for other

                      دیدگاه


                        #26
                        پاسخ : کمک در مورد راه اندازی HM-R و HM-T 433Mhz

                        فرکانسِ میکروت چنده؟
                        بادریدت چنده؟
                        ?Why not

                        دیدگاه


                          #27
                          پاسخ : کمک در مورد راه اندازی HM-R و HM-T 433Mhz

                          نوشته اصلی توسط deathangel
                          دوستان من یه دماسنج ساختم و می خوام دما رو با ماژول HMT بفرستم و میکرو دیگه دما رو با HMTR بخونه .برنامه رو نوشتم و با سیم هم که وصل میکنم درست جوایب میده اما وقتی با ماژول میفرستم روی LCD چرت و پرت مینویسه .برنامه فرستنده و گیرنده همین دو برنامه زیر هست. لطفا راهنمایی کنید.PDF آقا سبحان رو هم خوندم ولی نتونستم کاری از پیش ببرم.
                          برنامه فرستنده:

                          $regfile = "m16def.dat"
                          $crystal = 1000000
                          $baud = 2400
                          Config Adc = Single , Prescaler = Auto , Reference = Avcc

                          Dim A As Word

                          Cursor Off

                          Start Adc

                          Do
                          A = Getadc(0)
                          A = A / 2
                          Locate 1 , 1
                          Printbin A
                          Waitms 10
                          Loop
                          End
                          ببخشید یک سوال
                          مگه دستور printbin بشتر از مقدار بایت هم میتونه در هر ارسال بفرسته؟
                          اولین مشکل همینه که باید مقدار گرفته شده را به بایت تبدیل کرد و سپس فرستاد و در گیرنده هم برعکس همین کار تا اعداد درست ارسال و دریافت بشن.
                          و ساده ترین کار یک متغیر از نوع بایت تعریف کرده و به آن مقدار ثابتی تخصیص میدهیم و با ارسال و دریافت متغیر از صحت ارسال و دریافت داده ها اطمینال پیدا کرده سپس .....

                          دیدگاه


                            #28
                            پاسخ : کمک در مورد راه اندازی HM-R و HM-T 433Mhz

                            سلام دوست عزیز

                            پسرخاله یه پروژه گذاشته ببین به کارت میاد:

                            http://www.eca.ir/forum2/index.php?t...8179#msg338179


                            البته در مورد مشکلات ماژول اینجا یه چیزایی گفته:

                            http://www.eca.ir/forum2/index.php?topic=58389.0

                            دیدگاه


                              #29
                              پاسخ : کمک در مورد راه اندازی HM-R و HM-T 433Mhz

                              من با این برنامه دیتا رو با HMT ارسال می کنم و با یک HMR دریافت می کنم.
                              مشکل من.
                              زمانی که دیتا اول ارسال می شود در میکروی دوم دریافت می شود ولی دیگه دیتا ارسال نمی شه. ولب وقتی میکرو ها رو رسیت می کنم دوباره کار می کنه ولی فقط یک بار.
                              مشکل از کجاست؟
                              ****************
                              * Transmitter *
                              ****************
                              $regfile = "m32def.dat"
                              $crystal = 1000000
                              $baud = 9600

                              Config Pind.5 = Input
                              Config Pind.6 = Input

                              Dim C1 As String * 13
                              Dim C2 As String * 13

                              Dim A As Byte

                              C1 = "canal1"
                              C2 = "canal2"

                              Main:

                              Do

                              If Pind.5 = 1 Then Goto C1
                              If Pind.6 = 1 Then Goto C2

                              Loop
                              End


                              C1:

                              For A = 1 To 2
                              Print C1 ; Chr(13);
                              Waitms 20

                              Next A

                              Goto Main

                              C2:

                              For A = 1 To 2
                              Print C2 ; Chr(13);
                              Waitms 20

                              Next A

                              Goto Main




                              ****************
                              * Receiver *
                              ****************

                              $regfile = "m32def.dat"
                              $crystal = 1000000
                              $baud = 9600

                              Config Portc.0 = Output
                              Config Portc.1 = Output

                              Config Porta.0 = Output
                              Config Porta.1 = Output
                              Config Porta.2 = Output
                              Config Porta.3 = Output

                              Config Portb.0 = Output


                              Portc.0 = 1
                              Portc.1 = 1

                              Dim S As String * 13

                              Reset Portb.0
                              Waitms 500
                              Set Portb.0

                              Main:

                              Do

                              Input S

                              If S = "canal1" Then Goto C1
                              If S = "canal2" Then Goto C2

                              Loop
                              End

                              C1:

                              Reset Portb.0

                              Porta.0 = 1
                              Porta.1 = 0
                              Waitms 400
                              Porta.0 = 0
                              Porta.1 = 0

                              Goto Main

                              C2:

                              Set Portb.0

                              Porta.0 = 0
                              Porta.1 = 1
                              Waitms 400
                              Porta.0 = 0
                              Porta.1 = 0

                              Goto Main


                              دیدگاه


                                #30
                                پاسخ : کمک در مورد راه اندازی HM-R و HM-T 433Mhz

                                نوشته اصلی توسط feshwari
                                من با این برنامه دیتا رو با HMT ارسال می کنم و با یک HMR دریافت می کنم.
                                مشکل من.
                                زمانی که دیتا اول ارسال می شود در میکروی دوم دریافت می شود ولی دیگه دیتا ارسال نمی شه. ولب وقتی میکرو ها رو رسیت می کنم دوباره کار می کنه ولی فقط یک بار.
                                مشکل از کجاست؟
                                ****************
                                * Transmitter *
                                ****************
                                $regfile = "m32def.dat"
                                $crystal = 1000000
                                $baud = 9600

                                Config Pind.5 = Input
                                Config Pind.6 = Input

                                Dim C1 As String * 13
                                Dim C2 As String * 13

                                Dim A As Byte

                                C1 = "canal1"
                                C2 = "canal2"

                                Main:

                                Do

                                If Pind.5 = 1 Then Goto C1
                                If Pind.6 = 1 Then Goto C2

                                Loop
                                End


                                C1:

                                For A = 1 To 2
                                Print C1 ; Chr(13);
                                Waitms 20

                                Next A

                                Goto Main

                                C2:

                                For A = 1 To 2
                                Print C2 ; Chr(13);
                                Waitms 20

                                Next A

                                Goto Main




                                ****************
                                * Receiver *
                                ****************

                                $regfile = "m32def.dat"
                                $crystal = 1000000
                                $baud = 9600

                                Config Portc.0 = Output
                                Config Portc.1 = Output

                                Config Porta.0 = Output
                                Config Porta.1 = Output
                                Config Porta.2 = Output
                                Config Porta.3 = Output

                                Config Portb.0 = Output


                                Portc.0 = 1
                                Portc.1 = 1

                                Dim S As String * 13

                                Reset Portb.0
                                Waitms 500
                                Set Portb.0

                                Main:

                                Do

                                Input S

                                If S = "canal1" Then Goto C1
                                If S = "canal2" Then Goto C2

                                Loop
                                End

                                C1:

                                Reset Portb.0

                                Porta.0 = 1
                                Porta.1 = 0
                                Waitms 400
                                Porta.0 = 0
                                Porta.1 = 0

                                Goto Main

                                C2:

                                Set Portb.0

                                Porta.0 = 0
                                Porta.1 = 1
                                Waitms 400
                                Porta.0 = 0
                                Porta.1 = 0

                                Goto Main

                                زیر برنامه C1 وC2 رو تو Do-Loop بزار برای هر کدومشون بعدش بیا تو زیر برنامه هاتم شرط ها رو چک کن

                                دیدگاه

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