ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 17
  1. #1
    2007/11/22
    104
    0

    استفاده از کانتر و ماژول QEI يا Quadrature_Encoder_Interface

    با سلام
    شايد سوالم کمي ناشيانه باشد اما ممنون ميشم من رو راهنمايي کنيد
    من ميخوام تعداد پالسهاي خروجي يک شفت انکدر رو بشمارم
    شفت انکدر دو نوع پالس دارد،يکي يک پالس معمولي که تعداد را نشان ميدهد که بايد توسط کانتر شمرده شود و ديگري يک پالسي است که جهت را نشان ميدهد، يعني اگر پالس دوم يک بود کانتر، پالس اول را بايد به صورت افزايشي بشمارد و اگر پالس دوم صفر بود کانتر، بايد پالس اول را به صورت کاهشي بشمارد
    آيا ميشود از تايمر يک و يک پايه ديگر براي فهميدن پالس دوم اين قسمت رو راه اندازي کرد
    با تشکر از راهنمايي دوستان گرامي
  2. #2
    2008/03/01
    255
    4

    پاسخ : استفاده از کانتر

    سلام
    در مورد شمارنده های PIC خیلی اطلاعات ندارم که خودشون میتونند کاهشی بشمارند یا نه اما یه راهکار ساده استفاده همزمان از دو کانتر هست که یکی در حالت افزایشی(فعال بودن بیت ) و یکی در حالت کاهشی شمارش انجام بده و در هر لحظه تفاضل مقدار دوکانتر به عنوان مقدار نهایی مورد استفاده قرار بگیره
  3. #3
    2007/11/22
    104
    0

    پاسخ : استفاده از کانتر

    نقل قول نوشته اصلی توسط akamseda
    سلام
    در مورد شمارنده های PIC خیلی اطلاعات ندارم که خودشون میتونند کاهشی بشمارند یا نه اما یه راهکار ساده استفاده همزمان از دو کانتر هست که یکی در حالت افزایشی(فعال بودن بیت ) و یکی در حالت کاهشی شمارش انجام بده و در هر لحظه تفاضل مقدار دوکانتر به عنوان مقدار نهایی مورد استفاده قرار بگیره
    تشکر از جوابی که دادید
    من تفاضل کانتر رو نمیخوام، فقط میخوام کانتر به این صورت عمل کنه، پالس دوم همیشه باید چک بشه اگه یک بود تعداد پالسهای ورودی رو به صورت افزایشی بشمره مثلا پالس دوم یک هست کانتر تعداد پالسهای ورودی رو میشمره و به مثلا به 1200 برسه به محض اینکه پالس دوم صفر شد این بار از 1200 به صورت کاهشی بشمارد

    (یک سوال مبتدیانه: کانتر چگونه به صورت کاهشی میتواند بشمارد) :eek:
  4. #4
    2008/04/14
    166
    34

    پاسخ : استفاده از کانتر

    سلام
    ببخشید من فکر کردم برای avr می خواهید اما به هرحال نظر می دم شاید بتونه به راهنما خوبی باشه:
    1- اگر جابجایی نسبی برات مهمه (یعنی جایی که الان هست مثلا نسبت به مبدا):
    توی سر ریز مقدار یه پین(همون ورودی دوم پالس ) رو چک کن و با توجه به اون بشمار یعنی: (برای avr احتمالا برای شما هم حدودا همینجوری باشه!)
    کد:
    ISR(){
    if(PORTA==0x01){
    counter++;
    }
    else:
    counter--;
    }
    که متغییر کانتر همون شمارنده هست و پالس دوم به a0 میکرو وصل شده
    2-اگر جابجایی مطلق برات مهم هست (یعنی مثلا اگه شفت جلو رفت و برگشت میزان مسیر کل رفت + برگشت رو می خوای) نیازی نیست و همینجوری مقدار افزایشی رو می خونی
  5. #5
    2011/01/29
    تهران
    484
    16

    پاسخ : استفاده از کانتر

    کار سختی نیست . اگر لزومی نداره اصلا نمی خواد از کانتر هم استفاده کنی.
    خروجی سنسور رو بدین به دو پایه از میکرو . همین .
    بعد روال برنامه رو هم اینطور بنویسید:
    1- منتظر ماندن برای تغییر وضعیت پین 1 یا 2
    2- اگر پین 1 تغییر وضعیت داد----> منتظر ماندن برای تغییر وضعیت پین 2------> اگر تغییر وضعیت داد افزایش متغیر
    3- اگر پین 2 تغییر وضعیت داد----> منتظر ماندن برای تغییر وضعیت پین 1------> اگر تغییر وضعیت داد کاهش متغیر
    برنامه اش هم اینطور میشه(برای picc):
    کد:
    while(1)
    {
      if(input(pin_b0))
      {
       while(1)
       {
         if(input(pin_b1))
         {
          variable++;
         }
       }
      }
      if(input(pin_b1))
      {
       while(1)
       {
         if(input(pin_b0))
         {
          variable--;
         }
       }
      }
    }
    البته این کد ها ضعف داره که بستگی به نیاز شما باید خودتون تغییرش بدید.
    موفق باشید
    دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.
  6. #6
    2007/11/22
    تبریز
    2,483
    492

    پاسخ : استفاده از کانتر

    سلام دوست عزيز جناب yadegari

    شفت انکدر عملکردش دقيقا مشابه ولوم هرزگرد هست.(جهت چرخش که100% عين همينه-تعداد چرخش هم قابل اضافه شدن با 2-3 خط کد)
    شما به همين لينک يه بار ديگه عميقاً يه نگاه بنداز و اندکي روش فکر کن :nerd:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    نقل قول نوشته اصلی توسط yadegari
    (يک سوال مبتديانه: کانتر چگونه به صورت کاهشي ميتواند بشمارد) :eek:
    اونطوري که ميدونم کانتر به شکل سخت افزاري،مد کاهشي نداره.ميتونين تو برنامه تغييرش بدين.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  7. #7
    2007/11/22
    104
    0

    پاسخ : استفاده از کانتر

    نقل قول نوشته اصلی توسط شاهرخ
    سلام دوست عزيز جناب yadegari

    شفت انکدر عملکردش دقيقا مشابه ولوم هرزگرد هست.(جهت چرخش که100% عين همينه-تعداد چرخش هم قابل اضافه شدن با 2-3 خط کد)
    شما به همين لينک يه بار ديگه عميقاً يه نگاه بنداز و اندکي روش فکر کن :nerd:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    اونطوري که ميدونم کانتر به شکل سخت افزاري،مد کاهشي نداره.ميتونين تو برنامه تغييرش بدين.
    سلام مهندس شاهرخ
    چند تا سوال داشتم
    1-دلیل استفاده از مقاومت پول پ در مدارات میکرو چیست؟
    2-من از خروجی شفت انکدر استفاده میکنم، آیا باید اون رو به مقاومت پول پ به vcc و خازن به زمین وصل کنم و این کار مشکلی برای شفت انکدر به وجود نمی آورد؟
    من از شفت انکدر autonics rotary encoder model: E50S8-6-L-5 استفاده میکنم که دیتاشیتش رو اینجا میزارم
    http://s4.picofile.com/file/7792880856/1599245.pdf.html
    من از خروجی A,B استفاده میکنم،آیا باید به مقاومت پول پ و خازن وصل بشه
  8. #8
    2007/11/22
    تبریز
    2,483
    492

    پاسخ : استفاده از کانتر

    نقل قول نوشته اصلی توسط yadegari
    سلام مهندس شاهرخ
    چند تا سوال داشتم
    1-دليل استفاده از مقاومت پول پ در مدارات ميکرو چيست؟
    2-من از خروجي شفت انکدر استفاده ميکنم، آيا بايد اون رو به مقاومت پول پ به vcc و خازن به زمين وصل کنم و اين کار مشکلي براي شفت انکدر به وجود نمي آورد؟
    من از شفت انکدر autonics rotary encoder model: E50S8-6-L-5 استفاده ميکنم که ديتاشيتش رو اينجا ميزارم
    http://s4.picofile.com/file/7792880856/1599245.pdf.html
    من از خروجي A,B استفاده ميکنم،آيا بايد به مقاومت پول پ و خازن وصل بشه
    سلام.
    1-اگه پايه اي ورودي بشه و روي هوا بمونه؛ طبيعتا انتظار داريم که موقع خوندن اون پايه مقدار 0 رو برگردونه، درسته؛ اما چون به جايي وصل نيست احتمال داره ولتاژي که ميکرو ميخونه بالاتر از سطح 0 و پايين تر از سطح 1 باشه و اشتباهي رخ بده.پس جهت اطمينان، پايه اي که ورودي هست رو Pull up يا Pulldown ميکنن.صرفا به خاطر اطمينان از عملکرد صحيح
    2-تو همين فايل ديتاشيت، صفحه دوم بخش Output Waveform سمت چپ يه عکس هست که دقيقا بيانگر عملکرديه که مدنظر من هست.مشابه ولوم هرزگرد.
    شما به کمک فازهاي A و B و با روشي که اشاره کردم تو اون تاپيک(دقيقا همون کد و همون سخت افزار براي ورودي اينتراپت و ورودي غير اينتراپت) ميتونين جهت چرخش رو تشخيص بدين.فاز Z هم اگه اشتباه نکنم براي شمارش دفعات چرخش هست که بدين به ورودي شمارنده ميکرو(به عنوان مثال ورودي تايمر صفر که ميشه پايه A.4)
    شفت انکودر شما اگه پايه ي Z نداره، يه خرده نرم افزارش بيشتر ميشه.بدين ترتيب که هر بار پالسهاي A و B رو پشت سر هم تشخيص دادين يه متغير زياد بشه.(پشت سر هم بودن پالسها اهميت داره،چون ممکنه شفت يه جا وايسته و برعکس بچرخه-البته به سخت افزارتون هم وابسته هست،ممکنه برعکس نچرخه.)
    شرمنده دير جواب دادم.
    اميدوارم توضيحات مفيد باشه و ايرادي نداشته باشه.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  9. #9
    2007/11/22
    104
    0

    پاسخ : استفاده از کانتر

    نقل قول نوشته اصلی توسط شاهرخ
    1-اگه پايه اي ورودي بشه و روي هوا بمونه؛ طبيعتا انتظار داريم که موقع خوندن اون پايه مقدار 0 رو برگردونه، درسته؛ اما چون به جايي وصل نيست احتمال داره ولتاژي که ميکرو ميخونه بالاتر از سطح 0 و پايين تر از سطح 1 باشه و اشتباهي رخ بده.پس جهت اطمينان، پايه اي که ورودي هست رو Pull up يا Pulldown ميکنن.صرفا به خاطر اطمينان از عملکرد صحيح
    فرمودید پایه ای که روی هوا بمونه باید پول پ بشه،اما منظور من اینه فاز A که باید به میکرو وصل بشه باید پول پ بشه یا نه؟
    اما من مشکلم رو در این قسمت مطرح کردم که کسی جواب نداد
    http://www.eca.ir/forum2/index.php?topic=77874.msg469658#msg469658
    من از بخش QEI که دو سیگنال A,B با هم اختلاف فاز 90 درجه دارند که این اختلاف فاز جهت حرکت رو نشان میدهند جواب گرفتم،مشکل من این است اگر نوع دیگری از سیگنال خروجی را در نظر بگیریم که یکی جهت حرکت را نشان دهد و دیگری سرعت حرکت را نشان دهد به مشکل خورده ام
    حال اگر از روش شما استفاده کنم باید هر دو سیگنالی که عرض شد که به میکرو وصل میشود باید با پول پ به میکرو وصل کرد یا نه؟
    با تشکر
  10. #10
    2007/11/22
    تبریز
    2,483
    492

    پاسخ : استفاده از کانتر

    خب اين بستگي به ساختار شفت انکودر داره.
    البته الان متوجه شدم که يه جا سوتي دادم! شفت انکدر مورد استفاده ي شما تغذيه داره(5ولت) پس نيازي به Pull up يا Pulldown نيست.
    و يه سوال:
    شما شفت انکدري که داري چندتا خروجي داره؟
    چون تو اين ديتاشيت مدلهاي مختلفي وجود داره...
    ضمنا تو ديتاشيت صفحه ي اول توي جدول، بخش Control Output رو نگاه دوباره اي بندازين و جريان هايي که نوشته رو بررسي کنين.البته احتياطا عرض ميکنم.چون توي تاپيک نوشتين که تا جاهايي جواب گرفتين.
    انشاالله راهش ميندازيم.... :nerd:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 17

موضوعات مشابه

  1. طريقه استفاده از کانتر
    توسط sara789 در انجمن میکروکنترلرهای AVR
    پاسخ: 5
    آخرين نوشته: 2012/07/04, 21:30
  2. l298 بدون استفاده از تایمر و کانتر
    توسط microjo در انجمن رباتيك و مكاترونيك
    پاسخ: 5
    آخرين نوشته: 2011/08/02, 18:36
  3. تایمر کانتر و طرز استفاده از آنها در bascome
    توسط ardavanzzz در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2008/09/11, 20:21
  4. استفاده از تایمر و کانتر
    توسط ma_bazrafshan در انجمن میکروکنترلرهای AVR
    پاسخ: 8
    آخرين نوشته: 2008/01/28, 01:07
  5. مشکل در استفاده از کانتر دو در ATmega16
    توسط nasri_me در انجمن میکروکنترلرهای AVR
    پاسخ: 5
    آخرين نوشته: 2008/01/20, 18:26

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •