- Vật liệu thiết yếu:
- Hoạt động của cảm biến dòng ACS712:
- Sơ đồ mạch:
- Mô phỏng:
- Lập trình Vi điều khiển PIC:
- Đang làm việc:
Đo điện áp và dòng điện sẽ luôn hữu ích trong khi tạo hoặc gỡ lỗi bất kỳ hệ thống điện nào. Trong dự án này, chúng tôi sẽ chế tạo Ampe kế kỹ thuật số của riêng mình bằng Vi điều khiển PIC16F877A và cảm biến dòng ACS712-5A. Dự án này có thể đo cả dòng AC và DC với dải từ 0-30A với độ chính xác 0,3A. Với một vài sửa đổi trên mã, bạn cũng có thể sử dụng mạch này để đo lên đến 30A. Vì vậy, chúng ta hãy bắt đầu !!!
Vật liệu thiết yếu:
- PIC16F877A
- Bộ điều chỉnh điện áp 7805
- Cảm biến dòng ACS712
- Màn hình LCD 16 * 2
- Hộp nối và tải (Chỉ để thử nghiệm)
- Kết nối dây
- Tụ điện
- Bảng mạch.
- Nguồn điện - 12V
Hoạt động của cảm biến dòng ACS712:
Trước khi chúng tôi bắt đầu xây dựng dự án, điều rất quan trọng là chúng tôi phải hiểu hoạt động của cảm biến dòng ACS712 vì nó là thành phần quan trọng của dự án. Đo dòng điện, đặc biệt là dòng điện AC luôn là một nhiệm vụ khó khăn do tiếng ồn cùng với vấn đề cách ly không phù hợp, v.v. Nhưng, với sự trợ giúp của mô-đun ACS712 được chế tạo bởi Allegro, mọi thứ đã trở nên dễ dàng hơn rất nhiều.
Mô-đun này hoạt động dựa trên nguyên lý hiệu ứng Hall, được phát hiện bởi Tiến sĩ Edwin Hall. Theo nguyên lý của ông, khi đặt một dây dẫn mang dòng điện vào từ trường, một điện áp được tạo ra trên các cạnh của nó vuông góc với hướng của cả dòng điện và từ trường. Chúng ta đừng đi quá sâu vào khái niệm này, nhưng hãy nói một cách đơn giản, chúng ta sử dụng một cảm biến Hall để đo từ trường xung quanh một vật dẫn mang dòng điện. Phép đo này sẽ tính bằng milivôn mà chúng tôi gọi là điện áp hội trường. Điện áp Hall đo được này tỷ lệ với dòng điện chạy qua dây dẫn.
Ưu điểm chính của việc sử dụng Cảm biến dòng ACS712 là có thể đo cả dòng AC và DC và nó cũng cung cấp sự cách ly giữa Tải (tải AC / DC) và Đơn vị đo (phần Vi điều khiển). Như trong hình, chúng ta có ba chân trên mô-đun lần lượt là Vcc, Vout và Ground.
Khối thiết bị đầu cuối 2 chân là nơi có dây dẫn dòng điện đi qua. Mô-đun hoạt động trên + 5V vì vậy Vcc phải được cấp nguồn 5V và nối đất với đất của hệ thống. Chân Vout có điện áp bù là 2500mV, nghĩa là khi không có dòng điện chạy qua dây thì điện áp đầu ra sẽ là 2500mV và khi dòng điện chạy dương thì điện áp sẽ lớn hơn 2500mV và khi dòng điện chạy qua là điện áp âm thì điện áp sẽ nhỏ hơn 2500mV.
Chúng tôi sẽ sử dụng mô-đun ADC của vi điều khiển PIC để đọc điện áp đầu ra (Vout) của mô-đun, sẽ là 512 (2500mV) khi không có dòng điện chạy qua dây. Giá trị này sẽ giảm khi dòng điện chạy theo chiều âm và sẽ tăng khi dòng điện chạy theo hướng dương. Bảng dưới đây sẽ giúp bạn hiểu điện áp đầu ra và giá trị ADC thay đổi như thế nào dựa trên dòng điện chạy qua dây dẫn.
Các giá trị này được tính toán dựa trên thông tin được cung cấp trong Datasheet của ACS712. Bạn cũng có thể tính toán chúng bằng các công thức dưới đây:
Điện áp Vout (mV) = (Giá trị ADC / 1023) * 5000 Dòng điện qua dây (A) = (Vout (mv) -2500) / 185
Bây giờ, chúng ta đã biết cách hoạt động của Cảm biến ACS712 và những gì chúng ta có thể mong đợi từ nó. Chúng ta hãy tiến hành sơ đồ mạch.
Sơ đồ mạch:
Sơ đồ mạch hoàn chỉnh của Dự án Ampe kế kỹ thuật số này được hiển thị trong hình ảnh dưới đây.
Mạch đo dòng điện kỹ thuật số hoàn chỉnh hoạt động trên + 5V được điều chỉnh bởi bộ điều chỉnh điện áp 7805. Chúng tôi đã sử dụng màn hình LCD 16X2 để hiển thị giá trị của dòng điện. Chân đầu ra của Cảm biến hiện tại (Vout) được kết nối với chân thứ 7 của PIC là AN4 để đọc điện áp Analog.
Hơn nữa kết nối chân cho PIC được hiển thị trong bảng dưới đây
S.Không: |
Số PIN |
Tên ghim |
Kết nối với |
1 |
21 |
RD2 |
RS của LCD |
2 |
22 |
RD3 |
E của LCD |
3 |
27 |
RD4 |
D4 của LCD |
4 |
28 |
RD5 |
D5 của LCD |
5 |
29 |
RD6 |
D6 của LCD |
6 |
30 |
RD7 |
D7 của LCD |
7 |
7 |
AN4 |
Vout của Sesnor hiện tại |
Bạn có thể xây dựng mạch ampe kế kỹ thuật số này trên bảng mạch bánh mì hoặc sử dụng bảng mạch hoàn thiện. Nếu bạn đã làm theo các hướng dẫn PIC thì bạn cũng có thể sử dụng lại phần cứng mà chúng tôi đã sử dụng để học vi điều khiển PIC. Ở đây, chúng tôi đã sử dụng cùng một Bo mạch hoạt động mà chúng tôi đã xây dựng cho Đèn LED nhấp nháy với Vi điều khiển PIC, như được hiển thị bên dưới:
Lưu ý: Bạn không bắt buộc phải xây dựng bảng này, bạn có thể chỉ cần làm theo sơ đồ mạch và xây dựng mạch trên bảng mạch bánh mì và sử dụng bất kỳ bộ kết xuất nào để kết xuất chương trình của bạn vào Vi điều khiển PIC.
Mô phỏng:
Đây mạch đo hiện tại cũng có thể được mô phỏng bằng Proteus trước khi bạn thực sự tiến hành với phần cứng của bạn. Gán tệp hex của mã được đưa ra ở cuối hướng dẫn này và nhấp vào nút phát. Bạn sẽ có thể nhận thấy dòng điện trên màn hình LCD. Tôi đã sử dụng Đèn làm tải xoay chiều, bạn có thể thay đổi điện trở bên trong của Đèn bằng cách nhấp vào nó để thay đổi dòng điện chạy qua nó.
Như bạn có thể thấy trong hình trên, Ampe kế hiển thị dòng điện thực tế chạy qua Đèn là khoảng 3,52 A và màn hình LCD hiển thị dòng điện là khoảng 3,6A. Tuy nhiên, trong trường hợp thực tế, chúng tôi có thể nhận được Lỗi lên đến 0,2A. Giá trị ADC và điện áp tính bằng (mV) cũng được hiển thị trên màn hình LCD để bạn hiểu.
Lập trình Vi điều khiển PIC:
Như đã nói trước đó, mã hoàn chỉnh có thể được tìm thấy ở cuối bài viết này. Mã tự giải thích bằng các dòng chú thích và chỉ liên quan đến khái niệm giao tiếp màn hình LCD với Vi điều khiển PIC và Sử dụng mô-đun ADC trong Vi điều khiển PIC mà chúng ta đã trình bày trong các bài hướng dẫn học Vi điều khiển PIC trước đây.
Giá trị đọc từ cảm biến sẽ không chính xác vì dòng điện xoay chiều và cũng có thể bị nhiễu. Do đó, chúng tôi đọc giá trị ADC trong 20 lần và lấy giá trị trung bình để nhận được Giá trị hiện tại thích hợp như được hiển thị trong đoạn mã bên dưới.
Chúng tôi đã sử dụng các công thức tương tự được giải thích ở trên để tính giá trị điện áp và dòng điện.
for (int i = 0; i <20; i ++) // Đọc giá trị cho 20 Lần {adc = 0; adc = ADC_Read (4); // Đọc ADC Voltage = adc * 4.8828; // Tính điện áp if (Voltage> = 2500) // Nếu dòng điện là dương Amps + = ((Voltage-2500) /18.5); else if (Điện áp <= 2500) // Nếu dòng điện âm Amps + = ((2500-Điện áp) /18.5); } Amps / = 20; // Giá trị trung bình được đọc trong 20 lần
Vì dự án này cũng có thể đọc dòng điện AC, dòng điện hiện tại sẽ là âm và dương. Đó là giá trị của điện áp đầu ra sẽ ở trên và dưới 2500mV. Do đó, như hình dưới đây, chúng tôi thay đổi công thức cho dòng điện âm và dương để chúng tôi không nhận được giá trị âm.
if (Điện áp> = 2500) // Nếu dòng điện là dương Amps + = ((Điện áp-2500) /18,5); else if (Điện áp <= 2500) // Nếu dòng điện âm Amps + = ((2500-Điện áp) /18,5);
Sử dụng cảm biến dòng 30A:
Nếu bạn cần đo dòng điện hơn 5A, bạn chỉ cần mua một mô-đun ACS712-30A và giao diện nó theo cách tương tự và thay đổi dòng mã bên dưới bằng cách thay thế 18,5 bằng 0,66 như hình dưới đây:
if (Điện áp> = 2500) // Nếu dòng điện là dương Amps + = ((Điện áp-2500) /0,66); else if (Điện áp <= 2500) // Nếu dòng điện âm Amps + = ((2500-Điện áp) /0,66);
Đồng thời kiểm tra Ampe kế 100mA bằng Vi điều khiển AVR nếu bạn muốn đo dòng điện thấp.
Đang làm việc:
Khi bạn đã lập trình Vi điều khiển PIC và chuẩn bị xong phần cứng. Chỉ cần bật nguồn tải và bộ vi điều khiển PIC của bạn, bạn sẽ có thể thấy dòng điện đi qua dây dẫn được hiển thị trên màn hình LCD của bạn.
LƯU Ý: NẾU bạn đang sử dụng mô-đun ASC7125A, hãy đảm bảo tải của bạn không tiêu thụ nhiều hơn 5A cũng sử dụng dây đo cao hơn cho dây dẫn mang dòng điện.
Hoạt động hoàn chỉnh của dự án ampe kế dựa trên vi điều khiển PIC được hiển thị trong Video bên dưới. Hy vọng bạn có dự án hoạt động và thích làm nó. Nếu bạn có bất kỳ nghi ngờ nào, bạn có thể viết chúng vào phần bình luận bên dưới hoặc đăng chúng trên diễn đàn của chúng tôi.