Thông báo

Collapse
No announcement yet.

Sine wave Inverter 12VDC-220VAC sử dụng PWM của PIC

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #91
    Hi,
    Vụ này tui bỏ lâu rồi nên cũng ít quan tâm đến nó. Một số ý kiến cũng như nhận xét về vụ băm sine này như sau:
    Cuộn cảm đó là do tui quấn bằng tay (có dùng cái móc nhựa để đan lưới đánh cá để móc dây quấn cho nhanh). Nhân tiện cũng xin chia sẻ thêm về cách quấn. Cái lõi đúng là lấy từ cái xuyến của bộ nguồn ATX, số vòng quấn là 100 vòng. Từ kích thước và số vòng ta tính sơ bộ chiều dài dây cần thiết, nhớ là phải dư ra một chút vì lớp ngoài tốn dây hơn lớp trong. Sau khi cắt được đoạn dây có kích thước như tính toán thì chia đôi sợi dây và đặt ngang lên lõi xuyến. Dùng móc để móc dây qua lỗ và dùng tay ép cho dây thẳng và đều. Vụ quấn dây này rất mỏi tay nên khi nào mỏi thì nghỉ chút rồi quấn tiếp. Nếu có cái kẹp để cố định lõi mà móc dây quấn thì sẽ rất nhanh và giải quyết được vấn đề mỏi tay. Lưu ý khi quấn xong thì đoạn dây còn thừa cắt bớt và trừ vào đoạn dây trước khi quấn để biết chiều dài dây bao nhiêu là vừa. Việc làm này giúp cho chúng ta quấn cái tiếp theo không cần phải đếm số vòng mà chỉ cần quấn đến khi hết dây là đủ.
    Nhược điểm của băm sine theo bảng là nó không thể ổn định dạng sóng theo tải được. Nếu tải đúng với mong muốn thì sóng ra rất đẹp, nếu tải thấp thì dạng sóng ra sẽ vuông hơn do điện áp trên tụ lọc không xả hết được. Vì vậy nếu dùng cho tải cố định thì có thể thay đổi trị số tụ để có dạng sóng đẹp nhất. Tui đã cố gắng sử dụng cách tra nhiều bảng để sửa dạng sóng bằng cách đo dòng tải, dựa vào mức tải để quyết định băm theo bảng nào cho sóng đẹp nhưng mà cũng chẳng hơn là mấy mà chỉ được cái mất công. Vì vậy chỉ cần tra một bảng là được rồi, cách tạo bảng sine thì như bài đầu tui đã viết còn chương trình thì có thay đổi chút xíu nhưng mà nguyên tắc vẫn là tra bảng, các bác code cách nào cho VXL chạy nhanh nhất là được. Mặc dù là tui đã nghỉ việc nhưng những thứ này làm cho cơ quan nên không thể open source hoàn toàn cho các bác được.
    Vấn đề cháy IR2110 thì hãy mắc theo cách trong datasheet là được, do máy này không phải máy tui nên không có sơ đồ để post lên được. Tui chỉ nhớ mang máng là có thêm điện trở và diode nối tiếp vào chân IR2110. Trong vòng 20 phút tui đã đốt 7 chú IR này nên cũng thấm thía lắm, sau khi mắc theo sơ đồ đó thì không bị toi em nào cả.
    Những vấn đề khác các bác có thắc mắc cứ hỏi, nếu trả lời được tui sẽ cố gắng phản hồi sớm.
    Thân ái.
    Đường đến những ngày vinh quang không còn xa
    Con đường chúng ta... chúng ta đã chọn.

    Comment


    • #92
      BÁC có thể hướng dẫn cách quấn biến thế xung không?
      dự án của bác làm quấn như thế nào.
      tần số pwm của bác chọn là bao nhiêu?
      nên sử dụng ir2184 thì hay hơn không cho cầu H.

      Comment


      • #93
        Nguyên văn bởi Hard Xem bài viết
        Hi,
        Vụ này tui bỏ lâu rồi nên cũng ít quan tâm đến nó. Một số ý kiến cũng như nhận xét về vụ băm sine này như sau:
        Cuộn cảm đó là do tui quấn bằng tay (có dùng cái móc nhựa để đan lưới đánh cá để móc dây quấn cho nhanh). Nhân tiện cũng xin chia sẻ thêm về cách quấn. Cái lõi đúng là lấy từ cái xuyến của bộ nguồn ATX, số vòng quấn là 100 vòng. Từ kích thước và số vòng ta tính sơ bộ chiều dài dây cần thiết, nhớ là phải dư ra một chút vì lớp ngoài tốn dây hơn lớp trong. Sau khi cắt được đoạn dây có kích thước như tính toán thì chia đôi sợi dây và đặt ngang lên lõi xuyến. Dùng móc để móc dây qua lỗ và dùng tay ép cho dây thẳng và đều. Vụ quấn dây này rất mỏi tay nên khi nào mỏi thì nghỉ chút rồi quấn tiếp. Nếu có cái kẹp để cố định lõi mà móc dây quấn thì sẽ rất nhanh và giải quyết được vấn đề mỏi tay. Lưu ý khi quấn xong thì đoạn dây còn thừa cắt bớt và trừ vào đoạn dây trước khi quấn để biết chiều dài dây bao nhiêu là vừa. Việc làm này giúp cho chúng ta quấn cái tiếp theo không cần phải đếm số vòng mà chỉ cần quấn đến khi hết dây là đủ.
        Nhược điểm của băm sine theo bảng là nó không thể ổn định dạng sóng theo tải được. Nếu tải đúng với mong muốn thì sóng ra rất đẹp, nếu tải thấp thì dạng sóng ra sẽ vuông hơn do điện áp trên tụ lọc không xả hết được. Vì vậy nếu dùng cho tải cố định thì có thể thay đổi trị số tụ để có dạng sóng đẹp nhất. Tui đã cố gắng sử dụng cách tra nhiều bảng để sửa dạng sóng bằng cách đo dòng tải, dựa vào mức tải để quyết định băm theo bảng nào cho sóng đẹp nhưng mà cũng chẳng hơn là mấy mà chỉ được cái mất công. Vì vậy chỉ cần tra một bảng là được rồi, cách tạo bảng sine thì như bài đầu tui đã viết còn chương trình thì có thay đổi chút xíu nhưng mà nguyên tắc vẫn là tra bảng, các bác code cách nào cho VXL chạy nhanh nhất là được. Mặc dù là tui đã nghỉ việc nhưng những thứ này làm cho cơ quan nên không thể open source hoàn toàn cho các bác được.
        Vấn đề cháy IR2110 thì hãy mắc theo cách trong datasheet là được, do máy này không phải máy tui nên không có sơ đồ để post lên được. Tui chỉ nhớ mang máng là có thêm điện trở và diode nối tiếp vào chân IR2110. Trong vòng 20 phút tui đã đốt 7 chú IR này nên cũng thấm thía lắm, sau khi mắc theo sơ đồ đó thì không bị toi em nào cả.
        Những vấn đề khác các bác có thắc mắc cứ hỏi, nếu trả lời được tui sẽ cố gắng phản hồi sớm.
        Thân ái.
        luồng đang hay,sao lại dừng lại vậy các bác.
        chảng thây ai nói về vấn đề hồi tiếp thế nào cho chuẩn và nhanh nhỉ.m cũng đã thử làm rùi nhưng hồi tiếp về ko dc nhanh như mấy con IC của "tàu khựa",fai tính = s thì mới ổn áp dc.vả lại ko còn time đâu để chíp làm các việc #,như bảo vệ chảng hạn.có bác nào có ý j hay ko chỉ cho e với
        email:trangonthuocthom@gmail.com

        Comment


        • #94
          Nguyên văn bởi theanh01 Xem bài viết
          mình thấy ý tưởng này được đấy. còn về quấn biến áp xung thì không khó khăn gì. bạn cứ nói mục đích của biến áp xung mà bạn định dùng (dùng cho điều khiển hay công suất) nói rõ cần mức điện áp vào bao nhiêu, ra bao nhiêu mình sẽ hướng dẫn cụ thể bạn nhé. cố gắng lên thành công sẽ chờ bạn ở phía trước...
          mình có lõi 1cm2. mình muốn dùng công suất 300W/12-220, tấn số 25kz thì n=?,d=? hả bạn?
          và nếu tần số 100kz thì n=? d=?
          mình mong được hồi âm sớm nhất!
          thanks bạn rất nhiều!

          Comment


          • #95
            code này của bác không chạy được máy báo lỗi, em mới nhập môn nên không rành lắm mong

            Nguyên văn bởi Hard Xem bài viết
            Code:
            Code:
            #include "D:\WORK_2010\Inverter\PIC_Inverter\Inverter.h"
            #define CLOCKS        249
            
            //Sine wave by 40 segments per half of cycle
            unsigned int const SineWave[40] = 
                            {
                                0,        20,    39,    58,    77,    96,    113,    131,    147,    162,
                                177,    190,    202,    213,    223,    231,    238,    243,    247,    249,
                                250,    249,    247,    243,    238,    231,    223,    213,    202,    190,
                                177,    162,    147,    131,    113,    96,    77,    58,    39,    20
                            };
            volatile unsigned int UpperDuty, LowerDuty;
            #byte UpperDuty = 0x15    // CCP1
            #byte LowerDuty = 0x1B    // CCP2
            volatile unsigned char Counter, Seg;
            volatile int1 Negative;
            volatile int1 Run;
            
            #int_EXT
            void  ext_isr(void)
            {
                Run ^= 1;
                if(!Run)
                {
                    UpperDuty = 0;    // Set duty = 0
                    LowerDuty = 0;
                    Seg = 0;
                }
            }
            
            #int_TIMER2
            void timer2_isr(void)
            {
                if(++Counter >= 5)    //5 PWM per Sine wave segment
                {        
                    UpperDuty = 0;
                    LowerDuty = 0;
                    if(Run)
                    {
                        if(Negative)
                        {
                            LowerDuty = SineWave[Seg];    // Set duty
                            //UpperDuty = 0;
                        }
                        else
                        {
                            UpperDuty = SineWave[Seg];
                            //LowerDuty = 0;
                        }
                    }
                    if(Seg == 0)
                        Negative ^= 1;        
                    if(++Seg > 39)
                        Seg = 0;    // Reset Seg
                    Counter = 0;    // Reset Counter
                }
            }
            void main()
            {
                setup_adc_ports(NO_ANALOGS);
               setup_adc(ADC_OFF);
               setup_psp(PSP_DISABLED);
               setup_spi(SPI_SS_DISABLED);
               setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
               setup_ccp1(CCP_PWM);    // Use for upper half
               setup_ccp2(CCP_PWM);    // Use for lower half
               setup_timer_2(T2_DIV_BY_1,CLOCKS,1);
               setup_comparator(NC_NC_NC_NC);
               setup_vref(FALSE);
               enable_interrupts(INT_EXT);
               ext_int_edge(0, H_TO_L );   // Sets up EXT
               enable_interrupts(INT_TIMER2);
               enable_interrupts(GLOBAL);
            
               // TODO: USER CODE!!
                Counter = 0;
                Seg = 0;
                Negative = FALSE;
                Run = FALSE;
                set_tris_c(0B10000000);
                while(1)
                {
                }
            }

            code này em copy về sửa lại chút mà không chạy được cứ báo thiếu #device .............. vậy bác giúp đỡ e vơi nhé e mới nhập môn he
            My Face :

            Comment


            • #96
              anh chia sẻ thêm cho em với được không em đang cần gấp. cảm ơn anh nhiều nhé!!!
              My Face :

              Comment


              • #97
                mình đã đọc hết bài này.....theo ngu ý của mình thì PIC có loại có cả PWM và DAC
                nên ta sẽ dùng PWM để tạo nguồn công suất có DC 310V bằng MOS trước rồi sẽ dùng nguồn này để nuôi tầng công suất bằng Trans được điều khiển bằng DAC
                ta lấy điện áp 310 hồi tiếp về để điều chỉnh duty PWM khi tải thay đổi
                như thế sẽ giảm được việc sinh nhiệt trên các tầng công suất và đỡ tốn điện acquy và cũng k lo việc lọc tín hiệu sin khi làm việc với FET.

                Comment


                • #98
                  có dùng 89s52 được không bác ,nếu được bác cho em xin sơ đồ với

                  em cũng đang khó phàn mạch băm xung cho cầu h
                  thank bác trước

                  Comment


                  • #99
                    có dùng 89s52 được không bác ,nếu được bác cho em xin sơ đồ với hì em cũng đang khó phàn mạch băm xung cho cầu h thank bác trước

                    Comment


                    • Nguyên văn bởi tan0710 Xem bài viết
                      mình đã đọc hết bài này.....theo ngu ý của mình thì PIC có loại có cả PWM và DAC
                      nên ta sẽ dùng PWM để tạo nguồn công suất có DC 310V bằng MOS trước rồi sẽ dùng nguồn này để nuôi tầng công suất bằng Trans được điều khiển bằng DAC
                      ta lấy điện áp 310 hồi tiếp về để điều chỉnh duty PWM khi tải thay đổi
                      như thế sẽ giảm được việc sinh nhiệt trên các tầng công suất và đỡ tốn điện acquy và cũng k lo việc lọc tín hiệu sin khi làm việc với FET.
                      làm thế nào anh chỉ thêm cho em với được không ah!
                      My Face :

                      Comment


                      • Mạch của đồng chí Hard không dùng được đâu nên các bác đừng lắp mất công. Một mạch chạy ổn định thì tối thiểu phải có phần hồi tiếp về để sửa méo và bù áp. Trong mạch này không có và quá đơn giản.
                        n
                        ĐT: 0986 492 489

                        Tham khảo:

                        Comment


                        • Hi,
                          Gần 1 năm rồi mới trở lại, bác minhhieu nói đúng 1 phần là mạch của mình không có bù méo còn phần ổn áp thì phần DC-DC nó đảm nhiệm rồi. Với cái mạch đơn giản của mình thì đã thử tải máy quạt sóng vẫn sine rất đẹp nếu các bác dùng với mục đích này thì không phải lo.
                          Riêng cái code của mình muốn dịch thì phải có file header (*.h) và phải đặt đúng đường dẫn trong khai báo include không thì trình biên dịch nó báo lỗi là phải rồi. Với lại code để chạy mạch thật còn thêm vài thứ loằng ngoằng nữa để shutdown khi quá tải hoặc quá nhiệt, tất nhiên mạch phần cứng phải có các bộ phận để cảm biến các thông số này.
                          Thân ái.
                          Đường đến những ngày vinh quang không còn xa
                          Con đường chúng ta... chúng ta đã chọn.

                          Comment


                          • dung 89c51 thi the nao ban oi

                            Comment


                            • có file hex nạp chip không các bác ơi
                              trước trên topic có 1 bác tải lên cái file có tên là
                              Nickk Pure Sine Wave Test 50Hz Test_1
                              mà thật sự là giờ e k biết tìm lại ở đâu nưa,bác nào còn thì tải lên giúp e nhe,thank các bác ạ

                              Comment

                              Về tác giả

                              Collapse

                              Hard Nothing to say Tìm hiểu thêm về Hard

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

                              Collapse

                              Đang tải...
                              X