Mục lục:

Máy phát điện / kiểm tra 4-20ma sử dụng Arduino: 8 bước
Máy phát điện / kiểm tra 4-20ma sử dụng Arduino: 8 bước

Video: Máy phát điện / kiểm tra 4-20ma sử dụng Arduino: 8 bước

Video: Máy phát điện / kiểm tra 4-20ma sử dụng Arduino: 8 bước
Video: Tín hiệu vào/ra áp 0-10V hay dòng 4-20mA cảm biến/bộ điều khiển (sensor/controller ) 2024, Tháng sáu
Anonim
Máy phát điện / kiểm tra 4-20ma sử dụng Arduino
Máy phát điện / kiểm tra 4-20ma sử dụng Arduino

Máy phát điện 4-20mA có sẵn trên ebay, nhưng tôi vì một người yêu thích phần DIY của mọi thứ và sử dụng các bộ phận mà tôi đã đặt xung quanh.

Tôi muốn kiểm tra đầu vào tương tự của PLC của chúng tôi để xác minh số đọc scada của chúng tôi và kiểm tra đầu ra của thiết bị 4-20mA. Có rất nhiều bộ chuyển đổi dòng điện sang điện áp và bộ chuyển đổi điện áp thành dòng điện cho arduino trên ebay, chúng cần được hiệu chỉnh. Tôi có thể sử dụng điều này để hiệu chỉnh bất kỳ bộ chuyển đổi nào được tìm thấy trên ebay và các bộ chuyển đổi tương tự.

Tôi quyết định rằng tôi sẽ tự làm một máy phát điện và máy thử nghiệm. Tại thời điểm này, nó vẫn còn là một công việc đang được tiến hành và là một nguyên mẫu.

Tôi có một hệ thống âm thanh 2.1 cũ không được sử dụng (loa nhỏ). Vì vậy, tôi đã sử dụng một trong các hộp loa làm vỏ bọc. Tôi cũng có một bộ khuếch đại bị chết vì sét, tôi đã tháo thiết bị đầu cuối loa khỏi bộ khuếch đại đó để kết nối dễ dàng. Tôi có ý định làm một PCB trong tương lai và một vỏ bọc tốt hơn.

Quân nhu:

Danh sách các bộ phận.

LCD // 20x4 (mã điều chỉnh nếu của bạn nhỏ hơn)

LM7808 // Bộ điều chỉnh 8volt

LED // Mọi loại hoặc kích thước

Điện trở cho LED // Thích hợp với loại LED và 8volt

Điện trở 100 ohm + điện trở 47 ohm mắc nối tiếp // Sẽ được sử dụng làm điện trở shunt

Điện trở 10K // Tương tự Arduino trong bảo vệ chống lại điện áp cao

Điện trở 22K // Để ngăn A0 không nổi

Trimpot 100 ohm + 47 ohm điện trở nối tiếp // Trình mô phỏng PT100

Tụ điện 35 vôn // Tôi đã sử dụng 470uF, chỉ để giữ dao động điện áp cung cấp giảm xuống

RTD (đầu dò PT100) // Khoảng cách không quan trọng (phạm vi)

DIODE (để bảo vệ cực tính)

INA219

Arduino

Bước 1:

Hình ảnh
Hình ảnh

Sau sơ đồ sẽ giúp bạn bắt đầu từ nơi để thêm các bộ phận và nối dây chúng.

LM7808 cho phép đầu vào tối đa 25volt, điều này tốt cho các hệ thống PLC, chúng thường sử dụng bộ nguồn 24V. Thêm một bộ tản nhiệt vào bộ điều chỉnh và không sử dụng nó trong thời gian dài. Giảm 16volt làm cho bộ điều chỉnh tạo ra nhiều nhiệt.

Nguồn cung cấp đầu vào cấp nguồn cho bộ điều chỉnh và kết nối với INA219 VIN, trong cấu hình này, INA219 cũng sẽ có thể đo điện áp nguồn chính xác trừ đi điện áp rơi từ diode. Bạn nên đo điện áp diode sụt giảm và thêm nó vào mã để bạn có được kết quả đọc điện áp cung cấp chính xác.

