Thông báo

Collapse
No announcement yet.

Nỗi ám ảnh nhiễu vi điều khiển.

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

  • #16
    Nguyên văn bởi queduong Xem bài viết
    1- Là kinh nghiệm thiết kế ( vẽ mạch, bố trí sắp đặt , lựa chọn linh kiện )
    2- Kinh nghiệm lắp đặt , xử lý nhiễu
    3- Kinh nghiệm lập trình

    // Giải quyết được 3 khâu trên sẽ giải quyết được vấn đề !
    Chứ cứ kiểu ào ào ... có ngày toi ! AT89C2051 người ta làm còn chạy ầm ầm .
    Mạch bố trí gối đầu ngay con nguồn xung là không ổn rồi ... trong tủ mà có nguồn xung , khởi bọc kim kín không phải là giải pháp . ( riêng món bọc kim này cũng cần phải học ... chứ không phải cứ che kín mít vào là nó có tác dụng ).

    --- Giờ lỡ rồi thì bỏ hẳn dòng midrange ... chơi lên dòng hi end PIC18F458 , PIC18F4685 hay chuyên nghiệp như dSPIC có sức chịu đựng, kháng nhiễu tốt hơn ... có thể giải quyết được vấn đề !

    ( Không biết thạch anh bạn dùng trong cái mạch là loại gì ??? - Những tình huống nhạy cảm thì phải dùng sang CMOS ... chứ sài cái loại 2,5k ở chợ ... Chắc mang qua Sì Gòng đổ buôn Nhật Tảo !
    Bác nói rất đúng...xử lý được 3 vấn đề trên thì xong
    Hiện tại, em đã tạm xử lý được rồi
    - Chạy được role và khởi động từ --> Không còn bị đơ nữa
    - Hôm nay em thử tải xem sao? Motor 3 pha.

    Nếu oki, em sẽ viết lại những vấn đề trên

    Comment


    • #17
      Em đã thử nối Khởi động từ ( như trong hình-bên dưới cùng-chỗ tua vít màu xanh ) với chiếc motor 3pha/600w ( nhưng em dùng 1 pha 220v) mortor để ngoài
      Kết quả:
      - Thi thoảng khởi động từ nhả ra ( off)==>Chip bị reset.
      - Có lẽ do tiếp điểm của khởi động từ đánh tia lửa điện
      ==>Em đang nghĩ cách khắc phục

      Attached Files
      Last edited by luongthitu; 14-02-2014, 13:52.

      Comment


      • #18
        Nguyên văn bởi luongthitu Xem bài viết
        LCD thì dùng hàm thư viện rồi hiển thị lên thôi.
        Chân nguồn đều ổn.
        Ổn là do mắt bạn thấy ổn thôi, chứ bản chất nó bấy nhầy hà, có khả năng nhiễu lây cả vào nguồn Vđk rồi. Mình thấy bạn để cái hộp chứa VĐK gần với mấy cái switch công suất trên cửa tủ phải ko?? Nếu vậy cũng như ko. Có bạn ngoanrazor đã chỉ cho chủ thớt là mắc tụ 103 sát vào chân nguồn của tụ là đúng rồi đấy, còn mình dùng 105 luôn + thêm 1 con tụ hóa 2200uF nữa là ko thể nào nhiễu nguồn được, chỉ còn có thể nhiễu từ Port vào làm treo VĐK thôi.
        Làm sao mà bạn dám nói là không làm được khi bạn chưa từng thử một lần nào.
        Ngay cả khi bạn đã làm 1 lần và thất bại bạn cũng không có quyền nói là không làm được vì bạn chưa làm lần thứ 2,3...

        Comment


        • #19
          Cứ dùng mấy thằng dư lày ... khỏi phải lo xi nhê Giá cả hơi chát tí thôi ... nhưng xứng đáng đồng tiền bát gạo . Mấy con chip đưa về VN cùi bắp lắm, làm chơi thì được chứ làm thật nhiều khi đi ngủ không yên thân !!!
          Attached Files
          Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

          Comment


          • #20
            Nguyên văn bởi queduong Xem bài viết
            Cứ dùng mấy thằng dư lày ... khỏi phải lo xi nhê Giá cả hơi chát tí thôi ... nhưng xứng đáng đồng tiền bát gạo . Mấy con chip đưa về VN cùi bắp lắm, làm chơi thì được chứ làm thật nhiều khi đi ngủ không yên thân !!!
            dùng cái con chip màu vàng vàng ý, ngon hơn mấy con đen kia nhiều
            không thể làm những gì bạn muốn,hãy làm những gì bạn có thể làm .Đời không như mơ

            Comment


            • #21
              Nguyên văn bởi luongthitu Xem bài viết
              Em đã thử nối Khởi động từ ( như trong hình-bên dưới cùng-chỗ tua vít màu xanh ) với chiếc motor 3pha/600w ( nhưng em dùng 1 pha 220v) mortor để ngoài
              Kết quả:
              - Thi thoảng khởi động từ nhả ra ( off)==>Chip bị reset.
              - Có lẽ do tiếp điểm của khởi động từ đánh tia lửa điện
              ==>Em đang nghĩ cách khắc phục

              Dây tín hiệu từ hộp điều khiển là dài, không nhầm khi đóng hộp lại dây này còn chạm vào relay. Tín hiệu này từ VDK phải được qua IC đệm ( 74HC245 hoặc ULN2xxx...) rùi mới đi.
              ĐT : 01676455880

              Comment


              • #22
                Nhìn hộp kia, khi đóng vào thì vị trí PIC ngay sát rơ le. Mình cũng làm mạch bằng tay, cũng cách ly khác nguồn, rơ le, khởi động từ không vỏ kim loại bọc nhưng rất ít dính.
                Còn một số cách lập trình hạn chế nhiễu hoặc các thuật toán khắc phục nhiễu để nếu có dính phải nó tự thoát và backup lại trạng thái để tiếp tục.

                Comment


                • #23
                  Nguyên văn bởi duong_act Xem bài viết
                  Nhìn hộp kia, khi đóng vào thì vị trí PIC ngay sát rơ le. Mình cũng làm mạch bằng tay, cũng cách ly khác nguồn, rơ le, khởi động từ không vỏ kim loại bọc nhưng rất ít dính.
                  Còn một số cách lập trình hạn chế nhiễu hoặc các thuật toán khắc phục nhiễu để nếu có dính phải nó tự thoát và backup lại trạng thái để tiếp tục.
                  Bác có thể hưỡng dẫn thêm được ko?
                  Em vẫn đang test:
                  - Vấn đề đơ đơ đã giải quyết được 100%
                  - Vấn đề bị reset em mới giải quyết dc 99.9%

                  Ví trong nhiều lần test vẫn có xác xuất 1 lần bị reset ( test có tải ). Em vẫn đang test tiếp và tìm cách khắc phục
                  P/s: Dây nguồn 220v là dây cấp chung cho cả nguồn VĐK và Motor. Liệu có sao ko nhỉ?

                  Nguyên văn bởi quanghuy_125 Xem bài viết
                  Dây tín hiệu từ hộp điều khiển là dài, không nhầm khi đóng hộp lại dây này còn chạm vào relay. Tín hiệu này từ VDK phải được qua IC đệm ( 74HC245 hoặc ULN2xxx...) rùi mới đi.
                  Ban đầu mình tính giao tiếp với LCD16x2 thông qua IC đệm 74HC245 . Nhưng khi chạy thực tế thì tốc độ hiển thị lên LCD bị chậm ( cứ như bị đơ vậy ) nên mình phải bỏ 74HC245.
                  Còn lại các port đều có đệm rồi.
                  Last edited by luongthitu; 15-02-2014, 10:35.

                  Comment


                  • #24
                    Nguyên văn bởi luongthitu Xem bài viết
                    Bác có thể hưỡng dẫn thêm được ko?
                    Em vẫn đang test:
                    - Vấn đề đơ đơ đã giải quyết được 100%
                    - Vấn đề bị reset em mới giải quyết dc 99.9%

                    Ví trong nhiều lần test vẫn có xác xuất 1 lần bị reset ( test có tải ). Em vẫn đang test tiếp và tìm cách khắc phục
                    P/s: Dây nguồn 220v là dây cấp chung cho cả nguồn VĐK và Motor. Liệu có sao ko nhỉ?



                    Ban đầu mình tính giao tiếp với LCD16x2 thông qua IC đệm 74HC245 . Nhưng khi chạy thực tế thì tốc độ hiển thị lên LCD bị chậm ( cứ như bị đơ vậy ) nên mình phải bỏ 74HC245.
                    Còn lại các port đều có đệm rồi.
                    Bạn lập trình băng ngôn ngữ gì? Chân MCLR nối như thế nào? Có nối điện trở kéo ở các chân input không? Output ở tốc độ cao cũng lên phải có điện trở kéo.
                    ĐT : 01676455880

                    Comment


                    • #25
                      Vấn đề hôm trước tạm thời được giải quyết khi em bỏ lệnh dùng LCD
                      Bi giờ chúng ta phân tích 1 code đơn giản để điều khiển 1 cái relays như sau và sẽ thấy nhiễu:
                      - Điều khiển relay đóng / mở với chu kỳ ( on=off ) T=10s.
                      - Giả sử dùng timer để làm bộ đếm thời gian, cứ sau 1s thì biến count tăng lên 1
                      Code 1:
                      Code:
                      //------------------chương trình chính----------
                      Timer......
                      lcd_init();
                      while(1)
                      {
                      if(count<=5) Relay = 1 ;  // bật relay
                      else              Relay = 0 ;  // Tắt Relay
                      if(count>10) count=0;
                      
                      lcd_init();
                      lcd_gotoxy(1,1);
                      lcd_putc("xin chao cac ban");
                      delay_ms(100);
                      }
                      --------------------------------------------------------
                      code 2:
                      Code:
                      //------------------chương trình chính----------
                      Timer......
                      lcd_init();
                      while(1)
                      {
                      if(count<=5){ Relay = 1 ;delay_ms(100);}  // bật relay
                      else             { Relay = 0 ;delay_ms(100);}   // Tắt Relay
                      if(count>10) count=0;
                      
                      }

                      Hai đoạt code trên:


                      - Code1: mình để hiển thị LCD thì khi chạy relay sẽ rất nhiễu ( dòng code màu đỏ ) nhất làm hàm lcd_init();
                      - Code2: mình bỏ hết hiển thị LCD đi thì chạy tốt

                      Chú ý: hàm delay_ms(100) ở code 2 cũng khá quan trọng. Nếu bỏ nó đi thì cũng nhiễu hẳn

                      ==>Vấn đề là: Làm thế nào mà vẫn hiển thị được LCD trong khi đang chạy chương trình?


                      - Các chân có nối điện trở treo
                      - Riêng nối với LCD thì ko
                      - Chân MCRL nối điện trở treo
                      - Mình dùng CCS
                      Last edited by luongthitu; 17-02-2014, 21:32.

                      Comment


                      • #26
                        LCD init thì khởi tạo đầu chương trình chứ cho vào while(1) làm cái gì ? Chưa thấy ai có kiểu code như thế này
                        Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

                        Comment


                        • #27
                          Nguyên văn bởi queduong Xem bài viết
                          LCD init thì khởi tạo đầu chương trình chứ cho vào while(1) làm cái gì ? Chưa thấy ai có kiểu code như thế này
                          Em cũng để LCD-init() ở ngoài, nhưng cứ hễ đóng relay là nó mở biến mất luôn
                          Còn khi để LCD-init() ở trong thì ít ra vẫn nhìn thấy dòng chữ

                          Comment


                          • #28
                            Nguyên văn bởi luongthitu Xem bài viết
                            Em cũng để LCD-init() ở ngoài, nhưng cứ hễ đóng relay là nó mở biến mất luôn
                            Còn khi để LCD-init() ở trong thì ít ra vẫn nhìn thấy dòng chữ
                            Bạn phải xem nó bắt nguồn từ đâu mà mất chữ ... chứ cứ xử lý theo kiểu " cảm hứng " thì chẳng ăn thua .

                            Thường khi điều khiển những thiết bị có từ trường lớn , có độ nhiễu hồ quang cao . Khi khởi động các role contactor đó xong thì MCU phải " trốn " đi đâu đó hoặc nghỉ xử lý ... tránh rủi ro sai dữ liệu , số liệu .
                            Còn việc Màn hình không nhìn thấy nhưng vẫn chạy mà chạy tốt thì cần xem chủng loại màn hình , nghĩ cách che chắn , bao bọc ... xử lý cáp tín hiệu v..v
                            Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

                            Comment


                            • #29
                              Nguyên văn bởi queduong Xem bài viết
                              Bạn phải xem nó bắt nguồn từ đâu mà mất chữ ... chứ cứ xử lý theo kiểu " cảm hứng " thì chẳng ăn thua .

                              Thường khi điều khiển những thiết bị có từ trường lớn , có độ nhiễu hồ quang cao . Khi khởi động các role contactor đó xong thì MCU phải " trốn " đi đâu đó hoặc nghỉ xử lý ... tránh rủi ro sai dữ liệu , số liệu .
                              Còn việc Màn hình không nhìn thấy nhưng vẫn chạy mà chạy tốt thì cần xem chủng loại màn hình , nghĩ cách che chắn , bao bọc ... xử lý cáp tín hiệu v..v
                              Cám ơn bác đã đóng góp ý kiến.
                              - Em sẽ test và kiểm tra tiếp....lý do tại sao????

                              nhưng hiện giờ thì ko biết phải làm sao

                              Last edited by luongthitu; 17-02-2014, 22:05.

                              Comment


                              • #30
                                Riêng tôi thì nghĩ đến nhiễu phát sinh từ nguồn đi qua 2 bộ nguồn kia , để vào mạch vi điều khiển , qua khảo sát dạng nguồn đó thì nó không hề chận được (hoặc chận rất ít) nhiễu công nghiệp lọt vào đến nguồn thứ cấp ,ta hãy xem xét các bộ nguồn công nghiệp có vi điều khiển của các hãng có tiếng , rất cầu kỳ và nghiêm ngặt ,3 tầng lọc bên sơ cấp , 2 tầng lọc bên thứ cấp nữa. và khi đến vi điều khiển , vi xử lý các nguồn áp này được lọc /chận triệt để .

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X