quocbao gửi vào
- 76092 lượt xem
Trong bài viết này, mình sẽ không đề cập đến những khái niệm như búa, xăng dầu, điện AC 220V hay ... xô nước trong nhà bạn. Chắc chắn rằng bạn đã biết đến những thứ này và cách sử dụng chúng rồi.
Thay vào đó, mình sẽ đề cập đến những thứ liên quan đến điện, những thứ mà thông thường khi làm việc với Arduino Uno R3 bạn vẫn hay đụng phải. Chúng là điện tử thông dụng, đừng nghĩ đến gạch đá ở đây nhé.
Tại sao mình lại chọn Arduino Uno R3 để viết bài ? Vì đây là mạch Arduino thích hợp nhất cho những người mới bắt đầu nghiên cứu về Arduino, và dĩ nhiên nó cũng là mạch hay bị phá hỏng nhất.
Những vấn đề trong bài viết này chỉ mang tính tương đối, chỉ xét trên lí thuyết. Trên thực tế, tùy vào nhiều điều kiện hoạt động khác nhau (điện áp, cường độ dòng điện, nhiệt độ hoạt động, ...) cũng như thời gian tác động mà mỗi vấn đề sẽ đem lại những kết quả khác nhau: gây hư hỏng tức thời hoặc chưa gây ra hư hỏng. Nhìn chung, ta phải thử thì mới biết được thực hư nó ra sao. Nếu bạn đã thử rồi, hãy báo lại với mình để mình cập nhật bài viết nhé, cảm ơn sự hào phóng của bạn.
Đây là một số khả năng có thể làm hỏng một phần hay toàn bộ Arduino Uno R3 (hoặc mạch tương đương). Xin nhấn mạnh phần in đậm màu đỏ một lần nữa .
- 1. Nối trực tiếp một chân I/O ở mức HIGH xuống GND.
- 2. Nối trực tiếp một chân I/O ở mức HIGH với một chân I/O ở mức LOW.
- 3. Cấp điện áp lớn vào một chân I/O.
- 4. Cắm ngược cực khi cấp nguồn ngoài qua chân VIN - GND.
- 5. Cấp điện áp trên 5V vào chân 5V.
- 6. Cấp điện áp trên 3.3V vào chân 3.3V.
- 7. Nối trực tiếp chân VIN xuống GND.
- 8. Cấp nguồn 5V vào chân 5V và lấy nguồn ra ở chân VIN.
- 9. Cấp điện áp trên 13V vào chân RESET.
- 10. Cho vi điều khiển cấp dòng trên 200mA.
- *11. Nối trực tiếp chân 5V xuống GND.
Gây hư hỏng một phần Arduino Uno R3. Linh kiện bị hỏng có thể thay thế được.
Gây hỏng các linh kiện quan trọng trên mạch. Không thể thay thế được (hoặc thay được nhưng tốn rất nhiều chi phí).
1. Nối trực tiếp một chân I/O ở mức HIGH xuống GND
Mô tả
Thiết lập một chân I/O ở chế độ OUTPUT và đặt nó ở mức HIGH ...
//Cài đặt ở chân D2 void setup() { pinMode(2, OUTPUT); digitalWrite(2, HIGH); } void loop() { }
... sau đó nối thẳng xuống GND.
Nguyên nhân
Do không có điện trở hạn dòng nên với hành động này, dòng điện ở chân I/O đó sẽ vọt lên trên mức giới hạn 40mA của một chân I/O, khiến chân I/O này bị hỏng.
Khắc phục
Mắc nối tiếp thêm một điện trở vào chân I/O, khoảng 220 ohm là ổn. Tối thiểu là 125 ohm.
2. Nối trực tiếp một chân I/O ở mức HIGH với một chân I/O ở mức LOW
Mô tả
Thiết lập 2 chân I/O ở chế độ OUTPUT và đặt một chân ở mức LOW, chân còn lại ở mức HIGH ...
//Cài đặt ở chân D2 và D3 void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); digitalWrite(2, HIGH); digitalWrite(3, LOW); } void loop() { }
... sau đó nối 2 chân I/O D2 và D3 trực tiếp vào nhau.
Nguyên nhân
Tương tự như vấn đề 1, trong đó chân D3 đóng vai trò là GND.
Khắc phục
Tương tự như vấn đề 1.
3. Cấp điện áp lớn vào một chân I/O
Mô tả
Cấp điện áp lớn hơn 5.5V vào một chân I/O bất kì.
Nguyên nhân
5.5V là ngưỡng tối đa mà Arduino Ụno R3 có thể chịu được, hay nói đúng hơn là vi điều khiển ATmega328P có thể chịu được. Các chân I/O trên mạch được nối trực tiếp với các chân của vi điều khiển này.
Khắc phục
Sử dụng diode zenner để hạ áp xuống 5V. Cách này sẽ không cho bạn đúng chính xác 5V, nhưng nó đảm bảo điện áp ở trong ngưỡng chịu được của Arduino Uno R3.
Cách này có thể khắc phục được cả vấn đề 1 và 2 bởi nó đã bao gồm một điện trở hạn dòng. Bạn cũng có thể chọn diode zenner với điện áp giới hạn thấp hơn như 4.7V, 3.6V, ... nếu không quan tâm đến vấn đề điện áp.
4. Cắm ngược cực khi cấp nguồn ngoài qua chân VIN - GND
Mô tả
Khắc phục
Sử dụng diode. Do sự sụt áp khi dòng điện qua lớp bán dẫn P-N trên diode nên điện áp cấp cho Arduino Uno R3 sẽ thấp hơn khoảng 0.5V (tùy loại diode) so với điện áp của nguồn. Vì vậy, nếu bình thường mức điện áp khuyên dùng cho nguồn ngoài là 7-12V thì khi sử dụng diode, bạn sẽ phải trừ hao đi 0.5V, tức là 7.5-12.5V. Dù gì đi chăng nữa, pin 9V vẫn là một lựa chọn hợp lí.
5. Cấp điện áp trên 5V vào chân 5V
Cấp nguồn qua chân này có thể làm hỏng một số bộ phận trên mạch, nhà sản xuất cũng không khuyến cáo người sử dụng làm việc này.
Mô tả
Nguyên nhân
Arduino Uno R3 chỉ hoạt động ở mức 5V. Vi điều khiển ATmega328P và ATmega16u2 cũng chỉ chịu được mức tối đa 5.5V. Mức điện áp giới hạn là 6V. Khi cấp nguồn vào chân 5V tức là bạn đã cấp nguồn trực tiếp cho 2 vi điều khiển ATmega16u2 và ATmega328P trên mạch.
Khắc phục
Sử dụng diode zenner tương tự như vấn đề 3 nhưng có thêm transistor đệm dòng.
Ngoài ra, bạn có thể sử dụng các IC hạ áp nguồn như LM7805.
6. Cấp điện áp trên 3.3V vào chân 3.3V
Vấn đề này tương tự như ở mục 5.
7. Nối trực tiếp chân VIN xuống GND
Theo nhà sản xuất, bạn có thể lấy nguồn 5V ra ở chân VIN để sử dụng khi cấp nguồn cho Arduino Uno R3 bằng jack cắm 2.1mm phía trước.
Nguyên nhân
Hiện tượng này được gọi là chập mạch (short-circuit). Khi chập mạch, cường độ dòng điện trong mạch tăng lên đột ngột vượt quá khả năng làm việc của các linh kiện điện tử và là hư hỏng chúng. Arduino Uno R3 không có các linh kiện bảo vệ chập mạch khi bạn lấy nguồn ở chân VIN để sử dụng.
Khắc phục
Sử dụng cầu chì tự phục hồi (PTC Resettable Fuse). Bạn nên sử dụng cầu chì loại 500mA hoặc thấp hơn, tối đa là 1A. Arduino Uno R3 không được thiết kế để hoạt động với cường độ dòng điện lớn.
8. Cấp nguồn 5V vào chân 5V và lấy nguồn ra ở chân VIN
Mô tả
Nguyên nhân
Trên Arduino Uno R3 có một IC hạ áp 5V. Thông thường, nó chuyển điện áp được cấp ở chân VIN (từ 7-12V khuyên dùng) thành điện áp 5V để cung cấp cho toàn mạch.
Trong hình, chiều dòng điện được mô tả bằng các mũi tên màu đỏ. Khi bạn cấp nguồn vào ở chân 5V và lấy ra sử dụng ở chân VIN, dòng điện sẽ có chiều như sau
Có thể thấy, dòng điện chạy ngược qua IC chuyển áp 5V dễ dàng làm hỏng nó.
Khắc phục
Sử dụng diode ở phía chân VIN để chặn dòng ngược này.
Bạn cũng có thể sử dụng diode tương tự cho phía chân 5V. Tuy nhiên nếu dùng cách này, điện áp lấy ra sẽ không phải là 5V mà là khoảng 4.5V (bị sụt 0.5V tùy loại diode) do sự sụt áp tạo ra bởi diode.
9. Cấp điện áp trên 13V vào chân RESET
Mô tả
Ở đây chúng ta chỉ quan tâm đến điện áp, do đó vai trò của điện trở là không quan trọng.
Nguyên nhân
Chân RESET trên mạch Arduino Uno R3 được kết nối thẳng đến chân reset của vi điều khiển ATmega328P. Theo đặc tính kĩ thuật của ATmega328P, điện áp đặt vào chân reset không được vượt quá 13V.
Khắc phục
Sử dụng diode zenner để hạ áp xuống.
10. Cho vi điều khiển cấp dòng trên 200mA
Mô tả
Sử dụng các chân I/O để trực tiếp cấp nguồn cho các thiết bị khác mà tổng cường độ dòng điện vượt quá 200mA
Nguyên nhân
Nguồn điện từ các chân I/O trên mạch đến từ vi điều khiển ATmega328P. IC này chỉ làm nhiệm vụ điều khiển và không được thiết kế để chịu được dòng điện lớn. Tổng cường độ dòng điện tối đa nó có thể cấp ở tất cả các chân I/O là 200mA.
Khắc phục
Sử dụng cầu chì tự phục hồi loại 150mA trở xuống mắc nối tiếp với chân Vcc (5V) của ATmega328P. Cách này tương tự như vấn đề 7. Bạn cần có kĩ thuật hàn tốt để thực hiện được điều này.
*11. Nối trực tiếp chân 5V xuống GND
Mô tả
Nguyên nhân
Chẳng có nguyên nhân nào ở đây cả. Có thể bạn sẽ nghĩ rằng vấn đề này cũng giống như những vấn đề trên, nhưng bạn đã nhầm. Arduino Uno R3 được tích hợp sẵn một cầu chì tự phục hồi (PTC Resettable Fuse) 500mA. Cầu chì này sẽ tự động ngắt điện toàn bộ mạch khi cường độ dòng điện vượt quá 500mA (trên lí thuyết). Sau khi tác nhân gây chập mạch không còn nữa, cầu chì sẽ tự phục hồi lại trạng thái làm việc bình thường, bạn chỉ cần đợi vài giây.
Cầu chì bảo vệ chập mạch một ưu điểm vượt trội của Arduino Uno R3 so với các mạch Arduino khác như Arduino Nano (không có cầu chì bảo vệ).
Đây là vị trí của cầu chì bảo vệ trên Arduino Uno R3