Từ VOUT INA219 đến RTD + cấp nguồn cho RTD. RTD- nối đất hoàn thành mạch.

Để kiểm tra một thẻ tương tự PLC, bạn sẽ kết nối RTD- với đầu vào trên thẻ tương tự và nối đất từ thẻ đến mặt đất arduino. (Đảm bảo ngắt kết nối bất kỳ thiết bị nào được gắn vào kênh đang được kiểm tra).

R5 và LED1, cho biết hệ thống đã được cấp nguồn.

Bộ điều chỉnh cấp vào arduino VIN (arduino đã tích hợp bộ điều chỉnh thành 5V).

Chân 5V của Arduino đi đến INA219 để cấp nguồn cho chip trên bo mạch. INA219 GND đến mặt đất arduino.

Cắt miếng gạt nước thành RTD PIN1 và Cắt chân nồi 3 thành chân RTD 2 sẽ mô phỏng kết nối PT100. (Đổi dây nếu xoay nồi cắt theo chiều kim đồng hồ không làm tăng mA).

Bước 2: Kiểm tra đầu ra của dụng cụ

Để kiểm tra đầu ra của thiết bị, cần có các bộ phận phụ, chẳng hạn như điện trở shunt. Điện trở 0,25W bình thường sẽ làm công việc tốt. Bạn có thể để lại điện trở shunt và thêm INA219 thứ hai để kiểm tra đầu ra của thiết bị. Tôi chỉ còn lại một cái nên tôi đã sử dụng một điện trở để thay thế.

Kiểm tra bằng cách sử dụng shunt chỉ có thể được thực hiện ở mặt tiêu cực của thiết bị. Nếu bạn sử dụng mặt tích cực, bạn sẽ cung cấp cho arduino của bạn hơn 4 lần điện áp cho phép và để khói thoát ra ngoài.

Thêm điện trở shunt nối tiếp với dây âm của thiết bị. Mặt của shunt gần nhất với thiết bị sẽ trở thành tín hiệu tương tự tích cực cho arduino. Mặt còn lại của shunt gần với nguồn điện nhất sẽ trở thành mặt đất arduino hoàn thành mạch đầu vào tương tự.

Điện trở shunt 150 ohm là mức tối đa tuyệt đối nên được sử dụng khi sử dụng arduino. Điện trở có điện áp rơi tuyến tính mA chạy qua nó. MA càng lớn thì hiệu điện thế càng lớn.

Tại 20mA dòng điện # 150ohm * 0.02A = 3volt đến arduino.

Tại 4mA dòng điện # 150ohm * 0,004A = 0,6volt tới arduino.

Bây giờ bạn có thể muốn điện áp gần hơn 5 vôn để bạn có thể cho chúng tôi phạm vi ADC đầy đủ của arduino. (Không phải là một ý tưởng tốt).

RTD’s có thể đạt đầu ra 30,2mA (Của tôi thì có). 150ohm * 0,03A = 4,8 vôn. Đó là gần như tôi muốn.

Một trang web khác chỉ định sử dụng điện trở 250ohm.

Tại 20mA dòng điện # 250ohm * 0.02A = 5volt đến arduino.

Tại 30mA dòng điện # 250ohm * 0.03A = 7.5volt đến arduino.

Bạn có nguy cơ đốt ADC và arduino của mình.

Để kiểm tra một thiết bị ngoài hiện trường, hãy mang theo pin 12volt bên mình và kết nối nó với đầu vào của nguồn cung cấp. Sử dụng nguồn điện bên ngoài sẽ không ảnh hưởng đến thiết lập PLC hiện tại.

Để kiểm tra thẻ đầu vào tương tự trong trường, hãy mang theo pin 12volt bên mình. Ngắt kết nối thiết bị + khỏi mạch. Nối đất với đất thiết bị và RTD- với dây thiết bị đã ngắt kết nối.

Bước 3: Hiệu chỉnh

Sự định cỡ
Sự định cỡ

