Hướng dẫn test cảm biến dòng ACS712 với arduino
I. Giới thiệu .
Mạch cảm biến dòng ACS712 là một công cụ hữu ích để đo dòng điện DC và AC trong các dự án sử dụng vi điều khiển Arduino. Dưới đây là hướng dẫn sử dụng mạch ACS712 với Arduino:
-
Đo dòng điện DC:
- Khi đo dòng điện DC, bạn cần mắc tải nối tiếp với chân Ip+ và Ip- đúng chiều. Dòng điện sẽ đi từ Ip+ đến Ip-, và Vout sẽ ra mức điện thế từ 2.5V đến 5V, tương ứng với dòng từ 0A đến 5A. Nếu mắc ngược, Vout sẽ ra điện thế từ 2.5V đến 0V, tương ứng với dòng từ 0A đến -5A.
- Cấp nguồn 5V cho module khi chưa có dòng Ip (chưa có tải mắc nối tiếp với domino). Khi dòng Ip (dòng của tải) bằng 5A, thì Vout sẽ tuyến tính với dòng Ip, trong khoảng từ 2.5V đến 5V.
-
Đo dòng điện AC:
- Khi đo dòng điện AC, do dòng điện AC không có chiều, bạn không cần quan tâm đến chiều. Cấp nguồn 5V cho module khi chưa có dòng Ip (chưa có tải mắc nối tiếp với domino). Khi có dòng xoay chiều Ip (dòng AC), Vout sẽ là điện thế xoay chiều hình sin có độ lớn tuyến tính với dòng điện AC, từ 0V đến 5V, tương ứng với dòng từ -5A đến 5A.
-
Ưu điểm của ACS712:
- Đường tín hiệu analog có độ nhiễu thấp.
- Thời gian tăng của đầu ra để đáp ứng với đầu vào là 5µs.
- Điện trở dây dẫn trong là 1.2mΩ.
- Nguồn vận hành đơn là 5V.
- Độ nhạy đầu ra từ 63-190mV/A.
- Điện áp ra cực kỳ ổn định.
-
Thông số kỹ thuật:
- Chip cảm biến: ACS712ELC - 20A
- Điện áp hoạt động: 5V
- Có thể đo trên các đường điện tích cực hoặc tiêu cực với dòng 20A, tương ứng ngõ ra analog 100mV/A
- Nếu không có phát hiện dòng, điện áp ngõ ra sẽ là VCC/2
- Kích thước: 31 x 13mm
Lưu ý: Vì ACS712 được sử dụng theo nguyên tắc của cảm biến hall nên cần tránh tác động của từ trường.
II. Sơ đồ lắp .
III. Code test.
int OutPin = A0; // Lưu chân ra của cảm biến void setup() { //Đối với một chân analog bạn không cần pinMode Serial.begin(9600);//Mở cổng Serial ở mức 9600 }
void loop() { int value = analogRead(OutPin); // Ta sẽ đọc giá trị hiệu điện thế của cảm biến // Giá trị được số hóa thành 1 số nguyên có giá trị // trong khoảng từ 0 đến 1023 float volt = value / 5.0 * 20.0; // Bây giờ ta chỉ cần tính ra giá trị dòng điện // Với mạch 30A ta sửa lại thành * 30.0 Serial.println(volt);//Xuất ra serial Monitor. Nhấn Ctrl+Shift+M để xem delay(10); } |