PDA

View Full Version : Xin cho hỏi về vấn đề chống nhiễu cho Pic


minhquan1910
01-06-2007, 03:09 AM
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
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
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
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
Đế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

nhuhuan86
08-10-2008, 05:21 PM
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,
Cho em hỏi anh Namqn 1 chút:anh có thể nói rõ thêm về cách vẽ mạch in để chống nhiễu tốt dc ko?cụ thể là cách sắp xếp linh kiện ntn?cách đi dây làm sao?em đã làm 1 số mạch cho vdk pic đã đổ đất chung.có mạch công suất đã tách đất ra riêng với mạch vdk nhưng hình như vấn chưa ổn lắm.

namqn
08-10-2008, 11:52 PM
Cho em hỏi anh Namqn 1 chút:anh có thể nói rõ thêm về cách vẽ mạch in để chống nhiễu tốt dc ko?cụ thể là cách sắp xếp linh kiện ntn?cách đi dây làm sao?em đã làm 1 số mạch cho vdk pic đã đổ đất chung.có mạch công suất đã tách đất ra riêng với mạch vdk nhưng hình như vấn chưa ổn lắm.
Với vấn đề này, giả sử bạn có một mạch in cần vẽ và tôi ngồi bên cạnh bạn giải thích cách thức vẽ các phần khác nhau của mạch thì may ra bạn có thể nắm được nguyên tắc. Còn dùng vài đoạn văn bản để hướng dẫn bạn thì tôi chịu thua. Bạn tìm đọc quyển "EMC for Product Designers" của Tim Williams có lẽ tốt hơn nhiều (có nêu các nguyên tắc và hình vẽ minh họa). Một số hãng như Maxim, Freescale, ... thường có các app. note hướng dẫn cách thực hiện layout cho một mạch điện, tôi tin rằng chúng cũng có thể giúp ích.

Thân,

770496
03-08-2010, 05:27 PM
Xin giup gium.
Mình làm một mạch khiển
phần cứng như sau:
Pin PIC16F877A ->P521->trans-> rơle12V ->role220->Van điện từ
Bộ nguồn sử dụng +-12v,5v,mass chung.Van điện từ đóng ngắt theo chu kỳ
Vấn đề xảy ra là thi thoảng màn hình hiển thị Lcd bị vệt đen.16f877a có lúc vẫn chạy, có lúc bị treo luôn.Mình đã hàn các tụ 104 vào chân nguồn và mass của pic như bạn an hiệp nói .nhưng đôi lúc màn hình Lcd vẫn bị một vệt đen.mình không biết lí do nào.Mong các anh em đi trước có kinh nghiệm giúp đở giùm.Xin chân thành cảm ơn.

nbb3i
04-08-2010, 12:03 AM
- Mắc thêm một cuộn cảm 470uH vào giữa nguồn cung cấp (VCC) và chân VDD của PIC.
- Thực hiện cách ly quang giữa phần động lực (rơ-le) với PIC
- Bọc vỏ kim loại cho PIC
- Dùng Triac thay cho rơ-le để tránh hiện tượng phóng tia lửa điện tại các tiếp điểm (tia lửa điện sinh ra khi tiếp điểm tách ra thường nhiều hơn so với tiếp điểm đóng lại)

Bạn thử thực hiện lần lượt từng bước ở trên xem sao.
Mình khuyên bạn nếu ko thực sự cần rơ-le 220V thì có thể dùng Triac cũng được. Có những con IC chuyên dụng vừa cách ly vừa kích triac (MOC3021) mà giá lại rẻ nữa.
Hoặc có thể dùng sơ đồ sau:
PIC -> MOC30xx -> Triac (BTA12-600) ------> rơ-le 220VAC -> van điện từ
Trong đó phần từ PIC tới triac tách riêng ra thành 1 cái mạch nhỏ rồi cho vào 1 cái hộp kim loại kín. Vỏ hộp kim loại được nối xuống đất.

770496
04-08-2010, 12:29 PM
- Mắc thêm một cuộn cảm 470uH vào giữa nguồn cung cấp (VCC) và chân VDD của PIC.
- Thực hiện cách ly quang giữa phần động lực (rơ-le) với PIC
- Bọc vỏ kim loại cho PIC
- Dùng Triac thay cho rơ-le để tránh hiện tượng phóng tia lửa điện tại các tiếp điểm (tia lửa điện sinh ra khi tiếp điểm tách ra thường nhiều hơn so với tiếp điểm đóng lại)

