اطلاعیه

Collapse
No announcement yet.

مشکل در ماژول SRF02

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

    #16
    پاسخ : مشکل در ماژول SRF02

    اون 0 برای اینه که میخواستم بعدش نوع خروجی را به cm تغییر بدم در واقع این را خود دیتاشیت گفته که باید اینجوری بنیسی.
    خروجی این ماژول به صورت دو بایتی هست یک بایت با ارزش بالا و یک بایت با ارزش پایین که به ترتیب در i2c_read(1) و i2c_read(0) قرار دارند که با کنار هم گذاشتن اینها فاصله به سانتی متر به دست میآید در این برنامه اول اونا را توی bit1 و bit2 قرار میدیم بعد اونها را به شکل زیر کنار هم میذاریم:
    ultra=bit1;
    ultra=ultra*256+bit2;
    چيزي را بگو که بتواني بنويسي
    چيزي را بنويس که بتواني امضا کني
    چيزي را امضا کن که بتواني به آن عمل کني (ناپلئون)

    دیدگاه


      #17
      پاسخ : مشکل در ماژول SRF02

      سلام ماژولم رسید :wow: :wow: :wow: :wow:
      حالا که داخل دیتاشیت رو نگاه کردم متوجه دو تا پایه شدم که اون ها رو نمی شناسم :angry: :angry: :angry: :angry: :angry:
      یکی پایه mode که نمی دونم چیه :cry2: :cry2: :cry2: :cry2:
      یکی پایه ov ground که نمی دونم فقط حدس می زنم که زمین باشه :read: :read: :read: :read: :read:
      لطفا بگید این دوتا پایه وظیفشون چیه با تشکر :nerd:

      دیدگاه


        #18
        پاسخ : مشکل در ماژول SRF02

        تا اونجا ای که من یادمه اگه اشتباه نگرده باشم mode برای انتخاب حالت i2c ویا سریال است.
        اون یکی هم که گفتید همون gnd است. :nerd:
        چيزي را بگو که بتواني بنويسي
        چيزي را بنويس که بتواني امضا کني
        چيزي را امضا کن که بتواني به آن عمل کني (ناپلئون)

        دیدگاه


          #19
          پاسخ : مشکل در ماژول SRF02

          سلام داداش oo: oo: oo:
          من مدار رو بستم :applause: :applause:
          ولی‌ یه مشکل
          همش عدد -۱ رو نشون میده
          تو رو خدا کمک کنید دیگه دارم دیوانه میشم
          راستی‌ من متقیر ultra رو روی ال‌ سی‌ دی نمایش میدم
          موفق باشید :nerd: :nerd:

          دیدگاه


            #20
            پاسخ : مشکل در ماژول SRF02

            کد:
            while (1)
               {
               i2c_start ();
                  i2c_write (226); //srf adress
                  i2c_write (0);
                  i2c_write (0x51); // unit=cm
                  i2c_stop ();              
                  i2c_start ();
                  i2c_write (226); // srf adress
                  i2c_write (2); // data request
                  i2c_start ();
                  i2c_write (227); // srf adress +1
                  bit1=i2c_read (1); // high value data reg
                  bit2=i2c_read (0); // low value data reg
                  i2c_stop ();
                  ultra=bit1;
                  ultra=ultra*256+bit2; 
                  itoa(ultra,s1); 
                  lcd_clear();
                  lcd_puts(s1);
                  delay_ms(100);
                  
                  
               
               };
            }

            دیدگاه


              #21
              پاسخ : مشکل در ماژول SRF02

              سلام ببخشید وسط بحث میپرم :smile:
              من با روش I2C آشنایی ندارم ولی میخوام یه SRF10 رو که اون هم از این روش استفاده میکنه ، راه بندازم.
              جواب ها رو خوندم تقریبا فهمیدم چه کارایی باید انجام داد.. ولی یه قسمت از برنامه رو متوجه نشدم..

              این دستور برای چیه؟؟

              i2c_write (227); // srf adress +1

              چرا یه واحد به آدرس اضافه شده؟؟

              با تشکر
              به رویاهات فکر کن!!

              دیدگاه


                #22
                پاسخ : مشکل در ماژول SRF02

                سلام
                من با ماژول یه فاصله سنج ساختم :biggrin: :biggrin:
                ولی یه مشکلی داره :sad: :sad:

                فاصله های بیشتر از 50 سانت رو اندازه نمیگریه و می نویسه 1536 oo: :angry:
                برنامم رو هم براتون می ذارم، لطفا کمکم کنید.

                کد:
                   i2c_start ();
                      i2c_write (0xE0); //srf adress
                      i2c_write (0);
                     i2c_write (0x51); // unit=cm
                      i2c_stop ();              
                      i2c_start ();
                      i2c_write (0xE0); // srf adress
                      i2c_write (2); // data request
                      i2c_start ();
                      i2c_write (225); // srf adress +1
                      bit1=i2c_read (1); // high value data reg
                      bit2=i2c_read (0); // low value data reg
                      i2c_stop ();
                      ultra=bit1;
                      ultra=ultra*256+bit2; 
                      itoa(ultra,s1); 
                      lcd_clear();
                      lcd_puts(s1);
                      delay_ms(10);

                دیدگاه


                  #23
                  پاسخ : مشکل در ماژول SRF02

                  سلام
                  تو رو خدا پاسخ بدید
                  این سوال آقای شفیع زاده رو پاسخ بدید

                  دیدگاه


                    #24
                    پاسخ : مشکل در ماژول SRF02

                    دوستان شرمنده . این هفته خیلی کار داشتم .
                    امشب دوباره میام که اگه کاری از دستم ساخته باشه انجام بدم
                    چيزي را بگو که بتواني بنويسي
                    چيزي را بنويس که بتواني امضا کني
                    چيزي را امضا کن که بتواني به آن عمل کني (ناپلئون)

                    دیدگاه


                      #25
                      پاسخ : مشکل در ماژول SRF02

                      سلام
                      نه داداش زحمت نکش مشکل حل شد :wow: :wow: :wow: :wow:
                      این برادر اریک ماطوسیان از ما خواستند که برنامه رو بهشون بدیم
                      داداش این پیام خصوصی برا شما ارسال نمی شه (نمی دونم چرا)
                      به هر حال بیا اینم برنامه :cry2:
                      برنامه رو یکی از دوستان به نام masuod70 گذاشته :read:
                      البته از من به دلایلی خواست تا برنامه رو علنی نکنم :angry:
                      من هم که متعهد به قول !!!!!!!
                      نوشته اصلی توسط masoud70
                      درود شما این از این تابع استفاده کن ! صدرصد جواب میگیری
                      یه دعایی هم برای ما
                      هرجا که خواستی فقط تابع fasele(); v رو صدا بزن و نمایش بده
                      اما 2 نکته اینکه متغییر های str و data رو int تعریف کن و به طور سراسری!
                      کد:
                      void fasele(void)
                      {
                        i2c_start(); 
                        i2c_write(0xE0);
                        i2c_write(0);
                        i2c_write(0x51);
                        i2c_stop(); 
                        delay_ms(70);
                        i2c_start();
                        i2c_write(0xE0);
                        i2c_write(3);
                        i2c_start(); 
                        i2c_write(0xE1); 
                        str=i2c_read(0);
                        i2c_stop();   
                        i2c_start();
                        i2c_write(0xE0); 
                        i2c_write(2); 
                        i2c_start(); 
                        i2c_write(0xE1);
                        str2=i2c_read(0); 
                        i2c_stop();
                        data=(str2)*256+str; 
                      }

                      دیدگاه


                        #26
                        پاسخ : مشکل در ماژول SRF02

                        نوشته اصلی توسط mmh1
                        این برادر اریک ماطوسیان از ما خواستند که برنامه رو بهشون بدیم
                        داداش این پیام خصوصی برا شما ارسال نمی شه (نمی دونم چرا)
                        دستت درد نکنه داداش نمیدونم ای بابا یعنی مشکل داره..؟؟؟ به هر حال ممنون از پاسخت و برنامه ای که گذاشتی..
                        یکم گیج میشم تو برنامه .. تقریبا فهمیدم چجوریاست و توضیحات آقای lordsoroosh هم تو صفحه اول خیلی کمک کرد فقط این دو قسمت از برنامه رو نفهمیدم برای چی اینجوریه؟؟

                        1- i2c_write(0xE1); << اینجا چرا یک واحد به آدرس اضافه شده؟ کارش چیه؟ :smile:
                        2- data=(str2)*256+str << چرا اینطوری نوشتیم؟؟ 256 برای چی هست؟؟؟

                        با تشکر
                        به رویاهات فکر کن!!

                        دیدگاه


                          #27
                          پاسخ : مشکل در ماژول SRF02

                          دوست عزیز اون ادرس + 1 را باید بنویسی. یعنی کار خاص انجام نمیده باید فقط بزنیش! :nerd:
                          چيزي را بگو که بتواني بنويسي
                          چيزي را بنويس که بتواني امضا کني
                          چيزي را امضا کن که بتواني به آن عمل کني (ناپلئون)

                          دیدگاه


                            #28
                            پاسخ : مشکل در ماژول SRF02

                            مرسی داداش،
                            اون دومیه چی؟؟ اون 256 که ضرب شده..
                            به رویاهات فکر کن!!

                            دیدگاه


                              #29
                              پاسخ : مشکل در ماژول SRF02

                              قبلا توضیح دادم.
                              خروجی این ماژول به صورت دوباتیه که وقتی این دوتا بایت را کنار هم بذاریم خروجی بدست میاد . برای این که این دو تا بایت را کنار هم بذاریم یکی را در 256 ضرب میکنیم و بعلاوه ی اون یکی می کنیم که خروجی به صورت 8 بیتی بدست مساد. :nerd: :nice: :nerd: :read:
                              چيزي را بگو که بتواني بنويسي
                              چيزي را بنويس که بتواني امضا کني
                              چيزي را امضا کن که بتواني به آن عمل کني (ناپلئون)

                              دیدگاه


                                #30
                                پاسخ : مشکل در ماژول SRF02

                                سلام آقا این آدرس 0xE1 چیه آخه تو دیتا شیت دربارش چیزی ننوشته؟

                                دیدگاه

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