اطلاعیه

Collapse
No announcement yet.

تشخیص فرکانس

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

    تشخیص فرکانس

    با سلام

    من یک سنسور تشخیص رنگ در اختیار دارم که خروجی آن به صورت فرکانس می باشد ، لطفا من رو راهنمایی کنید که چگونه این فرکانس رو توسط میکروکنترلر دریافت کنم ، من با Bascom کار می کنم

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

    #2
    پاسخ : تشخیص فرکانس

    با سلام
    به نظر من باید یک فرکانس متری طراحی کنی که بتونه فرکانس های بالا و پایین خروجی سنسور رو بخونه.

    دیدگاه


      #3
      پاسخ : تشخیص فرکانس

      با درود . . .
      مگه دیتا شیت نداره ؟؟
      همینجوری که نمیشه.
      اگه برطبق رنگ ها فرکانس خاصی میده میشه کاریش کرد.
      چارش ساخت یه فرکانس متره.
      شماره سنسورو بده دل و رودشو بکشم بیرون!!!! oo:
      درد من تنهایی نیست؛ بلکه مرگ ملتی است که گدایی را قناعت، بی‏عرضگی را صبر، و با تبسمی بر لب این حماقت را حکمت خداوند می‏ نامند! "گاندی"

      به دلیل وجود برخی مشکلات و بی احترامی ها این اکانت رو غیر فعال کردم. همیشه سر بلند باشید.
      بدرود . . .

      دیدگاه


        #4
        پاسخ : تشخیص فرکانس

        دوست عزیز اگه مشکلت تشخیص فرکانس که خیلی راحت میشه فرکانس متر درست کرد**
        با 2 روش میشه

        1-با اینتراپت

        2-کانتر

        1 تایمر 1 ثانیه دقیقم بساز مقدار متغیری رو که با توجه به مقدار فرکانس پلاس پلاس کردی رو توی وقفه سر ریزی نشون بده و بعد از نشون دادن صفرش کن

        زنان به خوبیه مردان می توانند اسرار را حفظ کنند اما آنان را به یکدیگر میگویند تا در حفظ آن شریک باشند !!!

        دیدگاه


          #5
          پاسخ : تشخیص فرکانس

          با سلام

          فکر کنم که برای هر رنگی یک فرکانس مشخصی ارسال میکند که باید این فرکانس ایجاد شده روی پایه رو توسط میکرو خواند و نیازی به تبدیل کردن به کمیت نیست یعنی سنسور رو روی رنگ قرمز نگه میدارم و عدد ارسال شده رو روی LCD نمایش میدهم یا با حدود گزاشتن برای مقدار عددی ، مثلا بین عدد 100 تا 200 روی LCD عبارت "قرمز" رو نمایش داده شود فقط تنها مشکل خواندن فرکانس است که اگر لطف کنید یکی از روش های دقیق رو با دستورات برنامه نویسی توضیح دهید

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

          دیدگاه


            #6
            پاسخ : تشخیص فرکانس

            نوشته اصلی توسط Soodi
            فکر کنم که برای هر رنگی یک فرکانس مشخصی ارسال میکند
            نه نشد دیگه!!!
            اگه فکر میکنی که اینطوره یه چیزه و اگه مطمئنی اینطوری کار میکنه یه چیز دیگه
            خب حالا اگه کارت با فرکانس متر راه میفته اون با من
            دامنه خروجی چه مقداره و خروجی سنسور دارای چه سیگنالیه؟؟؟(سینوسی، مربعی ...)
            محدوده فرکانسیش چقدره؟
            درد من تنهایی نیست؛ بلکه مرگ ملتی است که گدایی را قناعت، بی‏عرضگی را صبر، و با تبسمی بر لب این حماقت را حکمت خداوند می‏ نامند! "گاندی"

            به دلیل وجود برخی مشکلات و بی احترامی ها این اکانت رو غیر فعال کردم. همیشه سر بلند باشید.
            بدرود . . .

            دیدگاه


              #7
              پاسخ : تشخیص فرکانس

              با سلام

              مشخصات سنسور :

              سنسور شدت نور دیجیتال TSL230
              خروجی از نوع فرکانس بوده که نسبت به تغییر شدت نور تغییر می کند
              این سنسور برای ارتباط با میکرو کنترلر فقط به یک پایه نیاز داد و اطلاعات را از طریق یک پایه ارسال می کند
              دیتاشیت : http://roboeq.com/PDF/0405001.pdf

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

              دیدگاه


                #8
                پاسخ : تشخیص فرکانس

                منم که زبانم در حد اعلاست!!!!!!
                سرم گیج رفت دیتاشیتو خوندم.(از مزایای سربازیه!!!!) :mrgreen:

                اینم برنامه فرکانس متر:


                $regfile = "m16def.dat"
                $crystal = 16000000

                Config Clock = Soft , Gosub = Sectic
                Config Timer1 = Counter , Edge = Rising

                Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = _
                Portd.7 , E = Portd.3 , Rs = Portd.2
                Ddrd.1 = 1 : Portd.1 = 0

                Cursor Off
                Config Lcd = 16 * 2
                Cls

                Enable Interrupts
                Enable Ovf1

                On Ovf1 Pulse

                Dim A As Long

                Ddrb.1 = 0 : Portb.1 = 1

                Do

                Loop

                End

                Sectic:
                A = A * 65536
                A = A + Counter1
                Counter1 = 0
                Cls
                Locate 1 , 5
                Lcd "F=" ; A ; " Hz "
                A = 0
                Return

                Pulse:
                Incr A
                Counter1 = 0
                Return

                ساده به نظر میاد ولی به صورت عملی کاملا جواب داده. برای یکی از بچه های دانشگاه به عنوان پروژه نوشتمش. البته یه کارای دیگه ای میکرد که پاکش کردم تا کمتر شه.من خودم توی 1 مگاهرتز 12 هرتز ازش خطا دیدم. که به جرأت میگم از کریستال ساعت بود. همون موقع یه کریستال دیگه گذاشتم و خطا 10 تا شد!!! اونم تازه از این کریستال های چینی!!!!!
                تا 300 کیلو دقیقه خیالت راحت.
                درد من تنهایی نیست؛ بلکه مرگ ملتی است که گدایی را قناعت، بی‏عرضگی را صبر، و با تبسمی بر لب این حماقت را حکمت خداوند می‏ نامند! "گاندی"

                به دلیل وجود برخی مشکلات و بی احترامی ها این اکانت رو غیر فعال کردم. همیشه سر بلند باشید.
                بدرود . . .

                دیدگاه


                  #9
                  پاسخ : تشخیص فرکانس

                  با سلام

                  در این برنامه با تایمر فرکانس ایجاد شده روی یک پایه رو خوانده و به هرتز تبدیل کرده اید ، درسته ؟
                  خوب من نیازی به تبدیل به کمیت ندارم در حقیقت نیازی به تبدیل فرکانس به هرتز ندارم پس به نظر میاد که نیازی به استفاده از تایمر هم نداشته باشم ، درسته ؟
                  من فقط می خواهم که فرکانس ایجاد شده روی یک پایه رو بخوانم

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

                  دیدگاه


                    #10
                    پاسخ : تشخیص فرکانس

                    در بازه ، باز پرندس پس در پرندس !

                    دوست عزیز شما خودت توی جمله ی آخر کل چیزی رو که گفتی بردی زیر سوال
                    تنها راه بدست آوردن فرکانس استفاده از همین تایمر هست

                    من که فکر نمی کنم راه دیگه ای وجود داشته باشه!

                    دیدگاه


                      #11
                      پاسخ : تشخیص فرکانس

                      oo:

                      :surprised:

                      حاجی اون واحد فرکانسه!!!!!!!!!!!!
                      اون عددی رو که برنامه بدست میاره برا شما کافیه.
                      همین.
                      اون تایمر هم که میبینی برای ساخت زمان 1 ثانیه دقیق هست که بدونی کانتر ظرف اون 1 ثانیه چه مقدار ورودی داشته.

                      oo:
                      درد من تنهایی نیست؛ بلکه مرگ ملتی است که گدایی را قناعت، بی‏عرضگی را صبر، و با تبسمی بر لب این حماقت را حکمت خداوند می‏ نامند! "گاندی"

                      به دلیل وجود برخی مشکلات و بی احترامی ها این اکانت رو غیر فعال کردم. همیشه سر بلند باشید.
                      بدرود . . .

                      دیدگاه


                        #12
                        پاسخ : تشخیص فرکانس

                        خیلی ممنون
                        اگر لطف کنید و برنامه رو توضیح دهید خیلی خیلی ممنون می شوم
                        من از بحث تایمر/کانتر خیلی خوشم نمی آید الان چند سال است که با AVR کار می کنم و وقتی که به بحث تایمر/کانتر ها می رسم اون قسمت برنامه رو Copy/Paste می کنم ، اگر شما مقاله ای در رابطه با آموزش تایمر/کانتر های دارید لطفا اعلام کنید تا من یاد بگیرم ولی به زبان ساده باشه ها !!!!

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

                        دیدگاه


                          #13
                          پاسخ : تشخیص فرکانس

                          الان باید آب آکواریوم رو عوض کنم. هر وقت تموم شد توضیح میدم.
                          این راحت ترین آموزشی هست که در کهکشان راه شیری راجع به تایمرها وجود داره.
                          http://www.eca.ir/forum2/index.php?topic=23277.0
                          اتفاقا خودم دیشب یادم رفته بود از روی این دوباره یاد گرفتم!!!!!!!!!!!

                          درد من تنهایی نیست؛ بلکه مرگ ملتی است که گدایی را قناعت، بی‏عرضگی را صبر، و با تبسمی بر لب این حماقت را حکمت خداوند می‏ نامند! "گاندی"

                          به دلیل وجود برخی مشکلات و بی احترامی ها این اکانت رو غیر فعال کردم. همیشه سر بلند باشید.
                          بدرود . . .

                          دیدگاه


                            #14
                            پاسخ : تشخیص فرکانس

                            با اجازه استاد نصیری

                            من این رو یک جای دیگه هم گفت بودم بنظرم امد شاید بکارتون بیاد

                            برای تایمرهای 8 بیتی:

                            Δt = (256 – X0 )*( Prescale/Fosc)

                            برای تایمرهای 16بیتی:

                            Δt = (65536 – X0 )*( Prescale/Fosc)

                            X0 : مقدار اولیه ی تایمر هست
                            Δt : مدت زمانی که طول میکشه یک وقفه رخ بده
                            برای مثال برای تولید زمان یک ثانیه ، خوب ما برای ایجاد این زمان احتیاج به یک زمان پایه داریم
                            تا با تکرار اون بتونیم به زمان مورد نظر برسییم
                            خوب اول برای تایمر 8 بیتی مثل تایمر صفر
                            فرض کنیم که :
                            1- fosc = 8000000
                            2- prescal = 8
                            خوب اگه دقت کنید ما با این مقادیر حداکثر زمانی که می تونیم داشته باشیم تا یک وقفه سریز تایمر و در
                            پی آن تغییری در یک متغیر ، 256 میکرو ثانیه هست
                            بدین ترتیب اگه بخواهیم یک زمان پایه مثلا به مقدار 200 میکرو ثانیه داشته باشیم طبق فرمول مقدار اولیه تایمر
                            رو 56 قرار می دهیم و هر با که سر ریز رخ داد مقدار اولیه تایمر رو دوباره باید برابر 56 قرار دهید چرا که با هر بار سریز تایمر مقدار اون صفر خواهد شد ، در ضمن تایمر رو در وقفه خاموش هم نکنید و اولین دستور درون وقفه باید همین مقدار اولیه که برابر 56 هست باشه
                            خوب ما زمان 200 میکرو ثانیه رو حساب کردیم حالا میگیم که هر 1 ثانیه برابر است با 5000 تا 200 میکرو ثانیه
                            خوب شما می تونید یک متغیر از نوع word رو تعریف کنید و اون رو داخل سریز هر بار 1 واحد افزایش دهید
                            به این ترتیب با رسیدن اون متغیر به 5000 شما به زمان 1 ثانیه خواهید رسید

                            به همین ترتیب شما می تونید این کار رو با تایمر 1 انجام دهید

                            این هم برنامه اون چیزی که گفتم:

                            '---------------------------------------------------------------------------------------------------
                            $regfile = "m8def.dat"
                            $crystal = 8000000
                            Config Lcd = 16 * 2
                            Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , _
                            Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
                            Dim I As Word , Saneye As Byte
                            Config Timer0 = Timer , Prescale = 8
                            Enable Interrupts
                            Enable Timer0
                            On Timer0 L1
                            Stop Timer0
                            Timer0 = 56
                            Start Timer0
                            Cls
                            Do
                            Locate 1 , 1
                            Lcd Saneye
                            Loop
                            End
                            L1:
                            Timer0 = 56
                            Incr I
                            If I = 5000 Then
                            I = 0
                            Incr Saneye
                            End If
                            Return

                            دیدگاه


                              #15
                              پاسخ : تشخیص فرکانس

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

                              دیدگاه

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