سلام بچه ها خوبید من یه led rgb گرفتم که سه تا پایه ی منفی و یه پایه ی مثبت داره من می خوام با روش pwm اینو روشن کنم یعنی هر پایه یعنی r-g-b- می توانند بینن 1 تا 256 باشند من میخوام این کارو بکنم ولی روش pwm رو بلد نیستم اگه کاملا توضیح دهید ممنون می شم .
اطلاعیه
Collapse
No announcement yet.
کمک در مورد استفاده از pwm در bascom و codevision
Collapse
X
-
پاسخ : کمک در مورد استفاده از pwm در bascom و codevision
سلام
ممنون از جوابتون آقا اگه شما یه مقاله در مورد بیسکام در مورد این روش بگید ممنون می شم من می خواستم بدونم این پالس pwm به عنوان مثال خودش از 1 تا 255 رو میشماره وپالس درست می کنه یا نه ما خودمون می تونیم بگیو مثلا پایه ی b1 آیسی پالس 150 را اجرا کند ممنمون می شم که یه مقداری در مورد این مسئله حرف بزنید .
دیدگاه
-
پاسخ : کمک در مورد استفاده از pwm در bascom و codevision
سلام
در مورد بسکام که شرمنده ام چون باهاش کار نکردم،امیدوارم دوستان کمک کنند
اما راجع به PWM شما ابتدا با تنظیم رجیسترها میاید و مشخص می کنید که چه نوع PWM با چه مشخصاتی از نظر فرکانس و دیوتی و ...
بعد این موج روی پایه OCn تولید میشه و شما نیازی به کد نویسی براش نداریددر دیر مغان آمد یارم قدحی در دست
مست از می می خواران از نرگس مستش مست
دیدگاه
-
پاسخ : کمک در مورد استفاده از pwm در bascom و codevision
سلام
توی روش مدولاسیون پالس دامنه همون 5 ولته ولی نسبت زمان 1 به صفر بودن باعث میشه مقدار متوسط سیگنال pwm که مبین مقدار dc اونه تغییر پیدا بکنه
پس عرض متغییره کوچکترین عرضی که میشه ایجاد کرد نشان دهنده منفی ترین مقداره و عریض ترین مثبت ترین
با توجه به میکرو و قدرت تایمر کنترها شما می تونید از pwm بصورت n بیتی ( معمولا 8 بیتی یا 9 یا 10 بیتی بسته به نوع تایمر و کانتر ) استفاده بکنید.
PWM می تونه بصورت بالارونده از مقدار 0 تا حد نهائی تایمر افزایش یا برعکس از مقدار نهائی به طرف صفر بصورت پائین رونده کاهش داشته باشه
پس میشه گفت با توجه به n بیتی بودن pwm مقداری که می تونه تا اون بالا بره یا برعکس تعیین میشه همچنین توی هر مد n بیتی فرکانس pwm تقسیمی از فرکانس کاری تایمر / کانتر بوده
همه اینا بصورت جدول توی help بسکام موجوده
توی رجیستر ها دو تا رجسیتر هستند که میشه اونا رو با توجه به درصد سیکل کاری مقدار دهی کرد وقتی مقدار تایمر به اون می رسه وضعیت پایه خروجی تغییر معکوس داره
این دوتا رجسیتر اسمش OCR n A , OCR n B البته n اینجا یعنی شماره تایمر / کانتر
وضمنا pwm میتونه بصورت معکوس شده یا معکوس نشده روی پایه های خروجی ظاهر بشه
یعنی در موقع تطابق وضعیت خروجی چه جوری باشه
دراین حالت پایه های OC1A و OC1B خروجی PWM هستند .
دستور تحت بسکام برای پیکره بندی
Config TimerX = PWM , PWM = 8 or 9 or 10 , Compare A Pwm = Clear Up | Clear Down | Disconnect , Compare B Pwm = Clear Up | Clear Down | Disconnect , Prescale
=1|8|64|256|1024
X شماره تایمر
Clear Up | Clear Down = در موقع تطابق مقدار OCR n با تایمر کانتر وضعیت خروجی معکوس گردد | معکوس نگردد .
Disconnect = درموقع تطابق مقایسه از پایه خروجی ORC قطع گردد.
Prescale = تولید pwm با فرکانس های مختلف
پس ابتدا PWM رو پیکره بندی می کنید
تا فرکانس کاری اون رو تعیین بکنید بعد رجسیترهای مقایسه ای pwm رو که همونORC با دستور زیر مقدار دهی می کنید تا معلوم بکنید در کدوم مقدار در حالت افزایشی خروجی OC1A,B
تغییر پیدا بکنه
فرکانس PWM با توجه به معادله زیر قابل محاسبه است .
8بیتی
PWM FREQUNCY = FOSC / 510 *PERSCALE
9بیتی
PWM FREQUNCY = FOSC / 1022 *PERSCALE
10 بیتی
PWM FREQUNCY = FOSC / 2046 *PERSCALE
مثال :
'And the TIMER can be used in PWM mode
'You have the choice between 8,9 or 10 bit PWM mode
'Also you can specify if the counter must count UP or down after a match
'to the compare registers
'Note that there are two compare registers A and B
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 8
'to set the PWM registers, just assign a value to the compare A and B registers
Compare1a = 100
Compare1b = 200
'Or for better reading :
Pwm1a = 100
Pwm1b = 200
LOOP
End
توی مثال بالا فرکانس کاری PWM مساوی 488.7585 هرتزه
وقتی مقدار تایمر / کانتر 1 مساوی 100 بشه خروجی با توجه به مقدار PWM1a و موقعی که مساوی 200 بشه با توجه به مقدار PWM1b
خروجی معکوس میشه
امیدوارم مسله ات حل بشه این مطالب رو با کمک کتاب علی کاهه و help خود نرم افزار اینجا نوشتم
موفق باشی
دیدگاه
-
پاسخ : کمک در مورد استفاده از pwm در bascom و codevision
آقا کمک!!! جان هر کسی که دویت دارید یاری برسانید !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
نم حدود یک ماه که در تلاشم تا از تایمر یک PWM بگیرم اما هنوز نتونستم!!!!!!!!!!!!
لطفا یه کاری کنید همین چند ماه پیش بود که توانسته بودم اما دوباره نمی دونم چی شده فقط یه کاری کنیدلطفاسزد کز خاتم لعلش زنم لاف سلیمانی / چو اسم اعظمم باشد چه باک از اهرمن دارم
لاحول و لاقوه الا بالله العلیّ العظیم
دیدگاه
-
پاسخ : کمک در مورد استفاده از pwm در bascom و codevision
نوشته اصلی توسط misytazآقا کمک!!! جان هر کسی که دویت دارید یاری برسانید !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
نم حدود یک ماه که در تلاشم تا از تایمر یک PWM بگیرم اما هنوز نتونستم!!!!!!!!!!!!
لطفا یه کاری کنید همین چند ماه پیش بود که توانسته بودم اما دوباره نمی دونم چی شده فقط یه کاری کنیدلطفا
برنامه ای که نوشتی رو یزار تا مشکل رو با دوستان رفع کنیم.
دیدگاه
-
پاسخ : کمک در مورد استفاده از pwm در bascom و codevision
نوشته اصلی توسط misytazآقا کمک!!! جان هر کسی که دویت دارید یاری برسانید !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
نم حدود یک ماه که در تلاشم تا از تایمر یک PWM بگیرم اما هنوز نتونستم!!!!!!!!!!!!
لطفا یه کاری کنید همین چند ماه پیش بود که توانسته بودم اما دوباره نمی دونم چی شده فقط یه کاری کنیدلطفا
در این که باید برنامتون رو بذارید ، شک نکنید . اما اینم ببینید .
http://www.eca.ir/forum2/index.php?topic=5671.msg73192
موفق باشید .دوستان! مدتی کمتر به سایت میام ..
دیدگاه
-
پاسخ : کمک در مورد استفاده از pwm در bascom و codevision
سلام
ببخشید من یه عمرانیم میشه یک کم ساده تر توضیح بدید من توی پروژه ام باید بتونم عددی رو که از یه تابع بدست میارم به ولتاژ تبدیل کنم
یه مسئله مهم اینکه توی کتاب آقای کاهه نوشته محدوده ولتاژ خروجی بین 2.5 تا 9 ولت خواهد بود ولی من ولتاژ بین -1 تا 1 یا حد اقل بین 0تا 1 می خوام راه حلی داره ؟
دیدگاه
دیدگاه