اطلاعیه

Collapse
No announcement yet.

کمک: کنتر نور توسط pwm

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

    کمک: کنتر نور توسط pwm

    با سلام خدمت همه مهندسان حال و آینده
    من میخواستم با avr مداری رو طراحی کنم که به صورت اتوماتیک مقدار شدت نور 3ردیف 7تایی
    ال ای دی رو کنترل کنه به این صورت که مدار وقتی روشن میشه ردیف اول شدت نور کم و ردیف2و3خاموش
    و سپس ردیف دوم شدت نور زیاد ردیف اول شدت نور کم و ردیف سوم خاموش
    وسپس ردیف ردیف سوم شدت نور زیاد ردیف دوم شدت نور کم و ردیف اول شدت نور کم تر
    به طور کلی از ردیف اول شدت نور شروع کنه به بالا رفتن و پایین آمدن.
    من از چند نفر پرسیدم گفتن از طریق pwm میتونی این کارو بکنی
    ولی نگفتن چه جوری
    اصلا pwm چی هست؟؟؟؟؟؟؟؟؟؟؟؟
    من که کلی گیج شدم
    حالا از شما در خواستی که دارم اینه که
    به من بگید که چه جوری این مدار رو درست کنم و برنامشو بنویسم؟ :rolleyes:

    #2
    پاسخ : کمک: کنتر نور توسط pwm

    سلام کلا pwm کار های زیادی می کنه و یکی از اون ها تولی موج مربعی هست
    به طور مثال تو می تونی موجی به وجود بیاری که که تو یک تناوب 25 درصد یک و 75 درصد صفر باشه
    حلا بیا این پروزه مال تو
    برای نور زیاد که ال ای دی ها رو به طور کامل یک کن
    برای نور متوسط باید زمان یک بودن را از زمان صفر بودن ال ای دی ها بیشتر کنی
    مثلا بیا بگو 700 میکرو ثانیه یک باشه و 300 میکرو ثانیه صفر باشه
    حالا کم کم بیا بگو زمان روشن بون ال ای دی ها از زمان خاموش بودن ال ای دی ها بیشتر بشه تا نور ال ای دی ها زیاد تر بشه
    برای کم کردن نور هم زمان خاموش بودن رو بیشتر کن
    راستی به اون زمانی که ال ای دی ها روشن هستن duty cycle یا زمان وظیفه هم می گن که اگر دوست داری فرمول سخت اون رو هم بهت می گم

    دیدگاه


      #3
      پاسخ : کمک: کنتر نور توسط pwm

      دوست عزیز mmh1 ممنون از راهنماییتون
      ولی اگر لطف کنید و یک نمونه برنامه رو که با بسکام نوشته شده باشه رو
      معرفی کنید ممنون میشم :read:
      یا یه منبعی که کلا راجع به این pwm باشه :agree:
      اگر من چند نمونه مثال رو ببینم روش کارش دستم میاد
      بازم ممنون :applause:

      دیدگاه


        #4
        پاسخ : کمک: کنتر نور توسط pwm

        سلام
        اگر یک پالس داری 0.5 ثانیه روشن و0.5 ثانیه خاموش باشه میانگین ولتاژ خروجی چقدر هست در طول مدت یک ثانیه بدیهی هست 2.5=2/(0+5)) این ولتاژ تولید شده دارای ریپل شدید هست که نیاز به یه فیلتر مناسب دارد . ولی فیلتر هرجوری هم که باشه چون فرکانس پاینه پس شما ریپل رو دارید.

        اصول تولید موج در روش pwm بر اساس مدت زمان خاموش و روشن بودن پایه oc ،. هست حال فکر کن فرکانس کاری خیلی بالاست مثلا 16 مگا شما توی خروجیتون ولتاژ2.5 دارید با ریپل های خیلی ضعیف که اگر یه فیلتر نرم کننده مثل همین rc رو داشته باشیم خروجی مطلوب تقریبا بدون ریپل رو می ده

        http://www.shanbe.ir/index.php?topic=124.0
        اگه مثال هم پیدا نکردی بگو برات مثال بزنم
        موفق باشید

        دیدگاه


          #5
          پاسخ : کمک: کنتر نور توسط pwm

          سلام آقا عرفان ممنون از راهنماییتون :job:
          من توی اینترنت چند تا مثال پیدا کردم نمونش همون سایتی که خودتون معرفی کردین
          اونجا یه مدار رو که با پروتئوس شبیه سازی شده بود رو (برای کنترل سرعت موتور) دانلود کردم
          و به جای موتور از ال ای دی استفاده کردم ولی ال ای دی به جای این که نورش کم و زیاد بشه
          چشمک میزنه و این چیزی نیست که من میخواهم :angry:
          فقط این مدار هم نیست یک نمونه دیگه رو هم از اینترنت گرفتم و به جای موتو ال ای دی گذاشتم
          ولی ال ای دی به جای اینکه به آرومی نورش کم و زیاد بشه چشمک میزنه :angry:
          یه مشکل دیگه ای که هست من نمویدونم که 3 ردیف ال ای دی هام رو باید به کجای میکرو وصل کنم؟ :angry:
          این مدار حسابی فکرمو مشغول کرده و دارم خسته میشم :sad:



          دیدگاه


            #6
            پاسخ : کمک: کنتر نور توسط pwm

            چقدر عصبانی :cry2:
            حتما از کریستال پایین استفاده کردی بزار روی کریستال خارجی 16M بهش وصل کن سریع تر چشمک می زنه دیگه نمی بینی که چشمک میزنه میشه انالوگ
            موفق باشید

            دیدگاه


              #7
              پاسخ : کمک: کنتر نور توسط pwm

              سلام فقط حتمی یادت باشه که فیوز بیت ها رو درست بسوزونی چون تقریبا یکبار مصرف اند
              دوستمون درست می گه اگر سرعت خاموش روشن شدن بالا باشه چشمک نمی زنه
              اگر دیدی جواب نداد حتمی قبلا فیوز بیت های آی سی رو مثلا رو 1mhz داخلی سوزوندی و دیگه باید یه آیسی جدید خرید

              دیدگاه


                #8
                پاسخ : کمک: کنتر نور توسط pwm

                با سلام
                دوستان ، مهم نیست که فرکانس کلاک میکرو چیه ، مهم اینه که فرکانس موج PWM چقدر هست .
                همنطور که میدونید چشم انسان قادر نیست فیلیکر بالای 50 هرتز رو تشخیص بده بنابراین فرکانس موج PWM برای کنترل روشنایی باید حداقل 50 هرتز باشه .

                به عنوان مثال برنامه زیر رو ببینید :


                #include <ioavr.h>
                #include <ina90.h>

                __flash unsigned int speed[]={
                0x2451 , 0x2328 , 0x1f40 , 0x1b58 , 0x1770 , 0x1388 ,
                0x0fa0 , 0x0bb8 , 0x07d0 , 0x03e8 , 0x0000};

                __C_task void main (void){

                DDRD=(1<<DDD5);

                // Timer/Counter 0 initialization
                // Clock source: T0 pin Falling Edge
                TCCR0=0x06;

                // Timer/Counter 1 initialization
                // Clock source: System Clock
                // Clock value: 1000.000 kHz
                // Mode: Ph. correct PWM top=ICR1
                // OC1A output: Inverted
                // OC1B output: Discon.
                TCCR1A=0xC2;
                TCCR1B=0x12;
                ICR1=0x2710;
                //MCUCR=0x00;

                while(1){
                if(TCNT0>9)TCNT0=0;
                OCR1A=speed[TCNT0];
                }
                }


                تو برنامه بالا یک موج PWM با فرکانس 50 هرتز روی پایه PD5 ایجاد میشه و مقدار دیوتی سایکل اون هم توسط پوش باتون که به پایه PB0 مثصل هست از داخل مقادیر از پیش تعریف شده و ذخیره شده داخل حافظه فلش انتخاب میشه .

                اینم شماتیکش :

                دیدگاه


                  #9
                  پاسخ : کمک: کنتر نور توسط pwm

                  سلام آقا مجتبی ممنون از راهنماییتون
                  اگر ممکنه مثال رو با بسکام بزنید چون من با CodeVision کار نکردم :rolleyes:
                  :job:

                  دیدگاه


                    #10
                    پاسخ : کمک: کنتر نور توسط pwm

                    خودم با کمک هلپ بسکام یه برنامه نوشتم ولی ال ای دی ها بازم به جای اینکه
                    نورشون از کم به زیاد و از زیاد به کم بیاد چشمک میزنن :angry:

                    $regfile = "m32def.dat"
                    $crystal = 16000000
                    Config Timer1 = Pwm , Pwm = 9 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 64
                    Compare1a = 100
                    Compare1b = 200
                    Pwm1a = 100
                    Pwm1b = 200
                    End

                    دیدگاه


                      #11
                      پاسخ : کمک: کنتر نور توسط pwm

                      نوشته اصلی توسط sinashp
                      اگر ممکنه مثال رو با بسکام بزنید چون من با CodeVision کار نکردم :rolleyes:
                      :job:
                      راستش یادم نیست با بسکام چجوری مینوشتیم (البته دیگه دوستم ندارم که یادمم بیاد)

                      خوب کلیت برنامه که مشخصه شما فقط باید با روش برنامه نویسی pwm تو بسکام آشنا باشید .
                      اما یه پیشنهاد اونطور که مشخصه در مورد بسکام هم اطلاعات کافی ندارید پس همین الان برید دنبال سی (بی شوخی ) مشخصا در مورد این برنامه بالا به زبان سی چیز خواصی وجود نداره .

                      در مورد عملکرد برنامه تون ، فارق از اینکه برنامه ای که نوشتید درسته یا نه یه سوال ، شما این تستی که میگید رو در عمل انجام داید یا با پرتئوس (با پرتئوس نمیشه این برنامه رو تست کرد ).

                      و اینکه ، برنامه رو تو iar نوشتم اما اگه خواستید برای cv هم میزارم.

                      راستی یه چیز که یادم رفته بود بگم این بود که فرکانس کلاک میکرو تو برنامه بالا 8 مگا هرتز هست .

                      دیدگاه


                        #12
                        پاسخ : کمک: کنتر نور توسط pwm

                        سلام

                        برنامه بالارو برای مثال و تست به این صورت بنویس:


                        کد PHP:
                         $regfile = "m32def.dat"
                        $crystal 8000000
                        Config Timer1 
                        Pwm Pwm Compare A Pwm Clear down Compare B Pwm Clear up Prescale =1

                        do
                        Pwm1a 100
                        Pwm1b 
                        200
                        loop
                        End 


                        در ضمن پروتئوس نمی تونه به اون شکل کم یا زیاد شدن نور led روشبیه سازی کنه.
                        دکتر شريعتي:

                        زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

                        دیدگاه


                          #13
                          پاسخ : کمک: کنتر نور توسط pwm

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

                          دیدگاه


                            #14
                            پاسخ : کمک: کنتر نور توسط pwm

                            نوشته اصلی توسط NAO_ROBOT
                            سلام

                            برنامه بالارو برای مثال و تست به این صورت بنویس:


                            کد PHP:
                             $regfile = "m32def.dat"
                            $crystal 8000000
                            Config Timer1 
                            Pwm Pwm Compare A Pwm Clear down Compare B Pwm Clear up Prescale =1

                            do
                            Pwm1a 100
                            Pwm1b 
                            200
                            loop
                            End 


                            در ضمن پروتئوس نمی تونه به اون شکل کم یا زیاد شدن نور led روشبیه سازی کنه.
                            راستش من فقط توی پروتئوس تستش کردم اونم همش چشمک میزنه

                            دیدگاه


                              #15
                              پاسخ : کمک: کنتر نور توسط pwm

                              نوشته اصلی توسط erfan m
                              بزارید یه سوال هم من بپرسم
                              PWM وقفه هست به عبارت دیگر صبر میکنه تا اجرابشه بعد بر خط بعد ؟
                              pwm یا Pulse Width Modulator یا همون مدولاسیون پهنای پالس هست یعنی پهنای پالس تولیدی رو میشه کنترل کرد که تو اینجا یعنی تو میکرو این موج pwm نتیجه مقایسه همیشگی مقدار تایمر با رجیستر مقایسه گر هست که نوع مقایسه و زمان پدیت شدن رجیستر مقایسه و مقدار بالایی و پایینی و یک سیبه و یا دوشیبه بودن شمارش در تایمر ، منجر به تولید مد های مختلف pwm میشه . پس pwm اینجا یک محصول سخت افزاریه میکرو هست که با نرم افزار کنترل میشه و هیچ وقفه ای در تولید اون در صورت فعال شدن وجود نداره
                              اگر خروجی ocn رو به صورن noninv در نظر بگیریم مقدار زمان بالایی موج pwm متناسب با مقدار رجیستر مقایسه گر و در واقع دامنه سیگنال مدوله شونده یعنی tcntn هست .
                              نوشته اصلی توسط sinashp
                              راستش من فقط توی پروتئوس تستش کردم اونم همش چشمک میزنه
                              دوست عزیز با پرتئوس نمیشه همچین چیزی رو شبیه سازی کرد چون تعداد فریمهای شبیه سازی برای همچین کاری تو پرتئوس کمه ، برای اینکه شبیه سازی بهتری داشته باشید تعداد فریم های نمایش رو ، رو مقدار حداکثر اش قرار بدید.

                              دیدگاه

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