Tạo Ampe kế kỹ thuật số nâng cao này bằng Arduino

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Trong bài đăng này, chúng ta sẽ xây dựng một ampe kế kỹ thuật số sử dụng màn hình LCD 16 x 2 và Arduino. Chúng ta sẽ hiểu phương pháp đo dòng điện bằng điện trở shunt và triển khai thiết kế dựa trên Arduino. Ampe kế kỹ thuật số được đề xuất có thể đo dòng điện từ 0 đến 2 Ampe (tối đa tuyệt đối) với độ chính xác hợp lý.

Cách hoạt động của Ammeters

Có hai loại ampe kế: Analog và kỹ thuật số, hoạt động của chúng khác xa nhau. Nhưng, cả hai đều có một khái niệm chung: Một điện trở shunt.



Điện trở shunt là một điện trở có điện trở rất nhỏ được đặt giữa nguồn và tải trong khi đo dòng điện.

Hãy xem cách hoạt động của ampe kế tương tự và sau đó sẽ dễ hiểu hơn về ampe kế kỹ thuật số.



cách hoạt động của một ampe kế tương tự

Một điện trở shunt có điện trở R rất thấp và giả sử đồng hồ tương tự loại nào đó được kết nối qua điện trở mà độ lệch của nó tỷ lệ thuận với điện áp qua đồng hồ tương tự.

Bây giờ chúng ta hãy truyền một lượng dòng điện từ phía bên trái. i1 là dòng điện trước khi đi qua điện trở shunt R và i2 sẽ là dòng điện sau khi đi qua điện trở shunt.

Dòng điện i1 sẽ lớn hơn i2 vì nó giảm một phần nhỏ dòng điện qua điện trở shunt. Sự khác biệt hiện tại giữa điện trở shunt tạo ra một lượng điện áp rất nhỏ ở V1 và V2.
Lượng điện áp sẽ được đo bằng đồng hồ analog đó.

Điện áp được phát triển trên điện trở shunt phụ thuộc vào hai yếu tố: dòng điện chạy qua điện trở shunt và giá trị của điện trở shunt.

Nếu dòng hiện tại lớn hơn qua shunt điện áp phát triển là nhiều hơn. Nếu giá trị của shunt cao thì điện áp phát triển trên shunt sẽ nhiều hơn.

Điện trở shunt phải có giá trị rất nhỏ và nó phải có xếp hạng công suất cao hơn.

Một điện trở có giá trị nhỏ đảm bảo rằng tải nhận đủ dòng điện và điện áp để hoạt động bình thường.

Ngoài ra, điện trở shunt phải có định mức công suất cao hơn để nó có thể chịu được nhiệt độ cao hơn trong khi đo dòng điện. Cao hơn dòng điện qua shunt càng nhiều nhiệt được tạo ra.

Bây giờ bạn đã có ý tưởng cơ bản, cách hoạt động của đồng hồ đo analog. Bây giờ, hãy chuyển sang thiết kế kỹ thuật số.

Bây giờ chúng ta biết rằng một điện trở sẽ tạo ra điện áp nếu có dòng điện chạy qua. Từ sơ đồ V1 và V2 là các điểm, nơi chúng ta lấy các mẫu điện áp đến vi điều khiển.

Tính toán chuyển đổi điện áp thành dòng điện

Bây giờ chúng ta hãy xem phép toán đơn giản, làm cách nào chúng ta có thể chuyển đổi điện áp tạo ra thành dòng điện.

Định luật ohm: I = V / R

Chúng ta biết giá trị của điện trở shunt R và nó sẽ được nhập vào chương trình.

Điện áp được tạo ra trên điện trở shunt là:

V = V1 - V2

Hoặc là

V = V2 - V1 (để tránh ký hiệu âm trong khi đo và ký hiệu âm cũng phụ thuộc vào hướng của dòng điện)

Vì vậy, chúng tôi có thể đơn giản hóa phương trình,

I = (V1 - V2) / R
Hoặc là
I = (V2 - V1) / R

Một trong các phương trình trên sẽ được nhập vào mã và chúng ta có thể tìm thấy dòng chảy hiện tại và sẽ được hiển thị trên màn hình LCD.

Bây giờ chúng ta hãy xem cách chọn giá trị điện trở shunt.

Arduino được tích hợp bộ chuyển đổi tín hiệu tương tự sang kỹ thuật số (ADC) 10 bit. Nó có thể phát hiện từ 0 đến 5V trong 0 đến 1024 bước hoặc mức điện áp.

Vì vậy, độ phân giải của ADC này sẽ là 5/1024 = 0,00488 volt hoặc 4,88 milivolt mỗi bước.

Vậy 4,88 milivôn / 2 mA (độ phân giải tối thiểu của ampe kế) = điện trở 2,44 hoặc 2,5 ohm.