Bạn thử thực hiện lần lượt từng bước ở trên xem sao.
Mình khuyên bạn nếu ko thực sự cần rơ-le 220V thì có thể dùng Triac cũng được. Có những con IC chuyên dụng vừa cách ly vừa kích triac (MOC3021) mà giá lại rẻ nữa.
Hoặc có thể dùng sơ đồ sau:
PIC -> MOC30xx -> Triac (BTA12-600) ------> rơ-le 220VAC -> van điện từ
Trong đó phần từ PIC tới triac tách riêng ra thành 1 cái mạch nhỏ rồi cho vào 1 cái hộp kim loại kín. Vỏ hộp kim loại được nối xuống đất.
Mình đã làm theo hướng kia rồi bạn xem thử có cách nào khắc phục không giúp mình với.
mạch khiển là : PIC -> p521 -> trans ->rơle12v------> rơ-le 220VAC -> van điện từ
Thi thoảng chứ không phải thường xuyên bạn ạ.

nbb3i
04-08-2010, 01:36 PM
Bạn vẫn để cái rơ-le 12V ở gần vi xử lý thì sẽ vẫn còn nhiễu.

otacon
26-09-2010, 01:06 AM
Mình đã làm theo hướng kia rồi bạn xem thử có cách nào khắc phục không giúp mình với.
mạch khiển là : PIC -> p521 -> trans ->rơle12v------> rơ-le 220VAC -> van điện từ
Thi thoảng chứ không phải thường xuyên bạn ạ.

Tôi đã từng làm theo cách này đối với hệ thống thang máy của tôi lắp cho 1 nhà hàng
VĐK --> Opto --> Role 12V --> Role 220V --> Motor tải. Kết quả là mỗi lần đóng là 1 lần treo. Té ra là do cái Role 220V là nguyên nhân chính,nó mà nhảy 1 cái là thôi rồi,sau này tôi chuyển sang Role DC 12V dùng cho xe Oto thì chạy rất tốt. Xin chia sẻ 1 kinh nghiệm với các bạn là các loại Role bày bán trên chợ Nhật Tảo có chất lượng rất thấp,tiếp điểm của những loại Role này rất kém,nếu chạy với những loại motor trên 1 HP rất dễ bị dính tiếp điểm.Nến dùng các loại Role đề sử dụng cho các loại xe oto là tốt nhất,tiếp điểm rất bền và ít lỗi.

0903579509
29-09-2010, 10:34 PM
Tôi đồng ý với ý kiến của Namqn, việc chạy đường dây Mass trên mạch in là rất quan trọng, nó quyết định rất nhiều đến việc chống nhiễu. Tôi đã lắp rất nhiều Pic trên nhiều thiết bị, chưa thấy nó bị treo, kể cả các thiết bị có công suất lên đến 30KVA như máy X quang, việc đóng và ngắt tải rất nhanh, có khi chỉ vài % giây. Quan điểm chạy dây mass trên mạch in là không cho dòng điện tiêu thụ của các linh kiện quá lớn ( khoảng vài chục mA) và thường đóng mở đột ngột đi ngang qua đường mass của Pic.

nhat_minh1
30-09-2010, 10:32 AM
bạn minhquan1910! bạn coi lại các chân rs của vđk,coi lại bộ nguốn của bạn ,(công suất,tu lộc,dòng(nếu dùng tụ hạ áp)),nếu ok,mà vẫn chưa chạy ,ban nên thay relay 5v băng 12v di,dùng VĐK --> Opto -->trans kich la được rồi,ngo ra relay 220v nên đưa ra bên ngoài,

otacon
04-10-2010, 12:05 PM
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 ?

Cái này mình cũng đã gặp,VDK chỉ treo khi relay nhả.Khắc phục cũng khá đơn giản,đường dây AC để nuôi cho mạch VDK phải dài khoảng 2m đến ổ cắm và không được dùng ké cho bất kì thiết bị nào khác.Phần dây nguồn cho motor bạn phải đi 1 sợi dây khác và phải cắm vào 1 ổ cắm khác.