Để hiệu chỉnh việc đọc điện trở shunt của bạn, hãy nối dây RTD- với shunt Analog vào. Đặt nồi cắt của bạn sao cho mA được tạo ra là 4mA. Nếu mA thiết bị của bạn không bằng thì hãy sửa đổi giá trị đầu tiên trong mã tại dòng 84. Việc tăng giá trị này sẽ làm giảm chỉ số mA.

Sau đó, đặt nồi cắt của bạn để tạo ra 20mA. Nếu mA thiết bị của bạn không bằng nhau thì hãy sửa đổi giá trị thứ hai trong mã ở dòng 84.

Vì vậy, 4-20mA của bạn bây giờ sẽ trở thành 0,6-3volt (lý thuyết). Nhiều hơn đủ phạm vi. Sử dụng thư viện từ eRCaGuy, lấy mẫu quá mức sẽ cung cấp cho bạn bản đọc ổn định và tốt hơn.

Hy vọng rằng bạn đọc được điều này. Đây là hướng dẫn đầu tiên của tôi, vì vậy hãy dễ dàng thực hiện nếu tôi đã mắc lỗi ở đâu đó hoặc bỏ sót điều gì đó.

Dự án này có lẽ không phải là cách tốt nhất để thực hiện nó, nhưng nó phù hợp với tôi và rất vui khi thực hiện nó.

Một số ý tưởng tôi có thêm…

Thêm một servo để xoay nồi cắt bên trong hộp.

Thêm các nút nhấn để xoay servo sang trái hoặc phải.

Thêm cảm biến nhiệt độ kỹ thuật số vào bộ tản nhiệt của bộ điều chỉnh để cảnh báo nhiệt độ nguy hiểm.

Bước 4: Lập trình Arduino

#bao gồm

// #include // Bỏ ghi chú nếu bạn sử dụng màn hình LCD có thanh ghi shift.

#bao gồm

#bao gồm

#bao gồm

#bao gồm

// A4 = (SDA)

// A5 = (SCL)

Adafruit_INA219 ina219;

Màn hình LCD LiquidCrystal (12, 11, 5, 4, 3, 2);

// LiquidCrystal_SR lcd (3, 4, 2); // Bỏ ghi chú nếu bạn sử dụng màn hình LCD có thanh ghi shift.

// | | | _ Chốt chốt

// | / _ Pin đồng hồ

// / _ Dữ liệu / Bật ghim

bit byteOfResolution = 12; // độ phân giải được lấy mẫu quá mức lệnh

dài không dấu numSamplesToAvg = 20; // số lượng mẫu TẠI ĐỘ PHÂN GIẢI CỘNG HÒA mà bạn muốn lấy và tính trung bình

ADC_prescaler_t ADCSpeed = ADC_DEFAULT;

unsigned long beforeMillis = 0;

float shuntvoltage = 0.0; // Từ INA219

điện áp phao = 0,0; // Từ INA219

float hiện_mA = 0.0; // Từ INA219

điện áp tải phao = 0,0; // Từ INA219

float arduinovoltage = 0.0; // Tính toán điện áp từ chân A0

Dài không dấu A0analogReading = 0;

byte analogIn = A0;

float ma_mapped = 0.0; // Ánh xạ điện áp từ A0 đến 4-20mA

void setup () {

adc.setADCSpeed (ADCSpeed);

adc.setBitsOfResolution (bitsOfResolution);

adc.setNumSamplesToAvg (numSamplesToAvg);

uint32_t currentFrequency;

ina219.begin ();

ina219.setCalibration_32V_30mA (); // Thư viện đã sửa đổi để có độ chính xác hơn trên mA

lcd.begin (20, 4); // khởi tạo màn hình LCD

lcd.clear ();

lcd.home (); // về nhà

lcd.print ("********************");

chậm trễ (2000);

lcd.clear ();

}

void loop ()

{

unsigned long currentMillis = millis ();

khoảng dài const = 100;

//&&&&&&&&&&&&&&&&&

Đọc thiết bị I2C theo từng khoảng thời gian và thực hiện một số phép tính

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

if (currentMillis - beforeMillis> = khoảng thời gian) {

beforeMillis = currentMillis;

Khoảng thời gian ();

}

Print_To_LCD (); // Tôi có thể không cần cập nhật màn hình LCD nhanh như vậy và có thể được chuyển xuống bên dưới Khoảng thời gian ()

}

