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





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









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





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

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 17
  1. #1
    2012/07/29
    42
    0

    تشخیص جهت حرکت در انکدر افزایشی



    با سلام دوستان من در میکرو در دوتا از اینتراپتهای خارجی دارم پالس aوb را میخونم ولی نمیدونم چه کدی بنویسم تا تشخیص دهم که پالسaزودتر آمده یا b تا جهت رو متوجه بشم
    اگه دوستان کار کردن و الگوریتمی دارن برام بگن ممنون میشم
  2. #2
    2012/04/13
    249
    2

    پاسخ : تشخيص جهت حرکت در انکدر افزايشي

    نقل قول نوشته اصلی توسط Raha323

    با سلام دوستان من در ميکرو در دوتا از اينتراپتهاي خارجي دارم پالس aوb را ميخونم ولي نميدونم چه کدي بنويسم تا تشخيص دهم که پالسaزودتر آمده يا b تا جهت رو متوجه بشم
    اگه دوستان کار کردن و الگوريتمي دارن برام بگن ممنون ميشم
    سلام
    واسه کار کردن با انکودر يه اينتراپت بيشتر احتياج نيست (يعني من خودم با يه وقفه کار کردم جواب هم تو شبيه سازي تا حالا گرفتم) واسه پياده سازيش بايد يه مدار ساده خازن مقاومت ببندي که بانسش رو بگيره
    اينم کدي که خودم استفاده کردم
    کد:
    interrupt [EXT_INT0] void ext_int0_isr(void){
        if(PIND.1==1) {
          voltage=voltage+1;
          if(voltage_num_change>=201) voltage_num_change=201;
          }
        else {
          voltage=voltage-1;
          if(voltage_num_change<0 || voltage_num_change>202) voltage_num_change=0;
          }
        }
  3. #3
    2012/07/29
    42
    0

    پاسخ : تشخیص جهت حرکت در انکدر افزایشی

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

    اضافه شده در تاریخ :
    در این کدی که شما نوشتین PIND.1 همان پالس B است؟
    اگر اینطور باشد در یک جهت مطلقا یک یا صفر نیست که بتوان با آن جهت را تشخیص داد چون از نوع پالس می باشد
    منظوراتون رو از مدار خازن مقاومتی متوجه نشدم در مسیر خواندن PIND.1 قرار داده اید؟
  4. #4
    2012/04/13
    249
    2

    پاسخ : تشخيص جهت حرکت در انکدر افزايشي

    نقل قول نوشته اصلی توسط Raha323
    ممنون از پاسخ اتون
    ولي من در خواندن پالس شمارشي مشکل ندارم من براي تشخيص جهت مشکل دارم
    من با انکرد افزايشي که سر يک چرخ وصل شده و مسافت را اندازه گيري ميکن کار ميکنم براي محاسبه مسافت در يک جهت مشکل ندارم حال ميخوام اگه چرخ به عقب برگشت از مقدار مسافت کم شود پس احتياج به جهت چرخش دارم
    حال اختلاف فاز AوB به من جهت ميدهد من نميدانم چطور اين اختلاف فاز را در ميکرو تشخيص دهم
    ممنون
    خب اين برنامه هم همين کار رو ميکنه!
    ببين پالسي که تو خروجي انکودر مي افته دوتا مربعي هست که 90 درجه اختلاف فاز دارن.اسمشونو بذار a و b
    پايه خروجي پالس a رو به اينتراپت خارجيت وصل کن، وقفه رو روي لبه بالا رونده تنظيم کن (اگه پايه هاي خروجي انکودرت رو پول داون کردي) و تو زير برنامه وقفه اينو چک کن
    فرض کن تو جهت ساعتگرد، a زودتر از b مياد
    پس لحظه اي که a پالس ميده و وقفه انجام ميشه، اگه b صفر باشه يعني a زودتر اومده و ساعتگرده
    اگه وقتي a پالس ميده، b يک باشه يعني a بعد از b يک شده و پادساعتگرده
    حالا بسته به جهت، متغيرت رو کم يا زياد کن
    دقيقا همين کدي که نوشتم

    اضافه شده در تاریخ :
    نقل قول نوشته اصلی توسط Raha323
    در اين کدي که شما نوشتين PIND.1 همان پالس B است؟
    اگر اينطور باشد در يک جهت مطلقا يک يا صفر نيست که بتوان با آن جهت را تشخيص داد چون از نوع پالس مي باشد
    منظوراتون رو از مدار خازن مقاومتي متوجه نشدم در مسير خواندن PIND.1 قرار داده ايد؟

    اين يه طرح از اون مدار بانس گير هست

    ببین تو عکس دوم اون که نوشته روش جدید، پایه های خروجی انکودرش رو پول پ کرده و پایه سوم رو زمین
    تو این روش همیشه خروجی هات 5 ولت هستم و به محض اینکه بچرخونی، با یه اختلاف فازی صفر میشن و دوباره 1 میشن
    اگه میخوای خروجیت مث عکس زیر بشه، خروجی هات رو پول داون کن
    و پایه سوم هم بده به 5 ولت


    با تشکر از آقاي سامان اسدي :biggrin:
  5. #5
    2012/07/29
    42
    0

    پاسخ : تشخیص جهت حرکت در انکدر افزایشی

    ممنونم
    من دقیقا همین کد رو نوشتم ولی پین b همش در داخل اینتراپت وقتی انکدر رو در یک جهت میچرخونم صفرو یک میده ولی مثلا وقتی راست گرد هست درصد بیشتری صفر هست ولی باز یک هم توش هست و این محاسبات منو خراب میکنه و وقتی پاد ساعت گرد است درصر بیشترش یک است ولی صفر م گاهی دارد مطلقا در تغییر جهت صفر یا یک نیست من از 26Ls32 برای خواندن انکدر استفاده کردم
  6. #6
    2012/04/13
    249
    2

    پاسخ : تشخيص جهت حرکت در انکدر افزايشي

    نقل قول نوشته اصلی توسط Raha323
    ممنونم
    من دقيقا همين کد رو نوشتم ولي پين b همش در داخل اينتراپت وقتي انکدر رو در يک جهت ميچرخونم صفرو يک ميده ولي مثلا وقتي راست گرد هست درصد بيشتري صفر هست ولي باز يک هم توش هست و اين محاسبات منو خراب ميکنه و وقتي پاد ساعت گرد است درصر بيشترش يک است ولي صفر م گاهي دارد مطلقا در تغيير جهت صفر يا يک نيست من از 26Ls32 براي خواندن انکدر استفاده کردم
    اگه اين خطايي که گفتي رو تو سخت افزار ميبيني، اين همون بانس انکودر هست که با اون مداره ميتوني از بين ببريش
    ولي تو فقط کافيه خروجي a رو به اينتراپت بدي و وقفه شو فعال کني
    براي خروجي b احتياجي به وقفه نيستفقط مقداري که b به ميکرو وارد ميکنه رو چک کن
  7. #7
    2012/07/29
    42
    0

    پاسخ : تشخيص جهت حرکت در انکدر افزايشي

    ميکروي من 30f6014A هستش و انکدر هم 3600 پالس
    مدار و کد ميکرو هم به شکل زير هست
    کد:
    #int_EXT1
    void EXT1_isr(void) 
    {
    
     
     if(input(PIN_A14)==1)
     {
    Count_INC_Puls++;
     if(Flag_Z_Puls==1)
     {
      Count_INC_Puls=0;
      Flag_Z_Puls=0;
     }
     }
     else
     {
     Count_INC_Puls--;
     if(Flag_Z_Puls==1)
     {
      Count_INC_Puls=0;
      Flag_Z_Puls=0;
     }
     }
     fprintf(Com1,"%li  \n",Count_INC_Puls);
    }[img][img][img][img][img][/img][/img][/img][/img][/img]
  8. #8
    2012/04/13
    249
    2

    پاسخ : تشخيص جهت حرکت در انکدر افزايشي

    نقل قول نوشته اصلی توسط Raha323
    ميکروي من 30f6014A هستش و انکدر هم 3600 پالس
    مدار و کد ميکرو هم به شکل زير هست
    #int_EXT1
    void EXT1_isr(void)
    {


    if(input(PIN_A14)==1)
    {
    Count_INC_Puls++;
    if(Flag_Z_Puls==1)
    {
    Count_INC_Puls=0;
    Flag_Z_Puls=0;
    }
    }
    else
    {
    Count_INC_Puls--;
    if(Flag_Z_Puls==1)
    {
    Count_INC_Puls=0;
    Flag_Z_Puls=0;
    }
    }
    fprintf(Com1,"%li \n",Count_INC_Puls);
    }[/img][/img][/img][/img]
    عکستو که درست نذاشتي!
    اگه مشکل اينه که انکودر رو ميچرخوني عددت تغيير نميکنه احتمالا تو کد نويسيت واسه اين flag و اينا يه اشتباهي کردي
    من دقيقا متوجه نشدم اون قسمتشو
  9. #9
    2009/01/30
    168
    9

    پاسخ : تشخيص جهت حرکت در انکدر افزايشي

    معمولا يک مدار آنتي جيتر ميبندند که پالس ها لرزش نداشته باشه (يادمه با فليپ فلاپ ميبستيم)
    با توجه به اينکه اول کدوم يکي از کاناهاي A يا B لبه بالا رونده (يا پايين رونده ) اش مياد جهت چرخش مشخص ميشه . اما مدار آنتي جيتر حتما بايد باشه . اگه دفتر کنترل صنعتيمو پيدا کردم براتون مدارشو ميزارم :nerd:
  10. #10
    2012/07/29
    42
    0

    پاسخ : تشخیص جهت حرکت در انکدر افزایشی

    الان مشکل من هنگامی رخ میده که شفت انکدر رو سریع میچرخونم در نتیجه اینتراپتها سریع زده میشن مثل این اتفاق می افته که اختلاف زمانیه برای خواندن PIN B دچار مشکل میشه
    چون زمانی که آروم میچرخونم پین B در یک جهت صفر و در جهت دیگر یک است
    در این میکرو من چطور اینتراپت میکرو مو حساس به لبه بالا یا پایین کنم؟
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 17

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

  1. تشخیص میزان حرکت تصویر
    توسط natanzweb در انجمن پردازش تصوير
    پاسخ: 2
    آخرين نوشته: 2015/02/27, 16:31
  2. سنسور برای تشخیص حرکت...
    توسط an3023 در انجمن سنسورها
    پاسخ: 3
    آخرين نوشته: 2014/04/29, 23:41
  3. نحوه تشخیص حرکت جسم مذاب
    توسط jostejogar در انجمن سیستم های کنترلی
    پاسخ: 12
    آخرين نوشته: 2012/08/02, 07:54
  4. تشخیص حرکت در فضای سه بعدی
    توسط ali_oop در انجمن رباتيك و مكاترونيك
    پاسخ: 3
    آخرين نوشته: 2010/10/19, 02:06
  5. تشخیص حرکت x و y
    توسط khast khodaiebehnam در انجمن سنسورها
    پاسخ: 15
    آخرين نوشته: 2009/04/22, 17:35

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

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

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

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

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