Chúng ta có thể sử dụng song song bốn điện trở 10 ohm, 2 Watt để có được 2,5 ohm đã được thử nghiệm trong nguyên mẫu.

Vì vậy, làm thế nào chúng ta có thể nói phạm vi đo được lớn nhất của ampe kế được đề xuất là 2 Ampe.

ADC chỉ có thể đo từ 0 đến 5 V tức là. Bất cứ điều gì ở trên sẽ làm hỏng ADC trong vi điều khiển.

Từ nguyên mẫu thử nghiệm, những gì chúng tôi đã quan sát thấy rằng, tại hai đầu vào tương tự từ điểm V1 và V2 khi giá trị đo hiện tại X mA, điện áp tương tự đọc X / 2 (trong màn hình nối tiếp).

Ví dụ, nếu ampe kế đọc 500 mA, các giá trị tương tự trên màn hình nối tiếp đọc 250 bước hoặc mức điện áp. Bộ ADC có thể chịu đựng tối đa 1024 bước hoặc tối đa 5 V, Vì vậy, khi ampe kế đọc 2000 mA, màn hình nối tiếp đọc khoảng 1000 bước. gần bằng 1024.

Bất kỳ thứ gì trên mức điện áp 1024 sẽ làm hỏng ADC trong Arduino. Để tránh điều này ngay trước 2000 mA, một thông báo cảnh báo sẽ nhắc nhở trên màn hình LCD rằng hãy ngắt kết nối mạch.

Đến đây bạn đã hiểu cách hoạt động của ampe kế được đề xuất.

Bây giờ chúng ta hãy chuyển sang chi tiết cấu tạo.

Sơ đồ:

Ampe kế kỹ thuật số DC Arduino

Mạch đề xuất rất đơn giản và thân thiện với người mới bắt đầu. Cấu tạo theo sơ đồ mạch. Điều chỉnh chiết áp 10K để điều chỉnh độ tương phản hiển thị.

Bạn có thể cấp nguồn cho Arduino từ USB hoặc qua giắc cắm DC với pin 9 V. Bốn điện trở 2 watt sẽ tản nhiệt đồng đều hơn so với việc sử dụng một điện trở 2,5 ohm với điện trở 8-10 watt.

Khi không có dòng điện nào chạy qua, màn hình có thể đọc một số giá trị ngẫu nhiên nhỏ mà bạn có thể bỏ qua, điều này có thể là do điện áp đi lạc giữa các cực đo.

LƯU Ý: Không đảo ngược cực tính của nguồn tải đầu vào.

Mã chương trình:

//------------------Program Developed by R.GIRISH------------------//
#include
#define input_1 A0
#define input_2 A1
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int AnalogValue = 0
int PeakVoltage = 0
float AverageVoltage = 0
float input_A0 = 0
float input_A1 = 0
float output = 0
float Resolution = 0.00488
unsigned long sample = 0
int threshold = 1000
void setup()
{
lcd.begin(16,2)
Serial.begin(9600)
}
void loop()
{
PeakVoltage = 0
for(sample = 0 sample <5000 sample ++)
{
AnalogValue = analogRead(input_1)
if(PeakVoltage {
PeakVoltage = AnalogValue
}
else
{
delayMicroseconds(10)
}
}
input_A0 = PeakVoltage * Resolution
PeakVoltage = 0
for(sample = 0 sample <5000 sample ++)
{
AnalogValue = analogRead(input_2)
if(PeakVoltage {
PeakVoltage = AnalogValue
}
else
{
delayMicroseconds(10)
}
}
input_A1 = PeakVoltage * Resolution
output = (input_A0 - input_A1) * 100
output = output * 4
while(analogRead(input_A0) >= threshold)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Reached Maximum')
lcd.setCursor(0,1)
lcd.print('Limit!!!')
delay(1000)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Disconnect now!!')
delay(1000)
}
while(analogRead(input_A0) >= threshold)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Reached Maximum')
lcd.setCursor(0,1)
lcd.print('Limit!!!')
delay(1000)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Disconnect now!!')
delay(1000)
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('DIGITAL AMMETER')
lcd.setCursor(0,1)
lcd.print(output)
lcd.print(' mA')
Serial.print('Volatge Level at A0 = ')
Serial.println(analogRead(input_A0))
Serial.print('Volatge Level at A1 = ')
Serial.println(analogRead(input_A1))
Serial.println('------------------------------')
delay(1000)
}
//------------------Program Developed by R.GIRISH------------------//

Nếu bạn có bất kỳ câu hỏi cụ thể nào liên quan đến dự án mạch ampe kế kỹ thuật số dựa trên Arduino này, vui lòng bày tỏ trong phần bình luận, bạn có thể nhận được câu trả lời nhanh chóng.




Trước: Sử dụng chiết áp kỹ thuật số MCP41xx với Arduino Tiếp theo: Nguồn điện cắt quá dòng bằng Arduino