vô hiệu

Khoảng thời gian () {

shuntvoltage = ina219.getShuntVoltage_mV ();

busvoltage = ina219.getBusVoltage_V ();

current_mA = ina219.getCurrent_mA ();

điện áp tải = (busvoltage + (shuntvoltage / 1000)) + 0,71; // +0.71 là điện áp diode của tôi bị giảm

A0analogReading = adc.newAnalogRead (analogIn);

arduinovoltage = (5.0 * A0analogReading); // Được tính thành mV

ma_mapped = map (arduinovoltage, 752, 8459, 30, 220) / 10.0; // Bản đồ không thể sử dụng float. Thêm một số 0 phía sau giá trị được ánh xạ và chia cho 10 để nhận được lượt đọc float.

// Ánh xạ từ tính toán điện áp cho phép đọc ổn định hơn sau đó sử dụng đọc adc thô.

if (shuntvoltage> = -0.10 && shuntvoltage <= -0.01) // Khi không tải, INA219 có xu hướng đọc dưới -0.01, tôi cũng biết.

{

hiện_mA = 0;

điện áp bus = 0;

điện áp tải = 0;

shuntvoltage = 0;

}

}

vô hiệu

Print_To_LCD () {

lcd.setCursor (0, 0);

if (ma_mapped <1.25) {// Không có dòng điện nào, đây là bài đọc mA của tôi, vì vậy tôi chỉ bỏ nó đi.

lcd.print ("* Máy phát điện 4-20mA *");

}

khác {

lcd.print ("** Bộ kiểm tra tương tự **");

}

lcd.setCursor (0, 1);

lcd.print ("Thiết bị:");

lcd.setCursor (10, 1);

if (ma_mapped <1.25) {

lcd.print ("không có thiết bị");

}

khác {

lcd.print (ma_mapped);

}

lcd.print ("mA");

lcd.setCursor (0, 2);

lcd.print ("Tạo:");

lcd.setCursor (10, 2);

lcd.print (current_mA);

lcd.print ("mA");

lcd.setCursor (0, 3);

lcd.print ("Cung cap:");

lcd.setCursor (10, 3);

lcd.print (điện áp tải);

lcd.print ("V");

}

Bước 5: Một số hình ảnh khác

Một số hình ảnh khác
Một số hình ảnh khác

Thiết bị đầu cuối loa của bộ khuếch đại. Đèn LED được điều khiển bởi bộ tạo dòng điện (RTD). Hệ thống dây thẻ tương tự sẽ thay thế đèn LED.

Thiết bị đầu cuối ở ngoài cùng bên trái dành cho đầu vào của nguồn cung cấp. Các thiết bị đầu cuối bên phải dành cho đầu vào thiết bị.

Bước 6: Lắp vào

Phù hợp trong
Phù hợp trong

Mọi thứ dường như vừa vặn. Tôi đã sử dụng silicone để tạm thời giữ một số thứ lại với nhau. Chậu trang trí được làm bằng silicon ở phía trên bên phải. Một lỗ nhỏ đã được đục sẵn. Tôi có thể điều chỉnh dòng điện từ trên cùng của hộp.

Bước 7: Chỉ ảnh

Chỉ ảnh
Chỉ ảnh
Chỉ ảnh
Chỉ ảnh
Chỉ ảnh
Chỉ ảnh
Chỉ ảnh
Chỉ ảnh

Bước 8: Lời cuối cùng

Tôi đã kiểm tra đầu ra của thiết bị này với PLC Allan Bradley. Kết quả rất tốt. Tôi đã có đầy đủ phạm vi. Tôi cũng đã thử nghiệm thiết bị này với cảm biến áp suất 4-20mA có màn hình LCD tích hợp. Một lần nữa kết quả rất tốt. Các bài đọc của tôi đã bị sai lệch bởi một vài số thập phân.

Tôi viết mã arduino của mình trong các tab. Trong PLC, chúng được gọi là các quy trình con. Làm cho việc gỡ lỗi của tôi dễ dàng hơn.

Đính kèm là các tệp văn bản của các tab đó.

Đề xuất: