PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Xin cho hỏi về vấn đề chống nhiễu cho Pic (http://www.picvietnam.com/forum/showthread.php?t=1162)

minhquan1910 01-06-2007 03:09 AM

Xin cho hỏi về vấn đề chống nhiễu cho Pic
 
1 Attachment(s)
hiện tại mình có ráp 1 mạch sau ( hình đính kèm ) .
Sơ này là dùng pic để điều khiển relay . đóng mở nguồn cho 1 motor 220v AC .

. tại cặp chân nguồn 5 v cấp cho pic và relay có mắc 1 tụ 2200 uF , 1 tụ 104 p . ( mình khôg vẽ ở đây )

.phần lập trình :

- mờ máy . chờ 1s . cấp mức 1 tại chân portb.0 - đóng relay . cho con pic đếm từ 00 đến 255 . mỗi mức đếm chờ 0,5 s .
- đến 255 . chân portb.0 là 0 - mở relay . chờ 2s
- chương trình cứ tiếp tục như vậy .

vấn đề phát sinh mà mình cần hỏi là : khi đóng relay . hoàn toàn không vấn đề gì , motor 220v AC vẫn quay bình thường . đến khi relay mở ( motor ngưng quay ) thì Pic lại bị reset lại . mình nghĩ không biết có phải do motor hay không . mặc dù motor ở cách xa con pic đến 3 m . lại có thêm 1 bức tường ngăn giữa . chỉ có pic và relay nằm gần nhau thôi .

bạn nào có thể giúp mình vấn đề này được không ? xin cảm ơn nhiều . có cách nào chống nhiễu được hiện tượng này không ? ngoại trừ cách bọc kim con pic ?

namqn 01-06-2007 04:27 AM

Trích:

Nguyên văn bởi minhquan1910 (Post 9060)
hiện tại mình có ráp 1 mạch sau ( hình đính kèm ) .
Sơ này là dùng pic để điều khiển relay . đóng mở nguồn cho 1 motor 220v AC .

. tại cặp chân nguồn 5 v cấp cho pic và relay có mắc 1 tụ 2200 uF , 1 tụ 104 p . ( mình khôg vẽ ở đây )

.phần lập trình :

- mờ máy . chờ 1s . cấp mức 1 tại chân portb.0 - đóng relay . cho con pic đếm từ 00 đến 255 . mỗi mức đếm chờ 0,5 s .
- đến 255 . chân portb.0 là 0 - mở relay . chờ 2s
- chương trình cứ tiếp tục như vậy .

vấn đề phát sinh mà mình cần hỏi là : khi đóng relay . hoàn toàn không vấn đề gì , motor 220v AC vẫn quay bình thường . đến khi relay mở ( motor ngưng quay ) thì Pic lại bị reset lại . mình nghĩ không biết có phải do motor hay không . mặc dù motor ở cách xa con pic đến 3 m . lại có thêm 1 bức tường ngăn giữa . chỉ có pic và relay nằm gần nhau thôi .

bạn nào có thể giúp mình vấn đề này được không ? xin cảm ơn nhiều . có cách nào chống nhiễu được hiện tượng này không ? ngoại trừ cách bọc kim con pic ?

Bạn đã thử bọc kim cho PIC chưa, cách làm đó có giải quyết được vấn đề không?

Hai đầu cuộn dây của relay bạn chỉ mắc một tụ 10 uF thì không đủ, mà tụ đó là loại gì, điện giải hay tantalum?

Tiếp điểm của relay khi đóng ngắt sẽ phát sinh tia lửa điện, nó sẽ cảm ứng vào cuộn dây relay của bạn. Bạn nên tìm cách cách ly nguồn của PIC và nguồn cho cuộn dây của relay.

Thân,

Mecha 01-06-2007 07:00 AM

Thực hiện nối đất đúng quy tắc cũng giúp giảm nhiễu rất tốt. Mình lấy ví dụ PLC. Thông thường sẽ phải có tủ điện không thì cũng phải cái hộp. Nối chân đất thật của PLC với tủ điện, sau đó nối đất tủ điện.

An Hiep 01-06-2007 10:34 AM

Theo tôi nghĩ, có thể khi chuyển sang trạng thái mở Rơ le thì điện áp xoay chiều bị cảm ứng sang cuộn dây gây ra lượng điện áp một chiều gây sốc điện đầu vào qua chân Colector của Transistor về chân của PIC (điện áp âm). Vì vậy bạn thử thay Q1 bằng 1 Relay loại nhỏ.

An Hiep 01-06-2007 10:39 AM

1 Attachment(s)
Bạn thử với sơ đồ này lại xem

minhquan1910 01-06-2007 12:42 PM

mình thì chưa thử cách bọc kim con Pic . vì mình nghĩ thi công mạch sẽ phức tạp hơn . hiện tại thì đang tìm cách cách ly nguồn của Pic và Relay như anh Namqn nói . nếu không thì chắc phải làm theo cách của anh AN HIEP thôi , thêm 1 Relay nữa thử xem sao . ( chắc chắn lại phát sinh thêm chi phí mạch rồi ) .

Cuối cùng thử kết hợp cả bọc kim và thêm relay . mà còn không được nữa thì chắc từ bỏ luôn quá . hic hic

rất cảm ơn các anh đã quan tâm chia sẽ kinh nghiệm . nếu làm được em sẽ báo lên để các bạn sau này có vào còn biết cách chống nhiễu cho VĐK . thanks !

hanspkt 01-06-2007 01:21 PM

Bạn không cần phải bọc kim đâu, mình cũng bị trường hợp giống bạn, thậm chí nặng hơn, vì mình điều khiển động cơ DC 24V (robotcon ấy mà) mình đã thử mọi cách nhưng chỉ giảm bớt thôi. Cho tới giờ mình cũng chưa tìm ra được nguyên nhân chính gây ra hiện tương reset cho VDK.

tdm 01-06-2007 05:52 PM

Trích:

Nguyên văn bởi minhquan1910 (Post 9060)
hiện tại mình có ráp 1 mạch sau ( hình đính kèm ) .
Sơ này là dùng pic để điều khiển relay . đóng mở nguồn cho 1 motor 220v AC .

. tại cặp chân nguồn 5 v cấp cho pic và relay có mắc 1 tụ 2200 uF , 1 tụ 104 p . ( mình khôg vẽ ở đây )

.phần lập trình :

- mờ máy . chờ 1s . cấp mức 1 tại chân portb.0 - đóng relay . cho con pic đếm từ 00 đến 255 . mỗi mức đếm chờ 0,5 s .
- đến 255 . chân portb.0 là 0 - mở relay . chờ 2s
- chương trình cứ tiếp tục như vậy .

vấn đề phát sinh mà mình cần hỏi là : khi đóng relay . hoàn toàn không vấn đề gì , motor 220v AC vẫn quay bình thường . đến khi relay mở ( motor ngưng quay ) thì Pic lại bị reset lại . mình nghĩ không biết có phải do motor hay không . mặc dù motor ở cách xa con pic đến 3 m . lại có thêm 1 bức tường ngăn giữa . chỉ có pic và relay nằm gần nhau thôi .

bạn nào có thể giúp mình vấn đề này được không ? xin cảm ơn nhiều . có cách nào chống nhiễu được hiện tượng này không ? ngoại trừ cách bọc kim con pic ?

***************************************
bạn dùng con un2803 để đóng mở relay.chân 10 nối lên 5v.

hanhluckyly 03-06-2007 10:02 AM

Chào bạn

Theo mình nghĩ là do bạn chưa cách ly nguồn của vi xử lý và nguồn của Rơle 2 cái này không được nối chung mass với nhau. Mình đã từng dùng PIC16F877 kich cho máy hàn nhưng không bị sao cả

minhquan1910 05-06-2007 03:26 AM

Đến giờ thì mình vẫn chưa tìm ra cách chống nhiễu . Pic vẫn bị Reset hoài . Mặc dù đã bọc kim , thêm 1 relay như bạn Hiệp nói . Việc cách ly nguồn giữa Pic và VDK thì mình cũng có nghĩ tới . Nhưng toàn bộ mạch được cấp 1 nguồn ổn định 5 v . bây giờ phải làm sao để cách ly ?

mình có ý tưởng như thế này không biết có được không ? chân VDK mình cho qua 1 diot , rồi mới qua transistor . theo hình sau :

PORTB.0 ------[ ]-----------|>|------(B) TRANSISTOR
------------điện trở 1k------diot 1N4148

Không biết như vậy có tránh được sự sốc điện áp âm như bạn HIỆP nói không nhỉ ? các anh xem giúp em nhé .

An Hiep 05-06-2007 03:27 PM

Bạn hãy thử thay Q1 bằng 1 con 4N35 xem, việc ghép tín hiệu theo cách quang học có thể giải quyết được các bài toán chống nhiễu như của bạn. Chúc bạn thành công!

--------------------------------------------------------------------
An Hiệp

nkh 05-06-2007 04:44 PM

Bạn nên làm lại mạch khác đi. Trong mạch mới bạn nên dùng con OPTO TLP521 để cách ly tín hiệu điều khiển và rơle, thêm nữa bạn hãy lắp tụ nguồn lên khoảng 1000uF cùng với cuộn cảm 400uH nữa thì càng tốt. Tôi tin sẽ không bị Reset nữa đâu.
Chúc bạn thành công.

namqn 06-06-2007 08:45 PM

Trích:

Nguyên văn bởi minhquan1910 (Post 9126)
Đến giờ thì mình vẫn chưa tìm ra cách chống nhiễu . Pic vẫn bị Reset hoài . Mặc dù đã bọc kim , thêm 1 relay như bạn Hiệp nói . Việc cách ly nguồn giữa Pic và VDK thì mình cũng có nghĩ tới . Nhưng toàn bộ mạch được cấp 1 nguồn ổn định 5 v . bây giờ phải làm sao để cách ly ?

mình có ý tưởng như thế này không biết có được không ? chân VDK mình cho qua 1 diot , rồi mới qua transistor . theo hình sau :

PORTB.0 ------[ ]-----------|>|------(B) TRANSISTOR
------------điện trở 1k------diot 1N4148

Không biết như vậy có tránh được sự sốc điện áp âm như bạn HIỆP nói không nhỉ ? các anh xem giúp em nhé .

Như tôi đã giải thích, khi tiếp điểm relay ngắt ra, sẽ có tia lửa điện phát sinh giữa 2 cực của tiếp điểm. Cuộn dây của relay chính là một antenna lý tưởng cho việc cảm ứng từ trường biến thiên nhanh do tia lửa điện tạo ra. Điện áp cảm ứng giữa hai đầu cuộn dây có thể khá lớn, và nó có khả năng đi theo đường cấp nguồn của cuộn dây để đến các chân Vdd của PIC, tại đây thông thường bạn phải có các tụ lọc nhiễu (gọi là tụ bypass hay decoupling) đặt càng gần PIC càng tốt, giữa các chân Vdd và Vss. Nhưng nếu bạn làm vậy thì vẫn chưa đủ, vì thông thường chân MCLR được nối lên Vdd qua một điện trở để thực hiện chức năng reset, mà chân MCLR lại rất nhạy với mức áp (nó không tiêu thụ dòng nhiều, chỉ sử dụng mức điện áp). Do đó ngay cả khi bạn lọc nguồn cho PIC rất tốt thì vẫn có khả năng điện áp xung xuất hiện tại chân MCLR của PIC khi bạn ngắt relay. Đây là trường hợp lan truyền trực tiếp điện áp cảm ứng đến chân MCLR.

Nếu bạn không dùng điện trở tại chân MCLR, bạn vẫn có thể có điện áp cảm ứng tại chân MCLR. Nói chung, với xung dòng thật dốc khi ngắt relay, mọi đường mạch trên mạch in của bạn đều có thể cảm ứng xung dòng đó. Và điều này phụ thuộc vào cách bạn đi dây, vẽ mạch, bố trí các linh kiện trên board mạch.

Do đó, tôi khuyên bạn cách ly nguồn của relay và của PIC, để loại bỏ trường hợp lan truyền trực tiếp vào chân MCLR. Cách đơn giản, bạn có thể dùng điện trở vài ohm giữa nguồn 5 V và các chân Vdd của PIC, giá trị điện trở tùy thuộc vào dòng tiêu thụ của PIC. Ví dụ, nếu PIC tiêu thụ 100 mA, bạn có thể dùng điện trở 4.7 ohm. Nếu có dùng điện trở cho chân MCLR, đặt điện trở đó thật gần chân MCLR, và ngay đầu điện trở phía nối với Vdd, dùng một tụ lọc nhiễu 100 nF (104, và có thể thêm một tụ 10 nF, 103).

Cách phức tạp và tốn tiền hơn một chút, bạn mua biến áp nguồn loại có nhiều cuộn dây thứ cấp cách ly, một cuộn thứ cấp dùng cho PIC, còn một cuộn khác dùng cho relay. Tín hiệu điều khiển từ PIC đến relay thông qua opto coupler.

Sơ đồ mạch mà bạn đã đưa lên không thể hiện các chân nguồn của PIC được xử lý ra sao. Ngay cả khi bạn có sơ đồ nguyên lý đầy đủ và chính xác, thì việc bạn vẽ mạch in ra sao cũng có vai trò quan trọng, mà bạn vẫn chưa cho biết.

Tôi hy vọng những bạn khác khi trình bày các vấn đề cũng cố gắng mô tả đầy đủ, chi tiết để tránh cho người trả lời phải hỏi đi hỏi lại, và tốn thời gian chờ đợi của cả đôi bên một cách vô ích.

Thân,

minhquan1910 07-06-2007 03:16 PM

Mấy hôm nay muốn điên lên vì cái mạch này . Chắc phải đành cho vào sọt rác thôi . mình sẽ cố gắng làm lại cái khác , và Mình rất cảm ơn các bạn đã giúp đỡ , chia sẽ kinh nghiệm . Ở đây chỉ mới là nghiên cứu và thực tập đơn giản thôi mà đã phải xử lý nhiễu phức tạp như vậy rồi . Vô môi trường công nghiệp không biết còn như thế nào nhỉ ?

An Hiep 26-06-2007 12:18 PM

Mình đã thử lại (có người mách) và đã OK.
Bạn nối các tụ gốm 104 vào các chân nguồn của PIC xuống đất nhưng chú ý là nối tại chân IC. tia lửa điện do Rơ le tạo ra sẽ không kịp xốc vào nguồn của PIC gây reset PIC. Điều này khá đơn giản với PIC6F877 vì 2 chân VDD và VEE luôn nằm cạnh nhau (Không biết có phải do ý chủ quan của nhà sản xuất không nữa :D)

Chúc bạn thành công!

An Hiệp


Múi giờ GMT. Hiện tại là 07:40 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam