اطلاعیه

Collapse
No announcement yet.

سنسور دورموتور پراید و میکرو

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

    سنسور دورموتور پراید و میکرو

    سلام من میخوام سنسور دور موتور پراید رو به میکرو وصل کنم
    این سنسور روی یک چرخ دندانه دار قرار داره که تعداد دندانه ها 60 عدد هست اما دو دندانه حذف شده به عنوان نقطه مرجع
    زمانی که سنسور القایی که از یک اهنربا و سیمپیچ تشکیل شده ، دندانه ها از مقابلش عبور میکنن یک پالس سینوسی در خروجی خودش ایجاد میکنه و به نقطه مرجع که میرسه پهنای پالس دوبرابر میشه

    حالا یه راه کار میخوام برای
    اول تشخیص نقطه A توسط میکرو و به محض رسیدن به این نقطه(یک دور کامل) یک ال ای دی را صفر و یک کند
    دوم شمارش پالس ها برای یک دور کامل که مثلا به پالس 29 ام (نیم دور)که رسید یک ال ای دی دیگر را صفر و یک کند

    #2
    پاسخ : سنسور دورموتور پراید و میکرو

    نوشته اصلی توسط 92_ezraeell نمایش پست ها
    دوم شمارش پالس ها برای یک دور کامل که مثلا به پالس 29 ام (نیم دور)که رسید یک ال ای دی دیگر را صفر و یک کند
    از چه کامپایلری استفاده میکنی؟
    اما حالا فعلن برای شروع اینو بگم که سنسور میل لنگ پراید از نوع مغناطیسیه، ینی کار باهاش راحت تر از نوع اثرهالشه
    پیشنهاد من برای استفاده از این سنسور در میکرو اینه که چون خروجی سنسور اونقدراهم قوی نیس که بشه با ADC میکرو تشخیصش داد،برای همین به نظرم اول پایه سیگنال سنسورو به یه بافر وصل کن،بعدم خروجی بافر رو به عنوان کلاک برای یکی از شمارنده های میکرو در نظر بگیر،مهم نیس کدوم شمارنده چون تو بیشتر از 60 تارو نمیخای بشموری
    اینطوری با هربار عبور دنده ها از جلوی سنسور،کانتر میکرو یدونه میشموره
    و چون مقدار شمارش هم هیچوقت از 60 فراتر نمیره میتونی موقعیت دقیق فلایویلو حساب کنی(همون 360 درجه محیط فلایویل تقسیم بر 60 دنده فلایویل،ینی هر دنده 60 درجه است)

    نوشته اصلی توسط 92_ezraeell نمایش پست ها
    اول تشخیص نقطه A توسط میکرو و به محض رسیدن به این نقطه(یک دور کامل) یک ال ای دی را صفر و یک کند
    ازونجاییکه خودت میدونی بعد از هر 58 دنده جای دو دنده خالیه،پس میتونی بفهمی که هر بار شمارنده به عدد 58 رسید یعنی الان رسیدیم به موقعیت A
    البته برای اینکار نباید بزاری TCNT0 که مقدار کانتر رو تو خودش نگه میداره از 60 بیشتر بشه،پس باید با بعد از دور کامل فلایویل مقدارشو صفر کنی
    جدیدترین ویرایش توسط ardeshir74; ۱۶:۱۰ ۱۳۹۵/۰۹/۱۰.

    دیدگاه


      #3
      پاسخ : سنسور دورموتور پراید و میکرو

      نوشته اصلی توسط 92_ezraeell نمایش پست ها
      سلام من میخوام سنسور دور موتور پراید رو به میکرو وصل کنم
      این سنسور روی یک چرخ دندانه دار قرار داره که تعداد دندانه ها 60 عدد هست اما دو دندانه حذف شده به عنوان نقطه مرجع
      زمانی که سنسور القایی که از یک اهنربا و سیمپیچ تشکیل شده ، دندانه ها از مقابلش عبور میکنن یک پالس سینوسی در خروجی خودش ایجاد میکنه و به نقطه مرجع که میرسه پهنای پالس دوبرابر میشه

      حالا یه راه کار میخوام برای
      اول تشخیص نقطه A توسط میکرو و به محض رسیدن به این نقطه(یک دور کامل) یک ال ای دی را صفر و یک کند
      دوم شمارش پالس ها برای یک دور کامل که مثلا به پالس 29 ام (نیم دور)که رسید یک ال ای دی دیگر را صفر و یک کند
      با سلام:
      آیا این مدار را برای تنظیم موتور می خواهید.؟ یا کاربرد دیگری.؟ اگر امکان دارد، لطفا جواب دهید. شاید راه حل های دیگری هم وجود داشته باشد.
      علم را در آزمایشگاه باید یاد گرفت نه در دانشگاه
      نابغه بودن 99 درصد با پشتکار و یک درصد با الهام است. (ادیسون)

      دیدگاه


        #4
        پاسخ : سنسور دورموتور پراید و میکرو

        اون موجی که ترسیم کرده اید، به نظر بیشتر به موج دندان اره ای (یا مثلثی) می ماند تا سینوسی

        دیدگاه


          #5
          پاسخ : سنسور دورموتور پراید و میکرو

          نوشته اصلی توسط ardeshir74 نمایش پست ها
          از چه کامپایلری استفاده میکنی؟
          اما حالا فعلن برای شروع اینو بگم که سنسور میل لنگ پراید از نوع مغناطیسیه، ینی کار باهاش راحت تر از نوع اثرهالشه
          پیشنهاد من برای استفاده از این سنسور در میکرو اینه که چون خروجی سنسور اونقدراهم قوی نیس که بشه با ADC میکرو تشخیصش داد،برای همین به نظرم اول پایه سیگنال سنسورو به یه بافر وصل کن،بعدم خروجی بافر رو به عنوان کلاک برای یکی از شمارنده های میکرو در نظر بگیر،مهم نیس کدوم شمارنده چون تو بیشتر از 60 تارو نمیخای بشموری
          اینطوری با هربار عبور دنده ها از جلوی سنسور،کانتر میکرو یدونه میشموره
          و چون مقدار شمارش هم هیچوقت از 60 فراتر نمیره میتونی موقعیت دقیق فلایویلو حساب کنی(همون 360 درجه محیط فلایویل تقسیم بر 60 دنده فلایویل،ینی هر دنده 60 درجه است)


          ازونجاییکه خودت میدونی بعد از هر 58 دنده جای دو دنده خالیه،پس میتونی بفهمی که هر بار شمارنده به عدد 58 رسید یعنی الان رسیدیم به موقعیت A
          البته برای اینکار نباید بزاری TCNT0 که مقدار کانتر رو تو خودش نگه میداره از 60 بیشتر بشه،پس باید با بعد از دور کامل فلایویل مقدارشو صفر کنی
          از بسکام استفاده میکنم و بله سنسور مدل مغناطیسیه
          ببینید برای اتصال سنسور به کانتر بلدم ابتدا به یک امپ امپ میدم تا مربعی بشه و بعد خروجی رو به کانتر یک وصل میکنم اما فقط میشماره و مشخص نمیشه از کجا شروع به شمارش شده یعنی در اصل نقطه A رو نمیتونه پیدا کنه اگر نقطه مرجع پیدا بشه و از اون نقطه شروع به شمارش کنه نیمی از کار حل میشه

          مورد دیگه اینکه گفتیدADCاین را برای چه عنوان متصل کنم و بافر و TCNT0 یعنی چی؟

          دلیل: ادغام دو پست برای جلوگیری از اسپم

          نوشته اصلی توسط مهندس نوآور نمایش پست ها
          اون موجی که ترسیم کرده اید، به نظر بیشتر به موج دندان اره ای (یا مثلثی) می ماند تا سینوسی
          در سایت ها به این شکل رسم شده اما در عمل با اسکوپ خروجی سنسور به صورت سینوسی هستش با قله و دره های کاملا منهنی

          دلیل: ادغام دو پست برای جلوگیری از اسپم

          نوشته اصلی توسط علی تحیری نمایش پست ها
          با سلام:
          آیا این مدار را برای تنظیم موتور می خواهید.؟ یا کاربرد دیگری.؟ اگر امکان دارد، لطفا جواب دهید. شاید راه حل های دیگری هم وجود داشته باشد.
          سلام قصد دارم یونیت جرقه بسازم
          در واقع تمام خودرو ها با سنسور میل لنگ تایمینگ جرقه خودشونو انجام میدن
          منم قصد دارم زمان جرقه را با میکرو توسط این سنسور بدست بیارم و خروجی را به کویل دوبل بدم
          نقطه A زمان جرقه سیلندر یک و چهار ، 180 درجه بعد یعنی پالس 29 ام زمان حرقه سیلندر دو و سه هستش
          ممنون میشم اگر به یک نتیجه برسیم

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

          دیدگاه


            #6
            پاسخ : سنسور دورموتور پراید و میکرو

            نوشته اصلی توسط 92_ezraeell نمایش پست ها
            مورد دیگه اینکه گفتیدADCاین را برای چه عنوان متصل کنم و بافر و TCNT0 یعنی چی؟
            ADC واحد مبدل آنالوگ به دیجیتال میکرو هست که مقادیر آنالوگ رو به دیجیتال تبدیل میکنه تا برای میکرو قابل فهم باشه. حداکثر دقت این واحد 10 بیته،یعنی بازه 0ولت تا ولتاژ مرجع رو به اعدادی بین 0 تا 1023 نسبت میده،برای مثال فرض کن ولتاژ مرجع 5 ولت باشه،با یه محاسبه ساده میشه فهمید که اگه مقدار ADC عدد 511 باشه یعنی ولتاژاون پایه 2.5 ولته،به همین ترتیب تا آخر.
            TCNT0 تا TCNT2 به ترتیب رجیستر شمارنده های صفر،یک و دو میکرو هستند. همیشه مقدار شمارش شده توسط شمارنده ها توی این رجیسترها ذخیره میشه.
            بافر هم یه ترکیب ترانزیسستوریه که برای دستگاه های دیجیتالی مثه میکرو خیلی کاربرد داره،تقریبا مثه همون آپ امپی که خودت گفتی
            کارش اینطوره که اگه ورودیش کمتر از 2.5 تا 3 ولت باشه خروجی 0 منطقی (یعنی 0 ولت)میشه
            اگه ورودی بیش از 2.5 یا 3 ولت باشه خروجی 1 منطقی(یعنی 5 ولت)میشه



            نوشته اصلی توسط 92_ezraeell نمایش پست ها
            ببینید برای اتصال سنسور به کانتر بلدم ابتدا به یک امپ امپ میدم تا مربعی بشه و بعد خروجی رو به کانتر یک وصل میکنم اما فقط میشماره و مشخص نمیشه از کجا شروع به شمارش شده یعنی در اصل نقطه A رو نمیتونه پیدا کنه اگر نقطه مرجع پیدا بشه و از اون نقطه شروع به شمارش کنه نیمی از کار حل میشه
            اگه میتونی با آپ آمپ اون موجهارو به پالسهای مربعی تبدیل کنی،میتونی از عرض این پالسها یا همون PW استفاده کنی و بزرگترین عرض رو برای ناحیه A در نظر بگیری
            برای اندازه گیری این عرض هم میتونی از همون کانتر میکرو استفاده کنی ،اینطور که :
            شمارنده با یک لبه بالا رونده شروع به شمارش کنه و با یک لبه پایین رونده متوقف شه.
            زمان طی شده توی این بازه که میشه از مقدار شمارش شده و فرکانس شمارنده بدستش آورد همون عرض پالسه. حالا هر پالسی که عرض بیشتری داشته باشه(ینی شمارنده عدد بیشتری رو شمرده باشه) همون ناحیه A هست
            جدیدترین ویرایش توسط ardeshir74; ۰۲:۲۸ ۱۳۹۵/۰۹/۱۱.

            دیدگاه


              #7
              پاسخ : سنسور دورموتور پراید و میکرو

              نوشته اصلی توسط ardeshir74 نمایش پست ها
              ADC واحد مبدل آنالوگ به دیجیتال میکرو هست که مقادیر آنالوگ رو به دیجیتال تبدیل میکنه تا برای میکرو قابل فهم باشه. حداکثر دقت این واحد 10 بیته،یعنی بازه 0ولت تا ولتاژ مرجع رو به اعدادی بین 0 تا 1023 نسبت میده،برای مثال فرض کن ولتاژ مرجع 5 ولت باشه،با یه محاسبه ساده میشه فهمید که اگه مقدار ADC عدد 511 باشه یعنی ولتاژاون پایه 2.5 ولته،به همین ترتیب تا آخر.
              TCNT0 تا TCNT2 به ترتیب رجیستر شمارنده های صفر،یک و دو میکرو هستند. همیشه مقدار شمارش شده توسط شمارنده ها توی این رجیسترها ذخیره میشه.
              بافر هم یه ترکیب ترانزیسستوریه که برای دستگاه های دیجیتالی مثه میکرو خیلی کاربرد داره،تقریبا مثه همون آپ امپی که خودت گفتی
              کارش اینطوره که اگه ورودیش کمتر از 2.5 تا 3 ولت باشه خروجی 0 منطقی (یعنی 0 ولت)میشه
              اگه ورودی بیش از 2.5 یا 3 ولت باشه خروجی 1 منطقی(یعنی 5 ولت)میشه




              اگه میتونی با آپ آمپ اون موجهارو به پالسهای مربعی تبدیل کنی،میتونی از عرض این پالسها یا همون PW استفاده کنی و بزرگترین عرض رو برای ناحیه A در نظر بگیری
              برای اندازه گیری این عرض هم میتونی از همون کانتر میکرو استفاده کنی ،اینطور که :
              شمارنده با یک لبه بالا رونده شروع به شمارش کنه و با یک لبه پایین رونده متوقف شه.
              زمان طی شده توی این بازه که میشه از مقدار شمارش شده و فرکانس شمارنده بدستش آورد همون عرض پالسه. حالا هر پالسی که عرض بیشتری داشته باشه(ینی شمارنده عدد بیشتری رو شمرده باشه) همون ناحیه A هست
              ممنون بابت توضیحات کامل
              خب الان که قراره از اپامپ و کانتر استفاده کنم نیازی به مبدل انلالوگ به دیجیتال نیست درسته؟
              نکته دیگه اینکه خب بله کانتر میتونه پالس هارو بشماره و پالس مرجع عرضش دو برابر سایر نقاطه اما کانتر رو چجوری کانفیگ کنم تا تایم پهنای پالس را بدست بیاره؟

              دیدگاه


                #8
                پاسخ : سنسور دورموتور پراید و میکرو

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


                $regfile = "m32def.dat"
                $crystal = 8000000


                Config Timer0 = Counter , Edge = Rising
                Config Timer1 = Counter , Prescale = 1


                Enable Interrupts


                Enable Int0
                Config Int0 = Rising
                On Int0 L0 Nosave


                Enable Int1
                Config Int1 = Falling
                On Int1 L1 Nosave


                Const Period = 0.000000125


                Dim T1 As Double
                Dim T2 As Double
                '
                'ta T60 tarif kon
                '
                Dim T60 As Double
                Timer1 = 0
                Do




                Loop






                L0:
                Start Timer1
                Return


                L1:
                Select Case Timer0
                Case 1 :
                T1 = Timer1 + 1
                T1 = T1 * Period
                Case 2:
                T2 = Timer1 + 1
                T2 = T2 * Period
                '
                'ta T60 edame midi
                '
                '
                Case 60:
                T60 = Timer1 + 1
                T60 = T60 * Period
                End Select


                Stop Timer1
                If Timer1 = 60 Then Timer1 = 0
                Return


                خواهش میکنم،خوشحال میشم ب چیزی ک میخای برسی.
                ازونجایی که من زیاد از بسکام سر در نمیارم برای همین کدی ک دادم رو فقط به عنوان راهنمایی در نظر بگیر،آخه من کارم کلن با سی و کدورژنه،اگه از کد ویژن استفاده میکردی میتونستم بیشتر کمکت کنم
                به برنامه دقت کن،اگه جاییشو متوجه نمیشی بگو توضیح بدم
                این یه الگوریتم پیشنهادی برای محاسبه ی عرض هر پالسه که تو متغیر مربوط به خودش ذخیره میشه
                جدیدترین ویرایش توسط ardeshir74; ۱۸:۲۸ ۱۳۹۵/۰۹/۱۱.

                دیدگاه


                  #9
                  پاسخ : سنسور دورموتور پراید و میکرو

                  نوشته اصلی توسط ardeshir74 نمایش پست ها


                  $regfile = "m32def.dat"
                  $crystal = 8000000


                  Config Timer0 = Counter , Edge = Rising
                  Config Timer1 = Counter , Prescale = 1


                  Enable Interrupts


                  Enable Int0
                  Config Int0 = Rising
                  On Int0 L0 Nosave


                  Enable Int1
                  Config Int1 = Falling
                  On Int1 L1 Nosave


                  Const Period = 0.000000125


                  Dim T1 As Double
                  Dim T2 As Double
                  '
                  'ta T60 tarif kon
                  '
                  Dim T60 As Double
                  Timer1 = 0
                  Do




                  Loop






                  L0:
                  Start Timer1
                  Return


                  L1:
                  Select Case Timer0
                  Case 1 :
                  T1 = Timer1 + 1
                  T1 = T1 * Period
                  Case 2:
                  T2 = Timer1 + 1
                  T2 = T2 * Period
                  '
                  'ta T60 edame midi
                  '
                  '
                  Case 60:
                  T60 = Timer1 + 1
                  T60 = T60 * Period
                  End Select


                  Stop Timer1
                  If Timer1 = 60 Then Timer1 = 0
                  Return


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

                  اول اینکه ممنون برا سورسی که نوشتی یه سوال چرا هر دو تایمر در مد کانتر هستش و دوم اینکه چرا 60 سوییچ تشکیل دادیم و تو هر سوییچ تعداد پالس ها میاد یا تایمش؟
                  تا اینجا شو متوجه شدم که دو تا اینتراپوت را به صورت حساس به بالا رونده و پایین رونده فعال کردی اما در واقع سوییچ ها چیو بررسی میکنن؟

                  حالا جرقه ای که ایجاد شد رو بگم
                  جالبه اینکه از اینتراپوت ها میشه برای یک پالس استفاده کرد پس اگر تایمر صفر رو در مد تایمر فعال کنم و در لحظه وقفه لبه بالا رونده تایمر صفر بشه و در لحظه وقفه پایین رونده تایمر در یک متغیر ذخیره بشه ، به این وسیله تایم یک پالس بدست میاد و اینو من الان از راهنمایی شما متوجه شدم حالا به نظرت این راه اصولیه یا راهیی که تایپ کردی؟
                  بعد میشه مقدار بدست امده را در لبه پایین رونده از دوبرابر خودش در جمله شرطی قرار داد که هرموقع تایم از دوبرابر(یا یک سوم +تایم بدست امده)بیشتر شد یعنی به نقطه مرجع رسیده

                  دیدگاه


                    #10
                    پاسخ : سنسور دورموتور پراید و میکرو

                    نوشته اصلی توسط 92_ezraeell نمایش پست ها
                    اول اینکه ممنون برا سورسی که نوشتی یه سوال چرا هر دو تایمر در مد کانتر هستش و دوم اینکه چرا 60 سوییچ تشکیل دادیم و تو هر سوییچ تعداد پالس ها میاد یا تایمش؟
                    کانتر بودن هر دو شمارنده به این دلیله که خب میخایم بشمورن،یکی با حداکثر سرعت(تایمر 1) یکیم با هر دنده ای که از جلوی سنسور گذشت
                    60 سوییچ بودن برا اینه که 60 دنده دورکامل فلایویلو تشکیل میده


                    نوشته اصلی توسط 92_ezraeell نمایش پست ها
                    تا اینجا شو متوجه شدم که دو تا اینتراپوت را به صورت حساس به بالا رونده و پایین رونده فعال کردی اما در واقع سوییچ ها چیو بررسی میکنن؟
                    اگه دقت کنی تو هر بار که لبه پالس میاد بالا،شمارنده دنده ها(تایمر0) یکی زیاد میشه و شمارنده تایمر1 با حداکثر سرعت شروع به شموردن میکنه.
                    وقتی لبه پایین میاد شمارنه تایمر 1 وایمیسته.الان تایمر 1 مقدار شمارش شده از لبه بالا رونده پالس تا لبه پایین رونده همون پالسه،بنابر این همون عرض یک پالسو برای ما میسازه
                    همزمان با لبه پایین رونده زیربرنامه اینتراپت 1 هم اجرا میشه
                    تو این زیر برنامه که دستورات سویچ هست اگه دقت کنی،هر بار که دنده ای شمارش میشه،یعنی از جلوی سنسور عبور میکنه،عرض پالس مربوط به همون دنده برحسب ثانیه محاسبه میشه که عدد خیلی کوچیکیه،برای همین نوع همه داده ها double تعریف شده
                    نوشته اصلی توسط 92_ezraeell نمایش پست ها
                    حالا جرقه ای که ایجاد شد رو بگم
                    جالبه اینکه از اینتراپوت ها میشه برای یک پالس استفاده کرد پس اگر تایمر صفر رو در مد تایمر فعال کنم و در لحظه وقفه لبه بالا رونده تایمر صفر بشه و در لحظه وقفه پایین رونده تایمر در یک متغیر ذخیره بشه ، به این وسیله تایم یک پالس بدست میاد و اینو من الان از راهنمایی شما متوجه شدم حالا به نظرت این راه اصولیه یا راهیی که تایپ کردی؟
                    برنامه ای که من نوشتم همین کارو میکنه،از لبه های پایین و بالا رونده استفده میکنه تا عرض یه پالسو تشخیص بده
                    نوشته اصلی توسط 92_ezraeell نمایش پست ها
                    بعد میشه مقدار بدست امده را در لبه پایین رونده از دوبرابر خودش در جمله شرطی قرار داد که هرموقع تایم از دوبرابر(یا یک سوم +تایم بدست امده)بیشتر شد یعنی به نقطه مرجع رسیده
                    اینکه بیای بگی هر دنده ای عرضش دقیقن 2 برابر عرض دنده های دگ باشه،اونجا ناحیه A است غلطه،چون بسته به سرعت چرخش فلایویل امکان داره این عددا عوض بشه،ضمن اینکه اینجا محاسبات تا حدودی خطا داره،برای همین باید بگی اونیکه عرضش یه مقدار قابل قبولی بیشتر از بقیه است.
                    یه چیز دگ هم این که همیشه این عمل مقایسه عرض پالسها باید در سویچ آخرین دنده انجام بشه تا شرایط برای همه دنده ها یکسان باشه.
                    امیدوارم متوجه بشی چی میگم

                    دیدگاه


                      #11
                      پاسخ : سنسور دورموتور پراید و میکرو

                      سلام من پست هها رو کامل نخوندم ولی به نظر میاد میخوای به کویل وصل کنی و جرقه رو میکرو واست بزنه درسته؟؟؟
                      اگه اینطوریه نمیتونی چیز خوبی از اب در بیاری
                      چون جرقه نسبت به خیلی چیزا ادونس یا ریتارد میشه ینی یا جلو تر میزنه یا عقب تر میزنه نسبت به نقطه مرگ بالای پیستون یا همون نقطعه مرجع ((A))
                      مثلا تا موتور ناک میزنه جرقه عقب تر میزنه
                      یا دور بالا باز دوباره جرقه عقب تر میزنه

                      دیدگاه


                        #12
                        پاسخ : سنسور دورموتور پراید و میکرو

                        نوشته اصلی توسط AMIR_N نمایش پست ها
                        سلام من پست هها رو کامل نخوندم ولی به نظر میاد میخوای به کویل وصل کنی و جرقه رو میکرو واست بزنه درسته؟؟؟
                        اگه اینطوریه نمیتونی چیز خوبی از اب در بیاری
                        چون جرقه نسبت به خیلی چیزا ادونس یا ریتارد میشه ینی یا جلو تر میزنه یا عقب تر میزنه نسبت به نقطه مرگ بالای پیستون یا همون نقطعه مرجع ((A))
                        مثلا تا موتور ناک میزنه جرقه عقب تر میزنه
                        یا دور بالا باز دوباره جرقه عقب تر میزنه
                        کاملن درس میگی،برای همینم توی بیشتر موتورا از یه سنسور دگ به اسم سنسور میل سوپاپ استفاده میشه که فقط موقعیت فلایویل مرجع نباشه
                        نبود این سنسور میل سوپاپ مشکلی ایجاد نمیکنه،فقط همونطور ک گفتی آوانس جرقه رو میریزه بهم
                        البته میشه این خطارو با یه فیدبک مناسب مثل ناک تا حدودی برطرف کرد

                        دیدگاه


                          #13
                          پاسخ : سنسور دورموتور پراید و میکرو

                          نوشته اصلی توسط ardeshir74 نمایش پست ها
                          کانتر بودن هر دو شمارنده به این دلیله که خب میخایم بشمورن،یکی با حداکثر سرعت(تایمر 1) یکیم با هر دنده ای که از جلوی سنسور گذشت
                          60 سوییچ بودن برا اینه که 60 دنده دورکامل فلایویلو تشکیل میده



                          اگه دقت کنی تو هر بار که لبه پالس میاد بالا،شمارنده دنده ها(تایمر0) یکی زیاد میشه و شمارنده تایمر1 با حداکثر سرعت شروع به شموردن میکنه.
                          وقتی لبه پایین میاد شمارنه تایمر 1 وایمیسته.الان تایمر 1 مقدار شمارش شده از لبه بالا رونده پالس تا لبه پایین رونده همون پالسه،بنابر این همون عرض یک پالسو برای ما میسازه
                          همزمان با لبه پایین رونده زیربرنامه اینتراپت 1 هم اجرا میشه
                          تو این زیر برنامه که دستورات سویچ هست اگه دقت کنی،هر بار که دنده ای شمارش میشه،یعنی از جلوی سنسور عبور میکنه،عرض پالس مربوط به همون دنده برحسب ثانیه محاسبه میشه که عدد خیلی کوچیکیه،برای همین نوع همه داده ها double تعریف شده

                          برنامه ای که من نوشتم همین کارو میکنه،از لبه های پایین و بالا رونده استفده میکنه تا عرض یه پالسو تشخیص بده

                          اینکه بیای بگی هر دنده ای عرضش دقیقن 2 برابر عرض دنده های دگ باشه،اونجا ناحیه A است غلطه،چون بسته به سرعت چرخش فلایویل امکان داره این عددا عوض بشه،ضمن اینکه اینجا محاسبات تا حدودی خطا داره،برای همین باید بگی اونیکه عرضش یه مقدار قابل قبولی بیشتر از بقیه است.
                          یه چیز دگ هم این که همیشه این عمل مقایسه عرض پالسها باید در سویچ آخرین دنده انجام بشه تا شرایط برای همه دنده ها یکسان باشه.
                          امیدوارم متوجه بشی چی میگم
                          اهان متوجه شدم اما خب هردو مقدار پالس هارو میشمارن چطوری تایم رو بشماره؟
                          سوال دیگه اینکه این ضریب چیه؟* Period

                          منظورم این بود که هر بار مقدار بدست اومده رو با مقدار تایم پالس قبل +یک سوم مقایسه کنه برای سنجس تایم دو پالس متوالی

                          دلیل: ادغام دو پست برای جلوگیری از اسپم

                          نوشته اصلی توسط AMIR_N نمایش پست ها
                          سلام من پست هها رو کامل نخوندم ولی به نظر میاد میخوای به کویل وصل کنی و جرقه رو میکرو واست بزنه درسته؟؟؟
                          اگه اینطوریه نمیتونی چیز خوبی از اب در بیاری
                          چون جرقه نسبت به خیلی چیزا ادونس یا ریتارد میشه ینی یا جلو تر میزنه یا عقب تر میزنه نسبت به نقطه مرگ بالای پیستون یا همون نقطعه مرجع ((A))
                          مثلا تا موتور ناک میزنه جرقه عقب تر میزنه
                          یا دور بالا باز دوباره جرقه عقب تر میزنه
                          سلام اره برای جرقه میخوام
                          خب راه حل چیه؟میشه بیشتر توضیح بدی؟اخه اگر پالس جرقه از دندانه مربوطه جلو عقب بشه که تایم نقطه مرگ ها به هم میریزه

                          دلیل: ادغام دو پست برای جلوگیری از اسپم

                          نوشته اصلی توسط ardeshir74 نمایش پست ها
                          کاملن درس میگی،برای همینم توی بیشتر موتورا از یه سنسور دگ به اسم سنسور میل سوپاپ استفاده میشه که فقط موقعیت فلایویل مرجع نباشه
                          نبود این سنسور میل سوپاپ مشکلی ایجاد نمیکنه،فقط همونطور ک گفتی آوانس جرقه رو میریزه بهم
                          البته میشه این خطارو با یه فیدبک مناسب مثل ناک تا حدودی برطرف کرد
                          الان تا حدودی میتونم نقطه aرو با همون برنامه پیدا کنم
                          مشکل الانم سر تولید جرقه
                          اخه کویل با یک فرکانس خاصی جرقه تولید میکنه و هر بار که وقفه میکرو برای پالس مثلا 58 ام یا پالس 29 ام که برای جرقه زدن هستن اجرا میشه یک پالس خروجی اونم با دامنه ای در حد میکرو ثانیه میتونم تولید کنم چون اگر ذره ای بیشتر بشه در دورهای بالا برنامه به خطا میوفته و پالس های جرقه سر جاش نمیوفته

                          دلیل: ادغام دو پست برای جلوگیری از اسپم

                          من قبل از تست اون برنامه سوییچ دار اینو به نتیجه رسوندم حالا اگ مشکل پالس جرقه حل بشه میرم برای تست روی ماشین ، اگر در انتها بازم به نتیجه نرسید میام سراغ برنامه سوییچ داری که گفتین
                          $regfile = "m32def.dat" : $crystal = 8000000
                          Config Timer0 = Timer , Prescale = 1
                          Config Timer1 = Counter , Capture Edge = Rising , Noise Cancel = 1 , Edge = Rising , Compare A = Set , Compare B = Set , Clear Timer = 0
                          Config Porta = Output
                          Config Int0 = Rising
                          Config Int1 = Falling

                          Enable Interrupts
                          Enable Int0 : On Int0 Up
                          Enable Int1 : On Int1 Dn
                          Enable Oc1a : On Oc1a Cilnd1
                          Enable Oc1b : On Oc1b Cilnd2
                          Enable Ovf0 : On Ovf0 Tim

                          Dim No As Long , A As Long , B As Long , T As Long , Ti As Long , Dan As Long , Q As Byte

                          Compare1a = 1
                          Compare1b = 28

                          Main:
                          Do : Loop : End

                          Tim:
                          Timer0 = 0 : Incr T : Return

                          Up:
                          Timer0 = 0 : Return

                          Dn:
                          No = Timer0 : Ti = 255 * T : T = 0 : No = No + Ti
                          If No >= A Then Counter1 = 0
                          B = No / 3 : A = No + B
                          Reset Porta.0 : Reset Porta.1 :
                          If Counter1 = 58 Then Counter1 = 0
                          Return

                          Cilnd1:
                          Set Porta.0 : Return

                          Cilnd2:
                          Set Porta.1 : Return

                          دیدگاه


                            #14
                            پاسخ : سنسور دورموتور پراید و میکرو

                            نوشته اصلی توسط 92_ezraeell نمایش پست ها
                            اهان متوجه شدم اما خب هردو مقدار پالس هارو میشمارن چطوری تایم رو بشماره؟
                            سوال دیگه اینکه این ضریب چیه؟* Period
                            ببین شمارنده 1 با اسیلاتور داخلی کار میکنه،ینی با هر بار بالا رفتن کلاک پالس شمارنده یکی میشموره
                            کلاک میکرو اگه 8 مگ باشه ینی ما 8000000 تا لبه بالا رونده داریم. حالا فاصله زمانی بین یه لبه با لبه بعدی میشه(1)*(1/8000000)
                            1/8000000 همون عکس فرکانس یا دوره تناوبه که من محاسبش کردم و داخل period گذاشتم
                            حالا فرض کن در بین عرض یه پالس شمارنده 250 تا شمورده(منظورم پالس ارسالیه سنسوره)
                            میخایم ببینیم این 250 تا شمارش معادل چ مدت زمانیه،ینی چقد طول کشیده تا اینقد بشموره
                            برای این کار میای اینطور حساب میکنی

                            time=(250+1)*period
                            به علاوه یک شدن هم دلیلش اینه که شمارش از صفر شروع میشه پس باید برای جبرانش یکی بش اضافه کرد.
                            نوشته اصلی توسط 92_ezraeell نمایش پست ها
                            اخه کویل با یک فرکانس خاصی جرقه تولید میکنه و هر بار که وقفه میکرو برای پالس مثلا 58 ام یا پالس 29 ام که برای جرقه زدن هستن اجرا میشه یک پالس خروجی اونم با دامنه ای در حد میکرو ثانیه میتونم تولید کنم چون اگر ذره ای بیشتر بشه در دورهای بالا برنامه به خطا میوفته و پالس های جرقه سر جاش نمیوفته
                            منظورتو متوجه نشدم
                            جدیدترین ویرایش توسط ardeshir74; ۰۱:۱۷ ۱۳۹۵/۰۹/۱۲.

                            دیدگاه


                              #15
                              پاسخ : سنسور دورموتور پراید و میکرو

                              نوشته اصلی توسط ardeshir74 نمایش پست ها
                              ببین شمارنده 1 با اسیلاتور داخلی کار میکنه،ینی با هر بار بالا رفتن کلاک پالس شمارنده یکی میشموره
                              کلاک میکرو اگه 8 مگ باشه ینی ما 8000000 تا لبه بالا رونده داریم. حالا فاصله زمانی بین یه لبه با لبه بعدی میشه(1)*(1/8000000)
                              1/8000000 همون عکس فرکانس یا دوره تناوبه که من محاسبش کردم و داخل period گذاشتم
                              حالا فرض کن در بین عرض یه پالس شمارنده 250 تا شمورده(منظورم پالس ارسالیه سنسوره)
                              میخایم ببینیم این 250 تا شمارش معادل چ مدت زمانیه،ینی چقد طول کشیده تا اینقد بشموره
                              برای این کار میای اینطور حساب میکنی

                              time=(250+1)*period
                              به علاوه یک شدن هم دلیلش اینه که شمارش از صفر شروع میشه پس باید برای جبرانش یکی بش اضافه کرد.

                              منظورتو متوجه نشدم
                              اهان متوجه شدم الان

                              برنامه رو تست کردم الان روی پراید
                              کار نکرد:(انگار جرقه تایمش به موقع نیست موتور نیم پله میزنه و نیم پله دوم اونو خنثی میکنه انگار قبل به مرحله انفجار رسیدن جرقه میخوره
                              من حتی پالس 58 ام رو به جلو تر هم بردم مثلا جرقه رو در پالس یکم یا دوم بزنه و همینطور پالس 29 ام رو به 30 ام و 31 ام بردم بازم کار موتور منفی بود

                              دیدگاه

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