اطلاعیه

Collapse
No announcement yet.

سنسور مادون قرمز

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

    #31
    پاسخ : سنسور مادون قرمز

    ممنون از پاسختون ،
    من الان یک فرستنده ( 2پایه شفاف ) رو به گیرنده ( 2 پایه مشکی ) با adc میکرو راه اندازی کردم : چند تا سوال دارم :
    1) میتونم همین گیرنده مشکی رنگ رو بردارم و بجاش چشم پارسی رو بزارم ؟
    2) مقدار adc رو داخل یک متغییر ذخیره کردم و lcd ش کردم ، زمانی که شیئ جلوش هم نیست تغییراتش خیلی زیاده ، یعنی اینطوری تغییر میکنه : 5 ، 12 ، 55 ، 45 ، 32 ، 13 و . . . . ، چکار کنم تغییراتش کم بشه ؟
    ممنون
    آرزوی سرافرازی برای ایران عزیز . . .


    دیدگاه


      #32
      پاسخ : سنسور مادون قرمز

      سلام دوستان : الان با میکرو مگا 32 یک سمارنده با adc میکرو نوشتم و کارکرد خداروشکر . . . :wow:
      حالا برای افزایش بردش میخواهم از چشم پارسی یا tsop1738 استفاده کنم ، میدونی باید از rc5 که فرکانس 38 کیلوهرتز رو بفرستم و تو گیرنده دریافت کنم و به میکرو بدم و مدوله کنم و . . . .
      تو help بسکام هم مدار فرستندش هست و هم گیرنده + برنامه . . .اما جواب نمیده . . . :surprised:
      رو همین adc میشه کاریش کرد ؟؟؟ ( با عدسی لیزر هم تست کردم اونطور که باید و شاید جواب نداد . . .)
      آرزوی سرافرازی برای ایران عزیز . . .


      دیدگاه


        #33
        پاسخ : سنسور مادون قرمز

        چیکار کردی شما :smile: :smile: :smile:
        استفاده از کانتر که خیلی ساده تر بود - برای تشخیص مانع که نمیشه از RC5 استفاده کرد - این پروتکل برای انتقال اطلاعات هستش
        برای افزایش برد باید فرکانس حدود 38 کیلو تولید کنی (( با میکرو یا 555)) بعد گیرنده مناسب مثل چشمی پارس رو تو خروجی بزاری

        دیدگاه


          #34
          پاسخ : سنسور مادون قرمز

          نوشته اصلی توسط yousef55
          چیکار کردی شما :smile: :smile: :smile:
          استفاده از کانتر که خیلی ساده تر بود - برای تشخیص مانع که نمیشه از RC5 استفاده کرد - این پروتکل برای انتقال اطلاعات هستش
          برای افزایش برد باید فرکانس حدود 38 کیلو تولید کنی (( با میکرو یا 555)) بعد گیرنده مناسب مثل چشمی پارس رو تو خروجی بزاری
          دقیقاً
          من که بهت گفتم
          پروژه من خیلی شبیه پروژه شما بود
          اصلش رو که توضیح دادم
          ADC میخوای چکار آخه؟
          یه اسیلاتور با 555 با مقادیری که دادم بساز (استابل)
          خروجی چشم پارسی رو بده به اینتراپت یا یه پایه معمولی یا شمارنده
          هر وقت لبه بالا رونده (برای اینتراپت) اومد یا ورودی پایه یک شد یعنی یه مانعی بین فرستنده و گیرنده قرار گرفته
          دیگه والا ساده تر از این؟

          دیدگاه


            #35
            پاسخ : سنسور مادون قرمز

            ممنون از پاسختون ، حالا چطوری فرکانس 38 کیلوهرتز با میکرو تولید کنم ( بدون آی سی 555 ) ؟؟؟؟
            راستی گفتید با کانتر راحت تر بود ، میتونین بیشتر توضیح بدید ؟؟؟
            شرمنده دیر میگیرم !!!
            آرزوی سرافرازی برای ایران عزیز . . .


            دیدگاه


              #36
              پاسخ : سنسور مادون قرمز

              نوشته اصلی توسط rezamajdi
              ممنون از پاسختون ، حالا چطوری فرکانس 38 کیلوهرتز با میکرو تولید کنم ( بدون آی سی 555 ) ؟؟؟؟
              راستی گفتید با کانتر راحت تر بود ، میتونین بیشتر توضیح بدید ؟؟؟
              شرمنده دیر میگیرم !!!
              دوره زمانی فرکانس 38 کیلوهرتز میشه تقریبا 26 میکرو ثانیه
              اگر دیوتی سایکل 50 درصد مد نظر باشه (که بهتره باشه) 13 میکرو ثانیه high و 13 میکرو ثانیه low داریم
              حالا فرض بر این که فرکانس کلاک میکروکنترلرت رو 1 مگاهرتز انتخاب کردی
              فرکانس سورس تایمر (حالا هر کدومشون) رو هم 1 مگاهرتز انتخاب کردی
              وقفه تایمرت رو هم فعال کردی
              مقدار اولیه تایمرت رو میدی 242 (چون 255-13=242) اینجور هر 13 میکرو ثانیه، تایمر سرریز میکنه
              خوب
              کافیه تو هر بار سرریز تایمرت رو دوباره مقدار بدی و یه پایه رو برعکس کنی
              اینم دستوراتش
              TCNT0=242;
              PORTx.y~=PORTx.y

              راه حل غیر معقول دیگه استفاده از PWM که بیخیالش
              همینو انجام بده
              ولی توصیه میکنم اول با یه 555 جواب بگیر بعد بیا سراغ این صرفا جهت کسب تجربه

              دیدگاه


                #37
                پاسخ : سنسور مادون قرمز

                ممنون ، من که مبحث محاسبات تایمر رو خوندم قبلآ ، الان هم دوباره خوندم نفهمیدم ، خیلی گیج کنندست ، تو انجمن هم سرچ زدم ، خوب توضیح دادن ولی من متوجه نمیشم !!!!!
                الان برای تولید فرکانس 38 کیلوهرتز SCRYSTAL و Prescale رو چقدر بزارم ؟؟؟
                آیا TIMER0 نیاز به مقدار دهی اولیه داره ؟؟
                ببخشید دیگه متوجه نمیشم !!!!!!!
                آرزوی سرافرازی برای ایران عزیز . . .


                دیدگاه


                  #38
                  پاسخ : سنسور مادون قرمز

                  دوستان میشه بیشتر توضیح بدین چطوری فرکانس 38 کیلوهرتز رو با میکرو تولید کنم ؟؟؟؟؟ ( بدون 555)
                  آرزوی سرافرازی برای ایران عزیز . . .


                  دیدگاه


                    #39
                    پاسخ : سنسور مادون قرمز

                    با بسکام مینویسی انگار
                    $crystal=1000000
                    Prescale = 1
                    مد هم تایمر
                    تقسیمات باید 1 باشه تا هر 1 میکرو ثانیه یک واحد به تایمر اضافه بشه
                    حساب کردیم که دوره تناوب 38 کیلو هرتز میشه 1/38000=26.3 میکرو ثانیه شما بگو 26 فعلا
                    این 26 میکرو ثانیه نصفش 1 و نصفش 0 باید باشه
                    یعنی 13 میکرو ثانیه 1 و 13 میکرو ثانیه 0

                    حالا بیایم سر تایمر ها
                    تایمر 0 رو در حالت تایمر با کلاک سیستم و تقسیمات 1 فعال کن
                    CONFIG TIMER0 = TIMER , PRESCALE= 1
                    وقفه ها رو فعال کن
                    Enable interrupts
                    تایمر 0 رو فعال کن
                    Enable timer0
                    وقفه تایمر 0 رو فعال کن
                    Enable OVF0
                    یه لیبل برای تابع وقفه تایمرت تعریف کن، یادت باشه باید از این تایع return کنی
                    on ovf0 LABLE

                    تایمر رو مقدار میدی که گفتیم 242
                    Timer0=242
                    بعد تایمر رو استارت میکنی
                    start timer0

                    تو لیبلت هم اینو بنویس
                    LABLE:
                    Timer0=242
                    Toggle PORTx.y
                    return

                    من خیلی وقته بیسیک ننوشتم
                    اما کمی دقت کن
                    کار سختی نیست
                    روابط منطقی هستن منطقشون رو پیدا کن

                    دیدگاه


                      #40
                      پاسخ : سنسور مادون قرمز

                      آره با بسکام مینویسم ، باشه ممنون از پاسختون ، کار میکنم ببینم چی میشه . . .
                      ولی آخر محاسبات این تایمر رو ما که نفهمیدیم چیه . . .
                      آرزوی سرافرازی برای ایران عزیز . . .


                      دیدگاه


                        #41
                        پاسخ : سنسور مادون قرمز

                        ای بابا

                        حالا واسه پروژت اینو انجام بده که گفتم

                        حالا شما که بیسکام کار می کنید و زیاد با رجیستر ها سر کار ندارید مثل کدویژن
                        اما. اما AVR یک سری رجیستر ها برای امکانات مختلفش داره
                        مثلا برای همین کار شما ما با رجیستر هایی مثل TCCR0 و TCNT0 برای پیکربندی تایمر TIMSK برای فعال کردن وقفه و تابع وقفه تایمر
                        توضیح این رجیستر ها و بیت هاشون تو کتاب علی کاهه هم هست فکر کنم نبود کتاب امیر ره افروز رو نگاه کن تا بدونی دستورات ساده بیسکام چه چیزایی رو تغییر میده
                        اما تو کدویژن همه چیز دست خودته و برنامه منعطف تره

                        اما تنظیمات تایمر رو سعی میکنم به ساده ترین حالت بهت بگم

                        فرض کنیم فرکانس کلاکت 1 مگاهرتزه
                        دوره زمانی میشه T=1/F پس میشه 1 میکرو ثانیه
                        دوباره فرض کنیم prescale رو 1 گذاشتیم و تایمر 0 رو فعال کردیم
                        تایمر 0 8 بیتی ه یعنی از 0 تا 255 درسته؟
                        خوب حالا با فرض های بالا یعنی فرکانس 1 مگاهرتز و prescale برابر 1 میشه راحت حساب کرد که اگر تایمر رو استارت کنیم مدت زمانی که طور میکشه تایمر از 0 به 255 برسه برابر 255 میکرو ثانیه طور میکشه
                        حالا ما به 100 میکرو ثانیه احتیج داریم. باید چکار کنیم؟
                        خوب باید به تایمر یه مقدار اولیه ای بدیم که وقتی از اون عدد شروع به شمارش کنه و به 255 برسه 100 میکرو ثانیه طول بکشه
                        خوب سادست دیگه
                        با توجه به اینکه قبلا گفتیم با فرض های بالا هر یک میکرو ثانیه یک واحد به تایمر اضافه میشه پس 255-100=155
                        پس اگر مقدار اولیه تایمرمون رو 155 قرار بدیم تا برسه به 255 100 پله داره یعنی 100 میکرو ثانیه

                        حالا بحث رو کمی پیشرفتش میدم تا سوالی نمونه
                        فرکانس 1 مگاهرتز و prescale 1024
                        سخت شد
                        اما نه سخت نیست چون یه جمله آسونش میکنه
                        prescale 1024 یعنی تایمر ما بعد از 1024 کلاک پالس، یک واحد افزوده میشه
                        پس میشه گفت فرکانس تایمر میشه 1/1024 فرکانس اصلی
                        1000000/1024=976 هرتز
                        خوب حالا همون رابطه های قبلی رو که گفتم با فرکانس جدید انجام میدیم
                        دوره تناوب 976 هرتز میشه تقریبا 1 میلی ثانیه
                        حالا هر تایمی بین 0 تا 255 میلی ثانیه رو در این حالت اندازه بگیری

                        اگر توجه کنی تو حالت قبل ما نهایتا تا 255 میکرو ثانیه رو میتونستیم اندازه بگیریم اما الان شده تا 255 میلی ثانیه
                        این همون دلیلیه که prescale بوجود اومود تا ما بتونیم رنج وسیعی از تایم ها رو بسنجیم
                        امیدوارم این توضیح برات کارآمد باشه

                        دیدگاه


                          #42
                          پاسخ : سنسور مادون قرمز

                          سلام مجدد و با عرض شرمندگی :
                          آقا این برنامه ای که گفتید برای تولید 38 کیلوهرتز رو نوشتم به این صورت :

                          $regfile = "m32def.dat"
                          $crystal = 1000000
                          '******************************************** ***************************
                          Config Lcd = 16 * 2
                          Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , _
                          Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
                          Cls : Cursor Off
                          '******************************************** *****************************
                          Config Pinb.0 = Output
                          '******************************************** *****************************
                          Dim A As Word
                          '******************************************** *****************************
                          Config Timer0 = Timer , Prescale = 1
                          Enable Interrupts
                          Enable Timer0
                          On Timer0 L1
                          Timer0 = 242
                          Stop Timer0
                          Start Timer0
                          L1:
                          Timer0 = 242
                          Toggle Portb.0
                          Return
                          حالا ، فرستنده رو به پورت b.0 وصل کردم ، و با دوربین گوشی نگاه کردم که چشمک زن شده بود.
                          گیرنده چشم پارس رو هم روبروش گذاشتم و با ADC چک کردم ، اصلآ خروجی نمیده !!!!
                          چشم پارس رو 1)GND و 2) VCC 3OUT( وصل کردم ، و خروجیش رو با مولتی متر چک کردم ، موقعی که جلوی گیرنده هست 0.24 ولت و موقعی که گیرنده جلوش نیست باز هم 0.24 ولت بین گرند و خروجیش میافته !!!!!!
                          دو تا چشم پارس دارم که هردو تاشون همینطوری !!!!
                          VCC شون رو با مقاومت 330 اهم وصل کردم به 5 ولت ، طبق HELP بسکام . . .
                          دیتاشید چشم پارس TSOP1738 رو هم خوندم ، همون مدار بسکام رو آورده و گفته تا 45 درجه جواب میده و . . .
                          والا نمیدونم چکار باید بکنم !!!!!!
                          حالا اگه بخوام مقدار ADC رو LCD کنم که یکربع طول میکشه تا نمایش بده !!!
                          شرمنده که متوجه نمیشم . . . :cry: خب نمیشه دیگه . . .
                          آرزوی سرافرازی برای ایران عزیز . . .


                          دیدگاه


                            #43
                            پاسخ : سنسور مادون قرمز

                            همگی سلام
                            من هم همین مشکل رو با TSOP ها دارم ! چرا خروجی نمیده با این که فرکانس 38 کیلو رو بهش میدم ؟
                            مگه نباید حالت عادی خروجی ولتاژ بده وقتی تغذیش میکنی ؟ بدون اینکه تو مدار باشه ؟؟

                            دیدگاه


                              #44
                              پاسخ : سنسور مادون قرمز

                              فرکانس 38 کیلو فقط کریر هستش
                              شما باید این فرکانس رو به صورت پالس بفرستید
                              البته گیرنده های مختلف فرکانس فیلترشون فرق میکنه

                              دیدگاه


                                #45
                                پاسخ : سنسور مادون قرمز

                                گیرنده من tsop1738 هستش . . .
                                پس من الان تو این برنامه چی باید اضافه یا کم کنم ؟؟؟؟
                                چشم پارس مگه نباید وقتی تغذیه میشه خروجی ولتاژ بده ؟؟
                                آرزوی سرافرازی برای ایران عزیز . . .


                                دیدگاه

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