اطلاعیه

Collapse
No announcement yet.

شمارش تعداد پالس های یک ورودی

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

    شمارش تعداد پالس های یک ورودی

    سلام .
    من میخواهم با استفاده از خروجی سنسور سرعت خودرو روی ال سی دی نمایش بدهم .
    خروجی سنسور هم بر اساس فرکانس هست . حالا من رابطه این فرکانس با سرعت رو نمیدونم این فرکانسی که من دارم میخونم رو چه جوری به سرعت تبدیل کنم ؟
    فقط اینو میدونم که به ازای یه دور چرخش 8پالس تولید میکنه
    اگر به ازاری هر دور چرخش لاستیک خودرو 8 پالس تولید کنه و با توجه به مشخص بودن شعاع چرخش میشه رابطه سرعت و رابطه تعداد مسافت طی شده رو سنجید .
    من یه کم گیج شدم اگه کسی یه کم راهنمایی کنه ممنون میشم .
    حالا مقدار دقیقشو برای هر خودرو متفاوت هست که اینو باید عملا آزمایش کنم . یک برنامه فرکانس متر از همین سایت دانلود کردم که اینجا میذارم
    http://www.awp.ir/upload/uploads/1319491953.rar
    برای تغییرات اون که بیاد هر 8تا پالس رو بشماره و داخل یک ثبات بریزه باید چکار کنم ؟

    #2
    پاسخ : شمارش تعداد پالس های یک ورودی

    بایستی تعداد پالسها در یک ثانیه شمرده شده تا فرکانس بدست بیاد بعد فرکانس در یک ضریب ضرب بشه تا تبدیل به سرعت بشه. برای بدست اوردن ضریب ،یک روش اندازه گیری فرکانس در یک سرعت خاص به صورت عملی است و یا به صورت محاسباتی فرکانس بر 8 تقسیم شده و در محیط چرخ ضرب بشه تا مستقیم سرعت بدست بیاد

    دیدگاه


      #3
      پاسخ : شمارش تعداد پالس های یک ورودی

      خوب میشه این مسئله رو بیشتر باز کنین ؟
      آلان میشه همین برنامه ای که من دارم با تغییراتی بیاد تعداد هر پالس رو در یک ثانیه بخونه ؟
      میشه بگین کجای برنامه من باید این تغییرات رو بدم ؟
      $regfile = "m32def.dat"
      $crystal = 8000000
      '----------
      Config Lcd = 16 * 2
      Config Lcdpin = Pin , Rs = Porta.0 , E = Porta.1 , Db4 = Porta.2 , Db5 = _
      Porta.3 , Db6 = Porta.4 , Db7 = Porta.5
      Cursor Off
      '-----------
      Config Timer1 = Counter , Edge = Rising
      Ddrb.1 = 0
      Portb.1 = 1
      '-------
      Config Timer0 = Timer , Prescale = 1024
      '---------------
      Enable Timer1
      Enable Timer0
      Enable Interrupts

      '---------------------
      On Ovf1 Pulse_counter
      On Ovf0 Yazdkit
      '-------------------
      Dim A As Long , B As Byte , I As Long
      B = 0
      '----------------------------
      Cls
      Start Timer0
      '------------
      Do
      Loop
      End 'end program
      '--------------
      Yazdkit:
      Incr I
      If I > 30 Then
      Stop Timer0
      Cls
      Home
      A = B * 65536
      A = A + Counter1
      Lcd "frequency:"
      Locate 2 , 1
      Lcd A ; " HZ"

      B = 0
      I = 0
      Counter1 = 0
      Start Timer0
      End If
      Return
      '----------------------
      Pulse_counter:
      Incr B
      Counter1 = 0
      Return



      برای بدست آوردن سرعت به صورت عملی به عنوان مثال اگه خروجی سنسور ما 20کیلو هرتز باشه و محیط چرخ ما هم 20.2946 سانتی متر باشد برای محاسبه سرعت باید چکار کنم ؟
      و برای بدست آوردن به صورت محاسباتی اگه بدونم به ازای هر دور چرخش 8 پالس تولید میکند اونوقت باید چکار کنم ؟

      دیدگاه


        #4
        پاسخ : شمارش تعداد پالس های یک ورودی

        راستی یه سوال دیگه هم دارم ؟
        خروجی سنسور 3تا سیم دارد که G , - , + داره بین پایه جی و منفی من ولتاژ -12 دارم احتمالا باید خروجی فرکانس من بین پایه های جی و پایه + باشه دیگه نه ؟ درست میگم ؟

        دیدگاه


          #5
          پاسخ : شمارش تعداد پالس های یک ورودی

          نوشته اصلی توسط maryam-68

          برای بدست آوردن سرعت به صورت عملی به عنوان مثال اگه خروجی سنسور ما 20کیلو هرتز باشه و محیط چرخ ما هم 20.2946 سانتی متر باشد برای محاسبه سرعت باید چکار کنم ؟
          و برای بدست آوردن به صورت محاسباتی اگه بدونم به ازای هر دور چرخش 8 پالس تولید میکند اونوقت باید چکار کنم ؟
          بسکام بلد نیستم ولی اساس کار استفاده از کریستال خارجی و تولید یک زمان دقیق یک ثانیه با استفاده از وقفه نرم افزاری و شمارش پالس فرکانس در این یک ثانیه با استفاده از وقفه سخت افزاری برای بدست اوردن فرکانس است
          سرعت بر حسب سانتیمتر بر ثانیه:
          20000:8x20.2946=50736.5
          از خروجی سنسور اطلاعی ندارم

          دیدگاه

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