hỏi về sự ảnh hưởng của tần số trong pwm?

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • superhieu1
    Thành viên tích cực
    • Jul 2010
    • 1884

    #1

    hỏi về sự ảnh hưởng của tần số trong pwm?

    mình chỉ là sinh viên năm nhất, mình chưa được học mấy thứ này, mong các sư huynh đi trước chỉ giáo!
    giả sử mình có 1 nguồn 12v dòng max là 12A
    trong kỹ thuật pwm, thì duty ảnh hưởng tuyến tính đến áp trung bình, và còn gì nữa không?
    vậy tần số có ảnh hưởng gì đến dòng và áp không?
    cảm ơn các sư huynh nhiều!
    nếu có điều gì sai sót mong các sư huynh tha mạng!
    TamPhieuLuuKy@yahoo.com
    092 2838 712 --->>
  • superhieu1
    Thành viên tích cực
    • Jul 2010
    • 1884

    #2
    nhiều ng đọc mà sao chưa có ai help hết, hic!
    TamPhieuLuuKy@yahoo.com
    092 2838 712 --->>

    Comment

    • duong_act
      Thành viên tích cực
      • Nov 2008
      • 4903

      #3
      Dĩ nhiên là tần số có ảnh hưởng đến dòng và áp.
      Với tải thuần trở thì ko nói làm gì. Ví dụ tải có tính cảm thì mặc dù duty không đổi nhưng tần số càng cao thì dòng càng thấp....vv.v

      Comment

      • superhieu1
        Thành viên tích cực
        • Jul 2010
        • 1884

        #4
        vậy đối với tải trở thì nó thế nào hà bác, nó có tuyến tình hay công thức gì ko, thướng thì pwm ta chọn tần số bao nhiêu?
        TamPhieuLuuKy@yahoo.com
        092 2838 712 --->>

        Comment

        • superhieu1
          Thành viên tích cực
          • Jul 2010
          • 1884

          #5
          sẵn tiện các bác cho hỏi em co đoạn code chế biến xào nấu thế này
          Code:
          #device 16f877a*=16 adc =8
          #use delay(clock=12000000)
          int8 adc;
          int8 var1;
          
          void main()
          {
          
             setup_adc_ports(NO_ANALOGS);
             setup_adc(ADC_CLOCK_DIV_2);
             setup_psp(PSP_DISABLED);
             setup_spi(SPI_SS_DISABLED);
             setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
             setup_timer_1(T1_DISABLED);
             setup_timer_2(T2_DISABLED,0,1);
             setup_comparator(NC_NC_NC_NC);
             setup_vref(FALSE);
          
          var1=0;
          
          trisb=0;
          trisa=0xff;
          
          setup_adc(ADC_CLOCK_internal);
          setup_adc_ports(an0);
          set_adc_channel(0);
          delay_us(10);
          while(1)
          {var1=read_adc();
          
          {
          portb=0xff;
          delay_us(var1);
          portb=0;
          delay_us(256-var1);
          }


          em không biết khởi tạo modul pwm trong ccs như thế nào nên em làm như vậy để điều khiển độ sáng đèn, nhưng cái delay thì tính bằng us, cái var1 thì tính bằng 2^8=256, phải chi em biết cách tạo pwm, mong các bác chỉ dẫn cho em.


          1 câu nữa là:
          vd em co nguồn 12v, pwm cho ra 6v thì, duty=50%, và cái var1 là 256/2, nhưng nếu nguồn thay đổi thì áp hồi tiếp thay đổi==>var1 thay đổi==>ap pwm thay đổi, nhưng ko biết có tuyến tính ko, ý em là dòng trung bình 500mA, nếu áp giảm==>áp FB giảm==>duty tăng, nhưng em dùng delay thì ko tuyến tính huhuhu, help me!
          TamPhieuLuuKy@yahoo.com
          092 2838 712 --->>

          Comment

          • superhieu1
            Thành viên tích cực
            • Jul 2010
            • 1884

            #6
            sẵn tiện các bác cho hỏi em co đoạn code chế biến xào nấu thế này
            Code:
            #device 16f877a*=16 adc =8
            #use delay(clock=12000000)
            int8 adc;
            int8 var1;
            
            void main()
            {
            
               setup_adc_ports(NO_ANALOGS);
               setup_adc(ADC_CLOCK_DIV_2);
               setup_psp(PSP_DISABLED);
               setup_spi(SPI_SS_DISABLED);
               setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
               setup_timer_1(T1_DISABLED);
               setup_timer_2(T2_DISABLED,0,1);
               setup_comparator(NC_NC_NC_NC);
               setup_vref(FALSE);
            
            var1=0;
            
            trisb=0;
            trisa=0xff;
            
            setup_adc(ADC_CLOCK_internal);
            setup_adc_ports(an0);
            set_adc_channel(0);
            [COLOR="red"]delay_us(10);// delay nay de lam gi vậy a?[/COLOR]while(1)
            {var1=read_adc();
            
            {
            portb=0xff;
            delay_us(var1);
            portb=0;
            delay_us(256-var1);
            }


            em không biết khởi tạo modul pwm trong ccs như thế nào nên em làm như vậy để điều khiển độ sáng đèn, nhưng cái delay thì tính bằng us, cái var1 thì tính bằng 2^8=256, phải chi em biết cách tạo pwm, mong các bác chỉ dẫn cho em.


            1 câu nữa là:
            vd em co nguồn 12v, pwm cho ra 6v thì, duty=50%, và cái var1 là 256/2, nhưng nếu nguồn thay đổi thì áp hồi tiếp thay đổi==>var1 thay đổi==>ap pwm thay đổi, nhưng ko biết có tuyến tính ko, ý em là dòng trung bình 500mA, nếu áp giảm==>áp FB giảm==>duty tăng, nhưng em dùng delay thì ko tuyến tính huhuhu, help me!
            TamPhieuLuuKy@yahoo.com
            092 2838 712 --->>

            Comment

            • hoangdai
              Thành viên tích cực
              • Nov 2005
              • 2720

              #7
              Xem phần help của CCS.


              Add: 97 Quán Nam - Lê Chân - Hải Phòng.
              Tel: 031 518648 Phone: 0904 283 505

              Comment

              • superhieu1
                Thành viên tích cực
                • Jul 2010
                • 1884

                #8
                với đoạn code trên khi mô phỏng em thấy duty ko dc mỡ rộng hết cỡ, có phải là do ko co dien ap tham chiếu ko? vậy khai báo ntn, khai báo dùng Vref chung nguồn VDK và rời nữa, thank cao nhân!
                TamPhieuLuuKy@yahoo.com
                092 2838 712 --->>

                Comment

                • superhieu1
                  Thành viên tích cực
                  • Jul 2010
                  • 1884

                  #9
                  thank bác, help là cái F1 phai ko, công nhận hay thật!
                  TamPhieuLuuKy@yahoo.com
                  092 2838 712 --->>

                  Comment

                  • superhieu1
                    Thành viên tích cực
                    • Jul 2010
                    • 1884

                    #10
                    vậy áp tham chiếu luôn 3v<=Vref<= VDD phải ko bác?
                    nhưng em ko biết câu khai báo Vref =vdd nằm ở đâu
                    TamPhieuLuuKy@yahoo.com
                    092 2838 712 --->>

                    Comment

                    • duong_act
                      Thành viên tích cực
                      • Nov 2008
                      • 4903

                      #11
                      Search các dòng code sau :
                      setup_timer_2()
                      setup_pwm1()
                      set_pwm1_duty()
                      // pwm dùng ccp
                      hoặc

                      setup_power_pwm()
                      setup_power_pwm_pins()
                      set_power_pwm0_duty()
                      pwm dùng modul pwm

                      Comment

                      • OpenDoor
                        Thành viên tích cực
                        • Apr 2011
                        • 251

                        #12
                        Có 1 project ADC đây, chú thích đầy đủ.

                        #include "16f887.h"
                        #include "def_16f887.h"
                        #device *=16 ADC = 10
                        #fuses HS,PUT,NOWDT,NOPROTECT,NOLVP
                        #use delay(Clock = 4000000) //Thach anh 4MHz
                        int16 temp;
                        void main()
                        {
                        setup_spi(SPI_SS_DISABLED);
                        setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
                        setup_timer_2(T2_DISABLED,0,1);
                        setup_comparator(NC_NC_NC_NC);
                        setup_vref(FALSE);
                        setup_timer_1(T1_INTERNAL);
                        setup_adc_ports(sAN0|sAN1|VREF_VREF); //kenh A0,A1 nhan tin hieu, A2 = 0V; A3 = 5V;
                        setup_adc(ADC_CLOCK_INTERNAL); //Thoi gian lay mau bang clock he thong.
                        delay_ms(5); //Cho thiet lap xong ADC.
                        // TODO: USER CODE!!

                        trisa = 0xff; //PORTA nhan du lieu.
                        trisc = 0x00; //PORTC xuat du lieu.
                        trisd = 0x00; //PORTD xuat du lieu.
                        while(1)
                        {
                        //Doc kenh 0
                        set_adc_channel(0); //Chon kenh 0.
                        delay_us(10); //cho chon kenh xong.
                        temp = read_adc(); //doc gia tri analog da chuyen doi sang so.
                        temp = temp/10.24; //stepsize = 50mV. Neu giao tiep LM35 thi chia 2.048 (stepsize = 10mv)
                        PORTC = temp; //Value = Vol/0,05
                        delay_ms(1000); //Thoi gian hien thi 1s.
                        //Doc kenh 1
                        set_adc_channel(1); //Chon kenh 1.
                        delay_us(10); //cho chon kenh xong.
                        temp = read_adc(); //doc gia tri analog da chuyen doi sang so.
                        temp = temp/10.24; //stepsize = 50mV. Neu giao tiep LM35 thi chia 2.048 (stepsize = 10mv)
                        PORTD = temp; //Value = Vol/0,05
                        delay_ms(1000); //Thoi gian hien thi 1s.
                        }

                        }

                        Comment

                        • duong_act
                          Thành viên tích cực
                          • Nov 2008
                          • 4903

                          #13
                          Project trên có nhiều câu lệnh không cần thiết với quá trình xử lý ADC. Ví dụ SPI, COMP.., TIMER0,1,2,VREF.

                          Comment

                          • superhieu1
                            Thành viên tích cực
                            • Jul 2010
                            • 1884

                            #14
                            thank 2 bac, phan adc va pwm xem trong help cũng hieu so so rồi, cho em hỏi thêm


                            void main()
                            {
                            set_tris_c(0); // portc output.
                            setup_timer_2(t2_div_by_1,1023,1);
                            setup_ccp1(ccp_pwm); //chan ccp1 chan bam xung

                            bác giải thích sơ lược cho em cái setup_timer_2 dùng làm gì cho pwm? cờ tràn 1023 nghĩa là sao? vd em dùng thạch anh 20Mhz, thì 1023 và số 1 có liên quan gi?
                            TamPhieuLuuKy@yahoo.com
                            092 2838 712 --->>

                            Comment

                            • duong_act
                              Thành viên tích cực
                              • Nov 2008
                              • 4903

                              #15
                              Nguyên văn bởi superhieu1 Xem bài viết
                              thank 2 bac, phan adc va pwm xem trong help cũng hieu so so rồi, cho em hỏi thêm


                              void main()
                              {
                              set_tris_c(0); // portc output.
                              setup_timer_2(t2_div_by_1,1023,1);
                              setup_ccp1(ccp_pwm); //chan ccp1 chan bam xung

                              bác giải thích sơ lược cho em cái setup_timer_2 dùng làm gì cho pwm? cờ tràn 1023 nghĩa là sao? vd em dùng thạch anh 20Mhz, thì 1023 và số 1 có liên quan gi?
                              Vội quá chỉ trả lời dc cho bạn chỗ cờ tràn 1023. Bạn set cho timer2 là 1023 với dòng PIC khác có thể đúng nhưng với 16F877A là sai lí do Timer2 của 877A là timer 8 bit nên tối đa chỉ có 255 mà thôi. Cái này ảnh hưởng đến cả tần số và độ phân giải cho pwm. Ví dụ bạn set cờ tràn là 255 thì khi đó Ton+Toff = 255+1. Nên thấy rằng cờ tràn càng lớn thid độ phân giải càng cao tuy nhiên tần số pwm càng thấp. Còn 2 thông số kia là độ chia tỉ lệ cũng ảnh hưởng đến pwm.

                              Comment

                              Về tác giả

                              Collapse

                              superhieu1 Tìm hiểu thêm về superhieu1

                              Bài viết mới nhất

                              Collapse

                              Đang tải...