اطلاعیه

Collapse
No announcement yet.

فرکانس موج PWM

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

    #16
    پاسخ : فرکانس موج PWM

    یعنی اگه من حالت fast pwm top=icr رو انتخاب کنم و تو برنامه به رجیستر icr1l مقدار بدم به شرطی که از مقدار ocr1al بیشتر نشه ، با همون فرکانس پایه oc1b ولی یا dutycycleهای متفاوت روی پین oc1a فرکانسو دارم؟ :question: :question:
    mer30

    دیدگاه


      #17
      پاسخ : فرکانس موج PWM

      نوشته اصلی توسط mohsenmax70
      تو برنامه به رجیستر icr1l مقدار بدم به شرطی که از مقدار ocr1al بیشتر نشه ...
      اصلاً توجه نمیکنید چی میگم. اولاً مقدار OCR1A و OCR1B نباید از ICR1 بیشتر باشه.
      ثانیاً ICR1L قسمتی از ICR1 (هشت بیت کم ارزش اون) است، همچنین OCR1AL قسمتی از OCR1A است.
      شما اگر مقداری که میخواهید بزرگتر از 255 باشه باید به بایت بالایی اونها هم مقدار بدید.
      برای همین بهتره هرجا این رجیستر ها رو با پسوند L و H دیدید (که معمولاً به صورت پشت سر هم در دوخط از برنامه مقدار دهی میشوند) اون خط از برنامه رو حذف کنید و به جای دوتاشون مقدار 16 بیتی اونها رو بنویسید.
      مثلاً اگر میخواهید به OCR1A مقدار 500 بدید ، اگر به صورت هشت بیتی بخواهید مقدار بدید باید بنویسید:

      کد:
       
      
      OCR1AL=0XF4;
      OCR1AH=0x01;
      ولی اگر 16 بیتی کارکنید دوخط بالا رو پاک میکنید و خیلی راحت مینویسید:
      کد:
      OCR1A=500;
      نوشته اصلی توسط mohsenmax70
      ... با همون فرکانس پایه oc1b ولی یا dutycycleهای متفاوت روی پین oc1a فرکانسو دارم؟ :question: :question:
      بله همینطوره.

      دیدگاه


        #18
        پاسخ : فرکانس موج PWM

        واقعا خیلی ممنون که کمک کردین . مساله با کمکهای شما حل شد .
        mer30

        دیدگاه


          #19
          پاسخ : فرکانس موج PWM

          با تایمر صفر و دو چند تا pwm میتونم تولید کنم ؟؟؟
          اگه میشه کامل توضیح بدین با برنامه c ????

          دیدگاه


            #20
            پاسخ : فرکانس موج PWM

            با فرض اینکه تایمرهات 8بیتی هستند(مثل mega 16) با هر تایمر میتونی یک خروجی pwm داشته باشی .در مورد تایمر یک بتنهایی دو تا pwm داری.منتها دقت تایمر 8بیتی با 16بیتی متفاوت هست.
            برای راهنمایی بیشتر باید بدونم چه کار میخوای بکنی.
            mer30

            دیدگاه


              #21
              پاسخ : فرکانس موج PWM

              نوشته اصلی توسط mohsenmax70
              با فرض اینکه تایمرهات 8بیتی هستند(مثل mega 16) با هر تایمر میتونی یک خروجی pwm داشته باشی .در مورد تایمر یک بتنهایی دو تا pwm داری.منتها دقت تایمر 8بیتی با 16بیتی متفاوت هست.
              برای راهنمایی بیشتر باید بدونم چه کار میخوای بکنی.
              میخوام با یک میکرودچند تا موتور رو کنترل کنم ؟(سرعتشون )

              دیدگاه


                #22
                پاسخ : فرکانس موج PWM

                برای تایمر 3 تو مگا 128 تو برنامه مینویسم OCR3A=500 نمیشه ارور میده ، چکار کنم؟

                دیدگاه


                  #23
                  پاسخ : فرکانس موج PWM

                  سلااااااااااااااااااااااام بچه ها:
                  میخوام یک فرستنده گیرنده بسازم که هرچی اهرم رو رویه فرستنده بیشتر فشار میدم سرعت موتور بیشتر شه کمکم؟
                  موتورم 200 وات هستن. از میکرو ]ستفاده کنم یا مبدل انالوگ به دیجیتال؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

                  دیدگاه


                    #24
                    پاسخ : فرکانس موج PWM

                    ببین احتمالا پارامترهای مربوط به پیکربندی pwm رو درست تنظیم نکردی یبار کلا چک کن: مثلا یبار رو این پارامترها تنظیم کن ببین اصلا کار میکنه یا نه.
                    TCCR1A=0xB2; --------
                    TCCR1B=0x19;
                    TCNT1H=0x00;
                    TCNT1L=0x00;
                    ICR1H=0x00;
                    ICR1L=0; //SET FREQUENCY
                    OCR1A=0; //DUTY A CHANNEL
                    OCR1B=0; //DUTY B CHANNEL
                    mer30

                    دیدگاه


                      #25
                      پاسخ : فرکانس موج PWM

                      نوشته اصلی توسط akbar8
                      سلااااااااااااااااااااااام بچه ها:
                      میخوام یک فرستنده گیرنده بسازم که هرچی اهرم رو رویه فرستنده بیشتر فشار میدم سرعت موتور بیشتر شه کمکم؟
                      موتورم 200 وات هستن. از میکرو ]ستفاده کنم یا مبدل انالوگ به دیجیتال؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
                      سلام
                      خوب با استفاده از pwm میکرو میتونی سرعتو تنظیم کنی و موتورتم اطلاعاتشو بصورت کامل بده (ولتاژ و ....) فکر کنم که با l298 میتونی درایو کنی و اگه جریانشم بیشتر باشه از Mosfet میتونی استفاده کنی .
                      mer30

                      دیدگاه


                        #26
                        پاسخ : فرکانس موج PWM

                        آقا این تاپیک فوق العاده بود. خیلی از مفاهیم اساسی رو دوستمون Perfect توضیح دادن. منکه خیلی از سوالام جواب داده شد. بعد از خوندن توضیحات دوستمون تازه متوجه شدم دیتاشیت چی میگه !! :mrgreen:
                        خیلی علاقه مند شدم درمورد سایر مودهای کاری تایمر 1 در جدول 47 اطلاعات بدست بیارم. مثلا برای وضعیت های 5،6،7
                        من هرجور مقدار فرکانس میکرو رو تغییر دادم نشد که فرکانس pwm رو در خروجی ثابت کنم. همیشه اعشاری درمیاد
                        این برنامه منه:
                        کد:
                        #include <avr/io.h>
                        #define F_CPU 5120000UL
                        #include <util/delay.h>
                        
                        
                        
                        void pwm_init()
                        {
                        	TCCR1A |= (1<<WGM10)|(1<<WGM11)|(0<<COM1B0)|(1<<COM1B1);
                        	TCCR1B |= (1<<WGM12)|(0<<WGM13)|(1<<CS10); // prescale =1
                        	DDRD |= (1<<PD5)|(1<<PD4); // D4 as OC1b and D5 as OC1a.
                        	
                        	OCR1B=400;
                        
                        }
                        int main(void)
                        {
                        	pwm_init();
                        	
                          while(1)
                          {
                        		
                            //TODO:: Please write your application code 
                          }
                        }
                        اینجور که من حساب کردم میشه 5KHz ولی رو اوسکوپ ثابت نمیشه.
                        خدا نور است و من اشعه ای از او ...

                        دیدگاه


                          #27
                          پاسخ : فرکانس موج PWM

                          نوشته اصلی توسط بهنام رستمی نژاد
                          آقا این تاپیک فوق العاده بود. خیلی از مفاهیم اساسی رو دوستمون Perfect توضیح دادن. منکه خیلی از سوالام جواب داده شد. بعد از خوندن توضیحات دوستمون تازه متوجه شدم دیتاشیت چی میگه !! :mrgreen:
                          خیلی علاقه مند شدم درمورد سایر مودهای کاری تایمر 1 در جدول 47 اطلاعات بدست بیارم. مثلا برای وضعیت های 5،6،7
                          من هرجور مقدار فرکانس میکرو رو تغییر دادم نشد که فرکانس pwm رو در خروجی ثابت کنم. همیشه اعشاری درمیاد
                          این برنامه منه:
                          کد:
                          #include <avr/io.h>
                          #define F_CPU 5120000UL
                          #include <util/delay.h>
                          
                          
                          
                          void pwm_init()
                          {
                          	TCCR1A |= (1<<WGM10)|(1<<WGM11)|(0<<COM1B0)|(1<<COM1B1);
                          	TCCR1B |= (1<<WGM12)|(0<<WGM13)|(1<<CS10); // prescale =1
                          	DDRD |= (1<<PD5)|(1<<PD4); // D4 as OC1b and D5 as OC1a.
                          	
                          	OCR1B=400;
                          
                          }
                          int main(void)
                          {
                          	pwm_init();
                          	
                            while(1)
                            {
                          		
                              //TODO:: Please write your application code 
                            }
                          }
                          اینجور که من حساب کردم میشه 5KHz ولی رو اوسکوپ ثابت نمیشه.
                          سلام
                          این کد رو امتحان کنید
                          کد:
                          #include <avr/io.h>
                          #define F_CPU 5120000UL
                          
                          int main(void)
                          {
                          	PORTD=0x00;
                          	DDRD=0xff;
                          	// Timer/Counter 1 initialization
                          	// Clock source: System Clock
                          	// Clock value: 5120 kHz
                          	// Mode: Fast PWM top=ICR1
                          	// OC1A output: Disconnected
                          	// OC1B output: Non-Inverted PWM
                          	// Noise Canceler: Off
                          	// Input Capture on Falling Edge
                          	// Timer Period: 0.2 ms
                          	// Output Pulse(s):
                          	// OC1B Period: 0.2 ms Width: 0.1 ms
                          	// Timer1 Overflow Interrupt: Off
                          	// Input Capture Interrupt: Off
                          	// Compare A Match Interrupt: Off
                          	// Compare B Match Interrupt: Off
                          	TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (1<<COM1B1) | (0<<COM1B0) | (1<<WGM11) | (0<<WGM10);
                          	TCCR1B=(0<<ICNC1) | (0<<ICES1) | (1<<WGM13) | (1<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10);
                          	TCNT1H=0x00;
                          	TCNT1L=0x00;
                          	ICR1H=0x03;
                          	ICR1L=0xFF;
                          	OCR1AH=0x00;
                          	OCR1AL=0x00;
                          	OCR1BH=0x01;
                          	OCR1BL=0xFF;
                            while(1)
                            {
                              //TODO:: Please write your application code 
                            }
                          }
                          موفق باشید
                          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                          معرفی نرم افزار Codewizard PWM
                          با من بیشتر آشنا شوید

                          دیدگاه


                            #28
                            پاسخ : فرکانس موج PWM

                            فرکانسهای کم حدود 200 یا 300 هرتز با دقت بالا رو بهتره از چه مدی در PWM استفاده کرد؟ (میکرو atmega32 وتایمر2)

                            دیدگاه


                              #29
                              پاسخ : فرکانس موج PWM

                              کسی میدونه چرا با تغییر TCNT ، فرکانس تغییر نمیکنه؟ پری اسکیل و کریستال میکرو ثابته.... من TCNT رو از 64 هگز به 9A هگز تغییر دادم ولی فرکانس تغییری نداره؟چرااا؟ کمک :cry:

                              دیدگاه


                                #30
                                پاسخ : فرکانس موج PWM

                                خواهش میکنم هر کی میدونه کمکم کنه، من میخام یه موج مربعی با فرکانس دقیق 300 هرتز با دیوتی سایکل 1/14 ایجاد کنم ولی نمیتونم...کمک کنید

                                دیدگاه

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