اطلاعیه

Collapse
No announcement yet.

pwm

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

    pwm


    سلام.باآرزوی قبولی طاعات وعبادات .....
    مسئله من اینه که مخوام pwm میکرو mega 16 رو 256 قسمت کنم بعد به مدار بدم بعد پاسخ هر کدوم از این 256 تا رو تو یه آرایه بریزم و بزرگترین جواب رو پیدا کنم. کسی میتونه تو برنامه نویسی اون مخصوصا قسمت آرایه اش به من کمک کنه؟
    با تشکر.

    #2
    پاسخ : pwm

    سلام ........................

    ببینید اول بفرمائید زبون برنامه نویسیتون چیه؟

    بعدشم به لینک زیر یه نگاه بندازید.

    http://www.eca.ir/forum2/index.php?topic=5671.msg21065

    بعد هم یه کم در مورد کارتون توضیح بدید. موفق باشید .
    دوستان! مدتی کمتر به سایت میام ..

    دیدگاه


      #3
      پاسخ : pwm

      با codevision

      دیدگاه


        #4
        پاسخ : pwm


        کسی میدونه چطور و با چه فیلتری می شه این 256 قسمت رو به 256 سطح ولتاژ تبدیل کرد :question:

        دیدگاه


          #5
          پاسخ : pwm

          سلام ................

          ببینید من تازه منظور سوال شما رو فهمیدم . برای کار شما نه فیلتر لازمه ، نه کار جانبی دیگه . تنها یک مقدار باید از تکنیک برنامه نویسی استفاده کنید اونم در حد متوسط !!

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

          حالا شما میخواید یه محدوده ی 256 تایی تعین کنید . خب کافیه یه متغییر i تعریف کنید و اون رو درون یه حلقه ی For از 0 تا 255 افزایشش بدید . بعد هم مقدار OCR رو برابر مقدار i قرار بدید . یعنی یه حلقه تعریف کردید که مقدار مقیه ی OCR با TCNT رو به 256 حالت میشکنه و این دقیقا همون تفکیکیه که شما دنبالش هستید .
          اگه خواستید می تونم برنامه ی نمونش رو براتون بذارم . موفق باشید .
          دوستان! مدتی کمتر به سایت میام ..

          دیدگاه


            #6
            پاسخ : pwm

            نوشته اصلی توسط mtn520

            کسی میدونه چطور و با چه فیلتری می شه این 256 قسمت رو به 256 سطح ولتاژ تبدیل کرد :question:
            این که کاری نداره (معما چو حل شود اسان شود)
            شما خروجی PWM1A یا PWM1B رو به یک مدار RC وصل کن به این شکل که مقاومت میخوره به پین میکرو و سر مثبت خازن و خازن هم سر منفی ش می خوره به زمین مدار و خروجی ولتاژ هم میشه نقطه اتصال خازن و مقاومت که از تقریبا 0 تا 5V متغیر داری
            البته اگه PWM ن 8بیتی بزنی میشه 5000MV/256 که میشه تقریبا 20mv یعنی این که با افزایش یک عدد به مقدار pwm خروجی 20mv بالا ویا برعکس پاین میره
            موفق باشی
            انجام پروژه های برنامه نویسی اندروید
            [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
            http://cafebazaar.ir/app/?id=com.atxdroid

            دیدگاه


              #7
              پاسخ : pwm

              سلام ..................

              جناب "محسن" ببینید دیگه نیازی به فیلتر نیست . با همون راهی که بالا گفتیم جواب میده . نمیده؟
              دوستان! مدتی کمتر به سایت میام ..

              دیدگاه


                #8
                پاسخ : pwm

                با تشکر از عنایت دوستان
                راستش این سطوح 256 تایی رو باید به ورودی یه vco بدم خوب میدونید که vco با ولتاا¾ورودی متفاوت خروجی متفاوت میده .
                اما خروجی pwm سطح ولتاا¾زا¾ش ثابته یعنی همه اون 256 تا یه ولتاا¾ا¾ز دارند با پهنای متفاوت خوب من فکر کردم با یه انتگرالگیر میشه سطح زیر اونا رو گرفت تا نماینده یه سطح ولتاا¾ز باشه اما چون در هر مرحله مقدار کمی به پهنای هر قسمت اضافه میشه باید فیلتر مون قوی باشه
                حالا من دنبال همون فیلتر قویه میگردم.

                دیدگاه


                  #9
                  پاسخ : pwm

                  نوشته اصلی توسط mtn520
                  اما خروجی pwm سطح ولتاا¾زا¾ش ثابته یعنی همه اون 256 تا یه ولتاا¾ا¾ز دارند با پهنای متفاوت .............
                  ..........
                  حالا من دنبال همون فیلتر قویه میگردم.
                  سلام ................

                  ببینید منظورتون چیه سطح ولتاژ ثابته؟ حتما برخورد کردید با مواردی که از PWM به عنوان یه ولوم دیجیتال استفاده می کنن یا مثلا برای دیمر از PWM استفاده می کنن . احتمالا سوء تعبیری شده . به هر حال ن یه نمونه برنامه میذارم تا مبحث کامل مشخص بشه . موفق باشید .

                  دوستان! مدتی کمتر به سایت میام ..

                  دیدگاه


                    #10
                    پاسخ : pwm

                    با سلام
                    ببینید تا جایی که میدونم pwm دارای دامنه ثابت و عرض متفاوته اصلا رو اسمش معلومه Pulse Width Modulation و دامنه ثابت یعنی ولتاژ ثابت مگه نه ؟ حالا اگه بخواهیم ولتاژ ثابت نباشه باید چیکار کنیم ؟ اگه اشتباه میگم از اینکه راهنمایی می کنید تشکر میکنم.
                    (تو پرانتز: خواستم شکل اضافه کنم هر کاری کردم نشد)


                    راستی IC هست که از موج مربع انتگرال بگیره؟
                    ضمنا چه طور vcoرو تو proteusراه بندازم

                    با تشکر

                    دیدگاه


                      #11
                      پاسخ : pwm

                      سلام ..............

                      نوشته اصلی توسط mtn520

                      اگه اشتباه میگم از اینکه راهنمایی می کنید تشکر میکنم .
                      تا حدود زیادی!!!
                      فردا یه فایل همین جا میذارم تا کاملا موضوع روشن بشه . موفق باشید .
                      دوستان! مدتی کمتر به سایت میام ..

                      دیدگاه


                        #12
                        پاسخ : pwm

                        سلام ..................

                        خوشحالم که بالاخره یه نفر این بحث رو مطرح کرد تا روش صحبت کنیم . ببینید در ابتدا از مفهوم PWM شروع می کنیم . در حقیقت این واژه مخفف Pulse Width Modulation هست و همون طور که از اسمش هم معلومه مربوط میه به مدولاسیون پهنای پالس . یعنی اون چیزی که در اینجا برای ما اهمیت داره ، پهنای پالس خروجیه .

                        در نتیجه برای اینکه اطلاعات پالس خروجیمون رو توصیف کنیم ، باید بپردازیم به پهنای پالس تولید شده از این طریق . برای بررسی پالس تولید شده ، یه سری فاکتور ها رو باید ارزیابی کنیم ، که بسیار مهم هستن و برای هر پالس ، به طور جداگانه تعیین میشه . اولین اونها دوره ی تناوب یا Period هست .

                        خب این فاکتور رو تقریبا میشناسیم . دومین اونها عرض مفید پالس یا Duty Cycle هست . این فاکتور مدت زمانیه که سطح پالس در طول یه دوره ، بالا قرار بگیره . این فاکتور از نسبت مدت زمانیکه پالس در یک دوره در وضعیت بالا قرار داره ، بخش بر مدت زمان یه دوره به دست میاد (ضربدر 100) .
                        در شکل زیر دو تا پالس با دو Duty Cycle متفاوت رو مشاهده می کنید .

                        http://www.4shared.com/file/62882377/a54326c1/P_1.html

                        http://www.4shared.com/file/62882484/be9d7d31/P_2.html


                        اما از مواردی که برای استفاده از PWM بهش اشاره میکنن میشه به کنترل دور موتور های DC ، استفاده در ولوم های دیجیتال ، استفاده در دیمر ها و از این قبیل موارد اشاره کرد . موضوعی که در همه ی اینها مشترکه اینه که استفاده از ولتاژ متغییر به عنوان یه عامل کنترلی ، در موارد بالا نقش اصلی رو بازی میکنه . اما PWM چه ربطی به ولتاژ متغییر داره؟ در حقیقت موضوعی که وجود داره اینه که هر شکل موج PWM معادل یه ولتاژ dc هست و از این جهته که میگن برای این موارد میشه از PWM استفاده کرد . در واقع این پهناهای مختلف پالسه که معادل یه ولتاژ dc بعه حساب میاد و میشه ازش استفاده کرد .
                        به رابطه های زیر توجه کنید .....

                        http://www.4shared.com/file/62882657...8/_2__P_5.html

                        خب همونطوری که مشاهده می کنید به راحتی میشه از این روابط ، ولتاژ dc معادل هر شکل موج PWM رو به دست آورد . برای نمونه ، شکل های زیر ، ولتاژهای معادل دو پالس بالا رو نشون میدن .....

                        http://www.4shared.com/file/62882764/2258eee6/P_3.html

                        http://www.4shared.com/file/62882849/6583b7e4/P_6.html

                        برای اینکه در عمل هم این مورد رو مشاهده کنید، نمونه ی برنامه زیر رو به صورت سخت افزاری اجرا کنید ، تا دیگه همه چیز روشن بشه .

                        نقشه ی مدار .....
                        http://www.4shared.com/file/62882997/36578e99/P_7.html

                        برنامه ی مدار .....
                        http://www.4shared.com/file/62883121/8a6fc4ba/PWM.html

                        امیدوارم مشکلتون برطرف شده باشه . موفق باشید .
                        دوستان! مدتی کمتر به سایت میام ..

                        دیدگاه


                          #13
                          پاسخ : pwm

                          راستی برنامه ای که در پست بالا هست، همون کاری رو میکنه که شما میخواید . 256 سطح ولتاژ مختلف . موفق باشید .
                          دوستان! مدتی کمتر به سایت میام ..

                          دیدگاه


                            #14
                            پاسخ : pwm

                            با سلام
                            از اینکه میبینم کسایی پیدا میشن که برای سوالات بقیه بی چشم داشت وقت میذارن خیلی خوشحالم و ...
                            اما بعد
                            برنامه رو اجرا کردم تو برنامه خروجی OC0 رو فعال نکرده یودید.
                            پس یعنی با توجه به این مطالب ، خروجی ocx به طور سخت افزاری اون فرمول تبدیل پهنا به یه ولتاژ رو اعمال میکنه ؟ مستقیما میشه اون 256 تا رو به ورودی VCO داد؟
                            یه چیز دیگه، این سوالاتی که تا حالا کردم مربوط به یه قسمتی از پروژم میشه.استادمون تو بلوک دیاگرامی که کشیده بین oc0 و ورودی vco یه باکس فیلتر گذاشته . پس منظورش از فیلتر چی بوده؟ :eek:

                            نماز و روزه ی همه انشاءالله قبول باشد.با تشکر.

                            دیدگاه


                              #15
                              پاسخ : pwm

                              سلام ...................

                              ببینید ، زمانی که شما در تنظیمات CodeWizard تایمر رو در مد PWM (سریع یا تصحیح فاز ) قرار میدید ، خروجی OCx رو برای پالس خروجی فعال میکنید (دیگه نیازی نیست ما خروجیش کنیم) (درست مثل ADC که وقتی تنظیم میشه، دیگه نیازی نیست ما به صورت ورودی تنظیمش کنیم) حالا با تنظیم مقدار رجیستر OCR (همون رجیستری که مربوط میشه به مقایسه برای تولید پالس) شما میتونید پهنای پالس خروجیتون رو کنترل کنید . در نتیجه همون طوری که در شکل نقشه ی مدار ، به اون اشاره کردیم ، میتونید یه LED یا یه بیزر یا هر چیزی که بتونید فعالیت سلسله مراتبی اون رو ببینید ، به پایه ی OCx متصل کنید و در نتیجه پدیده ی ولتاژ متغییر در خروجی رو به وضوح مشاهده کنید (خواهش میکنم این آزمایش رو انجام بدید تا موضوع کاملا لمس بشه) .

                              اما از نظر بلوک دیاگرامی که فرمودید ، استاد محترمتون خدمتتون ارائه کردن ، دقیق نمیدونم برای چیه؟ شاید ایشون میخواستن موضوع رو به گونه ای دنبال کنن که از PWM میکرو استفاده نشه، یا شایدم منظور دیگه ای داشتن . حالا اگه ممکنه بلوک دیاگرام رو بذارید (همون تیکه و تیکه هایی که به اون قسمت فیلتر مربوط میشه) تا روی اون بدون پیش داوری و مستند صحبت کنیم . موفق باشید .
                              دوستان! مدتی کمتر به سایت میام ..

                              دیدگاه

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