NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3884 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 12 از 12

موضوع: *ی سوالی دارم هرکس pwm بلده, میتونه بیاد کمک کنه!*

  1. #1
    عضو جدید
    تاریخ عضویت
    Jul 2013
    نوشته ها
    10
    تشکر
    8
    تشکر شده 2 بار در 2 پست

    پیش فرض *ی سوالی دارم هرکس pwm بلده, میتونه بیاد کمک کنه!*

    سلام
    من ی برنامه با مگا 32 برای کنترل duty cycle ی موتور dc نوشتم که با ی دیپ سوئیچ بین 10تا90 درصد تنظیم میکنه ولی وقتی خروجی رو که با اسکوپ پروتئوس میگیرم تو هر حالت چند درصد خطا داره
    برای اینکه عدد duty cycle دقیق بشه تایمر از 0 تا 250 میشمره که مقدار OCR0 رند بشه و خطا نداشته باشه ولی بازم خطا داره اگه کسی علت رو میدونه لطفا کمک کنه
    ممنون
    فایل c و پروتئوس رو گذاشتم!
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: zip PWM.zip (21.4 کیلو بایت, 26 نمايش)

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر فعال Hesam1984 آواتار ها
    تاریخ عضویت
    Sep 2007
    نام
    مهره مار
    نوشته ها
    315
    تشکر
    45
    تشکر شده 108 بار در 77 پست

    پیش فرض

    فرکانسش خطا داره یا چی

  4. #3
    کاربر فعال
    تاریخ عضویت
    Aug 2011
    نام
    Dany
    نوشته ها
    257
    تشکر
    138
    تشکر شده 185 بار در 106 پست

    پیش فرض

    سلام دوست عزیز توی پروتوس که به جواب خیلی دقیق نمی رسید روی یک بورد تست کنید خیلی بهتره

  5. #4
    عضو جدید
    تاریخ عضویت
    Jul 2013
    نوشته ها
    10
    تشکر
    8
    تشکر شده 2 بار در 2 پست

    پیش فرض

    نقل قول نوشته اصلی توسط Hesam1984 نمایش پست ها
    فرکانسش خطا داره یا چی
    مشکل اینجاست که مثلا اگه شما بهش duty cycle میدی 20% تو شبیه سازی میشه مثلا 23%


    OCR0/250 =Ton/(Toff+Ton)=duty cycle

    همه چیز به نظر من باید درست دربیاد!

  6. #5
    عضو جدید
    تاریخ عضویت
    Jul 2013
    نوشته ها
    10
    تشکر
    8
    تشکر شده 2 بار در 2 پست

    پیش فرض

    نقل قول نوشته اصلی توسط skiboys نمایش پست ها
    سلام دوست عزیز توی پروتوس که به جواب خیلی دقیق نمی رسید روی یک بورد تست کنید خیلی بهتره
    مرسی برای جواب ولی من اسکوپ ندارم !
    فرکانس adc حدود 125 کیلو هرتزه اسکوپ پروتئوس دقتش خیلی بیشتر از حرفاست بعدشم محیط شبیه ساز مگه ایده آل نیست ؟!

  7. #6
    کاربر فعال
    تاریخ عضویت
    Aug 2011
    نام
    Dany
    نوشته ها
    257
    تشکر
    138
    تشکر شده 185 بار در 106 پست

    پیش فرض

    احسان جان من نتونستم فایل پروتوس را شبیه سازی کنم چون شما فایل Hex یاCOF را قرار ندادید ( من codvision روی این سیستمم نصب ندارم) اینهارو بزارید یک نگاه بهش بندازم

  8. #7
    کاربر فعال
    تاریخ عضویت
    Aug 2011
    نام
    Dany
    نوشته ها
    257
    تشکر
    138
    تشکر شده 185 بار در 106 پست

    پیش فرض

    نقل قول نوشته اصلی توسط ehsan.elec1 نمایش پست ها
    مرسی برای جواب ولی من اسکوپ ندارم !
    فرکانس adc حدود 125 کیلو هرتزه اسکوپ پروتئوس دقتش خیلی بیشتر از حرفاست بعدشم محیط شبیه ساز مگه ایده آل نیست ؟!
    خب مگه قرار نیست اینو بالاخره توی عمل پیادش کنید؟(لذتش توی عمل دیدنشه)
    شما 251 کلاک نیاز دارید ، اخری هم در نظر گرفتید؟
    ویرایش توسط skiboys : 10-08-2013 در ساعت 01:48

  9. #8
    کاربر فعال saeed210 آواتار ها
    تاریخ عضویت
    May 2010
    نام
    سعید
    نوشته ها
    320
    تشکر
    442
    تشکر شده 78 بار در 61 پست

    پیش فرض

    سلام دوستان
    آقا احسان شما از روی اسکوپ پروتئوس می خونید؟ چطوری انقدر دقیق می خونید؟
    با گراف ها امتحان کنید مثلا با mixed من امتحان کردم خطاش زیر یک درصد هست که مربوط به زمان بندی های میکرو میشه
    شما دقت بیشتری لازم داری؟

  10. #9
    عضو جدید
    تاریخ عضویت
    Jul 2013
    نوشته ها
    10
    تشکر
    8
    تشکر شده 2 بار در 2 پست

    پیش فرض

    نقل قول نوشته اصلی توسط saeed210 نمایش پست ها
    سلام دوستان
    آقا احسان شما از روی اسکوپ پروتئوس می خونید؟ چطوری انقدر دقیق می خونید؟
    با گراف ها امتحان کنید مثلا با mixed من امتحان کردم خطاش زیر یک درصد هست که مربوط به زمان بندی های میکرو میشه
    شما دقت بیشتری لازم داری؟
    سلام ممنون واس جواب!
    اینجوری:


    اون دایره رو خطاش رو حدودا 1/5 =0.2 تقریب زدم duty cycle بجای 90% میشه 88.23% که بالای 1 % میشه !
    اینجا برام زیاد مهم نیست ولی بالاخره PWM کلا چنتا رجیستر و یه چنتا فرمول کسری خواستم ببینم مشکل واقعا از پروتئوسه یا کد من؟!

  11. #10
    عضو جدید
    تاریخ عضویت
    Jul 2013
    نوشته ها
    10
    تشکر
    8
    تشکر شده 2 بار در 2 پست

    پیش فرض

    نقل قول نوشته اصلی توسط skiboys نمایش پست ها
    احسان جان من نتونستم فایل پروتوس را شبیه سازی کنم چون شما فایل Hex یاCOF را قرار ندادید ( من codvision روی این سیستمم نصب ندارم) اینهارو بزارید یک نگاه بهش بندازم
    پیوست شد متشکر

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

    OCR0/250 =Ton/(Toff+Ton)=duty cycle

    تایمر از 0x05 شروع میشه 255-5=250
    فرمول منطقیه و تو دوتا کتاب دیدم :یکیش کتاب پرتویی فر انتشارات نص ص192
    فايل هاي پيوست شده فايل هاي پيوست شده

  12. تشکرها از این نوشته :


  13. #11
    کاربر فعال saeed210 آواتار ها
    تاریخ عضویت
    May 2010
    نام
    سعید
    نوشته ها
    320
    تشکر
    442
    تشکر شده 78 بار در 61 پست

    پیش فرض

    فکر می کنم یک بخش از خطا هم مربوط به نحوه برنامه نویسی شماست
    وقتی توی تابع وقفه تایمر مقدار تایمر رو عوض می کنید کار دقیقی نمیشه
    اگه با اسمبلی بنویسید اونجا زمانی که به یک تابع پرش می کنید یک رجیستر هست به اسم status باید اون رو ذخیره کنید و موقع برگشت از تابع دوباره لودش کنید یک زمانی هم برای این از بین میره اگه با اسمبلی بنویسید چون میتونید زمان اجرای هر دستور رو دقیق حساب کنید می تونید یک موج خیلی دقیق حساب کنید ولی با c یا باید نحوه برنامه نویسیتون رو عوض کنید (یعنی توی تابع مقدار تایمر رو عوض نکید) یا با آزمون و خطا به دقت مورد نظرتون برسید.
    اگه با گراف ها و با mixed شکل موجتون رو ببینید نه با اسکوپ پروتوس به جواب بهتری میرسید.یعنی اینجوری

  14. کاربران : 2 تشکر کرده اند از شما saeed210 برای ارسال این پست سودمند:


  15. #12
    عضو جدید
    تاریخ عضویت
    Jul 2013
    نوشته ها
    10
    تشکر
    8
    تشکر شده 2 بار در 2 پست

    پیش فرض

    نقل قول نوشته اصلی توسط saeed210 نمایش پست ها
    فکر می کنم یک بخش از خطا هم مربوط به نحوه برنامه نویسی شماست
    وقتی توی تابع وقفه تایمر مقدار تایمر رو عوض می کنید کار دقیقی نمیشه
    اگه با اسمبلی بنویسید اونجا زمانی که به یک تابع پرش می کنید یک رجیستر هست به اسم status باید اون رو ذخیره کنید و موقع برگشت از تابع دوباره لودش کنید یک زمانی هم برای این از بین میره اگه با اسمبلی بنویسید چون میتونید زمان اجرای هر دستور رو دقیق حساب کنید می تونید یک موج خیلی دقیق حساب کنید ولی با c یا باید نحوه برنامه نویسیتون رو عوض کنید (یعنی توی تابع مقدار تایمر رو عوض نکید) یا با آزمون و خطا به دقت مورد نظرتون برسید.
    اگه با گراف ها و با mixed شکل موجتون رو ببینید نه با اسکوپ پروتوس به جواب بهتری میرسید.یعنی اینجوری
    ولی تنها راه اینکه شمارش عدد رندی مثل 250 بشه همین وقفه است!
    ولی قانع شدم احتمالا علت میتونه این باشه مرسی وقت گذاشتید....

  16. تشکرها از این نوشته :


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

  1. کدوم دانشگاه بهتر میتونه مهارتامو افزایش بده ؟؟؟؟
    توسط Dr.ROOSTA در انجمن گفت و گوي آزاد
    پاسخ: 11
    آخرين نوشته: 23-03-2014, 18:40
  2. سوال : 1768 تو لیتوکس (ابونتو)
    توسط microprocesor_2002 در انجمن LPC series (NXP)
    پاسخ: 7
    آخرين نوشته: 19-05-2013, 13:47
  3. کجا میتونه ذخیره بشه؟
    توسط safavism در انجمن گفت و گوي آزاد
    پاسخ: 2
    آخرين نوشته: 13-07-2012, 00:58

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

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