Isi kandungan:
- Langkah 1:
- Langkah 2: Uji Keluaran Instrumen
- Langkah 3: Penentukuran
- Langkah 4: Pengaturcaraan Arduino
- Langkah 5: Beberapa Lagi Foto
- Langkah 6: Memasang
- Langkah 7: Hanya Foto
- Langkah 8: Perkataan Akhir
Video: Penjana / Penguji 4-20ma Menggunakan Arduino: 8 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Penjana 4-20mA tersedia di ebay, tetapi saya suka satu bahagian DIY dan menggunakan bahagian yang saya ada.
Saya ingin menguji input analog PLC kami untuk mengesahkan bacaan scada kami dan untuk menguji output instrumen 4-20mA. Terdapat banyak penukar arus ke voltan dan penukar voltan ke arus untuk arduino di ebay, mereka memerlukan penentukuran. Saya boleh menggunakannya untuk menentukur mana-mana penukar yang terdapat di ebay dan seumpamanya.
Saya memutuskan bahawa saya akan membuat generator dan penguji. Pada masa ini, ia masih berfungsi dan masih menjadi prototaip.
Saya mempunyai sistem bunyi 2.1 lama yang tidak digunakan (pembesar suara kecil). Oleh itu, saya menggunakan salah satu kotak pembesar suara sebagai penutup. Saya juga mempunyai penguat yang mati kerana kilat, saya mengeluarkan terminal pembesar suara dari penguat itu untuk menyambung angin. Saya berhasrat untuk membuat PCB di masa depan dan kandang yang lebih baik.
Bekalan:
Senarai Bahagian.
LCD // 20x4 (sesuaikan kod jika lebih kecil)
LM7808 // pengatur 8volt
LED // Apa-apa jenis atau saiz
Perintang untuk LED // Sesuai untuk jenis LED dan 8volt
Perintang 100 ohm + perintang 47 ohm dalam siri // Akan digunakan sebagai perintang shunt
Perintang 10K // Arduino analog dalam perlindungan daripada voltan tinggi
Perintang 22K // Untuk menghentikan A0 daripada terapung
Trimpot 100 ohm + 47 ohm perintang dalam siri // PT100 simulator
Kapasitor 35 volt // Saya menggunakan 470uF, hanya untuk memastikan turun naik voltan bekalan
RTD (transduser PT100) // Span tidak penting (julat)
DIODE (untuk perlindungan kekutuban)
INA219
Arduino
Langkah 1:
Dengan mengikuti skema, anda harus memulakan di mana untuk menambah bahagian-bahagian dan memasangkannya.
LM7808 membenarkan maksimum input 25volts yang baik untuk sistem PLC, mereka biasanya menggunakan bekalan kuasa 24volt. Tambahkan heatsink ke pengatur dan jangan gunakannya untuk jangka masa panjang. Penurunan 16volt menyebabkan pengatur menghasilkan banyak haba.
Bekalan input memberi makan pengatur dan menyambung ke INA219 VIN, dalam konfigurasi ini INA219 juga dapat mengukur voltan bekalan yang betul tolak penurunan voltan dari dioda. Anda harus mengukur penurunan voltan diod anda dan menambahkannya ke kod sehingga anda mendapat bacaan voltan bekalan yang betul.
Dari INA219 VOUT ke RTD + menggerakkan RTD. RTD- ke tanah melengkapkan litar.
Untuk menguji kad analog PLC, anda akan menghubungkan RTD- ke input pada kad analog dan tanah dari kad ke arduino ground. (Pastikan untuk memutuskan sambungan sebarang instrumen yang terpasang pada saluran yang sedang diuji).
R5 dan LED1, menunjukkan sistem dihidupkan.
Pengatur masuk ke arduino VIN (arduino telah membina pengatur hingga 5volts).
Pin Arduino 5V menuju ke INA219 untuk menghidupkan cip on-board. INA219 GND ke arduino ground.
Trim pot wiper ke RTD PIN1 dan Trim pot pin 3 ke RTD pin 2 akan meniru sambungan PT100. (Tukar wayar jika memutar pot pemotong mengikut arah jam tidak meningkatkan mA).
Langkah 2: Uji Keluaran Instrumen
Untuk menguji output instrumen, bahagian tambahan diperlukan, seperti perintang shunt. Perintang 0.25W normal akan melakukan kerja dengan baik. Anda boleh meninggalkan perintang shunt dan menambahkan INA219 kedua untuk menguji output instrumen. Saya tinggal satu sahaja, jadi saya gunakan perintang.
Ujian menggunakan shunt hanya dapat dilakukan di sisi negatif peranti. Sekiranya anda menggunakan sisi positif, anda akan membekalkan arduino anda lebih daripada 4 kali voltan yang dibenarkan dan membiarkan asap keluar.
Tambahkan perintang shunt secara bersiri dengan wayar negatif instrumen. Bahagian pintasan yang paling dekat dengan peranti akan menjadi analog positif untuk arduino. Bahagian lain shunt yang paling dekat dengan bekalan kuasa akan menjadi arduino ground melengkapkan litar input analog.
Perintang shunt 150 ohm adalah maksimum mutlak yang harus digunakan semasa menggunakan arduino. Perintang mempunyai penurunan voltan linear ke mA yang mengalir melaluinya. Semakin besar mA semakin besar voltan.
Pada 20mA arus # 150ohm * 0.02A = 3volt ke arduino.
Pada arus 4mA # 150ohm * 0.004A = 0.6volt ke arduino.
Sekarang anda mungkin mahu voltan mendekati 5 volt sehingga anda boleh menggunakan rangkaian ADC penuh arduino. (Bukan idea yang baik).
RTD boleh mencapai output 30.2mA (Tambang tidak). 150ohm * 0.03A = 4.8 volt. Itu sedekat yang saya mahu.
Laman web lain menunjukkan penggunaan perintang 250ohm.
Pada 20mA arus # 250ohm * 0.02A = 5volt ke arduino.
Pada 30mA arus # 250ohm * 0.03A = 7.5volt ke arduino.
Anda berisiko membakar ADC dan arduino anda.
Untuk menguji alat di luar, bawa bateri 12 volt dengan anda dan sambungkan ke input bekalan. Menggunakan sumber kuasa luaran tidak akan mempengaruhi penyediaan PLC semasa.
Untuk menguji kad input analog di lapangan, bawa bateri 12 volt dengan anda. Putuskan sambungan instrumen + dari litar. Sambungkan ground ke ground instrumen dan RTD- ke wayar instrumen yang terputus.
Langkah 3: Penentukuran
Untuk mengkalibrasi bacaan perintang shunt anda, masukkan RTD- ke analog Shunt masuk. Tetapkan periuk potong anda sehingga mA yang dihasilkan adalah 4mA. Sekiranya peranti anda mA tidak sama maka ubah nilai pertama dalam kod pada baris 84. Meningkatkan nilai ini akan menurunkan bacaan mA.
Kemudian tetapkan periuk potong anda untuk menghasilkan 20mA. Sekiranya peranti anda mA tidak sama maka ubah nilai kedua dalam kod pada baris 84.
Oleh itu, 4-20mA anda kini akan menjadi 0,6-3volt (teori). Julat lebih daripada cukup. Dengan menggunakan perpustakaan dari eRCaGuy, pensampelan berlebihan akan memberi anda bacaan yang lebih baik dan stabil.
Semoga anda membaca ini. Ini adalah arahan pertama saya, jadi tolong ambil mudah jika saya melakukan kesalahan di suatu tempat atau meninggalkan sesuatu.
Projek ini mungkin bukan kaedah terbaik untuk menyelesaikannya, tetapi ia berfungsi untuk saya dan seronok melakukannya.
Beberapa idea yang saya ada tambahan …
Tambahkan servo untuk memutar periuk potong di dalam kotak.
Tambahkan butang tekan untuk memutar servo ke kiri atau kanan.
Tambahkan sensor suhu digital ke pemanas badan pengawal selia untuk memberi amaran akan bahaya panas.
Langkah 4: Pengaturcaraan Arduino
#sertakan
// #masuk // Ketidaksesuaian jika anda menggunakan LCD dengan shift shift.
#sertakan
#sertakan
#sertakan
#sertakan
// A4 = (SDA)
// A5 = (SCL)
Adafruit_INA219 ina219;
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
// LiquidCrystal_SR lcd (3, 4, 2); // Komen jika anda menggunakan LCD dengan shift shift.
// | | | _ Latch Pin
// | / _ Pin Jam
// / _ Data / Dayakan Pin
bait bitsOfResolution = 12; // memerintahkan resolusi berlebihan
angka panjang yang tidak ditandatanganiSampelToAvg = 20; // jumlah sampel DI ATAS PENYELESAIAN YANG DIBERIKAN yang anda mahu ambil dan rata-rata
ADC_prescaler_t ADCSpeed = ADC_DEFAULT;
lama tidak ditandatangani sebelumnyaMillis = 0;
float shuntvoltage = 0.0; // Dari INA219
float busvoltage = 0.0; // Dari INA219
float current_mA = 0.0; // Dari INA219
voltan beban apungan = 0.0; // Dari INA219
float arduinovoltage = 0.0; // Pengiraan voltan dari pin A0
A0analogReading panjang yang tidak ditandatangani = 0;
bait analogIn = A0;
apungan ma_mapped = 0.0; // Voltan peta dari A0 hingga 4-20mA
batal persediaan () {
adc.setADCSpeed (ADCSpeed);
adc.setBitsOfResolution (bitsOfResolution);
adc.setNumSamplesToAvg (numSamplesToAvg);
uint32_tFrequency semasa;
ina219.begin ();
ina219.setCalibration_32V_30mA (); // Perpustakaan yang diubah suai untuk lebih tepat pada mA
lcd.begin (20, 4); // mulakan LCD
lcd.clear ();
lcd.home (); // balik rumah
lcd.print ("********************");
kelewatan (2000);
lcd.clear ();
}
gelung kosong ()
{
arus panjang yang tidak ditandatanganiMillis = millis ();
selang panjang const = 100;
//&&&&&&&&&&&&&&&&&
Baca peranti I2C secara berkala dan lakukan beberapa pengiraan
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if (currentMillis - sebelumnyaMillis> = selang) {
sebelumnyaMillis = currentMillis;
Selang ();
}
Cetak_To_LCD (); // Saya mungkin tidak perlu mengemas kini LCD secepat ini dan boleh dipindahkan ke bawah Selang ()
}
batal
Selang () {
shuntvoltage = ina219.getShuntVoltage_mV ();
busvoltage = ina219.getBusVoltage_V ();
current_mA = ina219.getCurrent_mA ();
loadvoltage = (busvoltage + (shuntvoltage / 1000)) + 0.71; // +0.71 adalah penurunan voltan diod saya
A0analogReading = adc.newAnalogRead (analogIn);
arduinovoltage = (5.0 * A0analogReading); // Dikira menjadi mV
ma_mapped = peta (arduinovoltage, 752, 8459, 30, 220) / 10.0; // Peta tidak boleh menggunakan apungan. Tambahkan 0 di belakang nilai yang dipetakan dan bahagi dengan 10 untuk mendapatkan bacaan terapung.
// Pemetaan dari pengiraan voltan memberikan bacaan yang lebih stabil kemudian menggunakan bacaan adc mentah.
if (shuntvoltage> = -0.10 && shuntvoltage <= -0.01) // Tanpa beban, INA219 cenderung membaca di bawah -0.01, baiklah.
{
current_mA = 0;
busvoltage = 0;
beban voltan = 0;
shuntvoltage = 0;
}
}
batal
Cetak_To_LCD () {
lcd.setCursor (0, 0);
if (ma_mapped <1,25) {// Tanpa arus ini adalah bacaan mA saya, jadi saya hanya membuangnya.
lcd.print ("* Generator 4-20mA *");
}
lain {
lcd.print ("** Analog Tester **");
}
lcd.setCursor (0, 1);
lcd.print ("Peranti:");
lcd.setCursor (10, 1);
jika (ma_mapped <1,25) {
lcd.print ("tiada peranti");
}
lain {
lcd.print (ma_mapped);
}
lcd.print ("mA");
lcd.setCursor (0, 2);
lcd.print ("Jana:");
lcd.setCursor (10, 2);
lcd.print (current_mA);
lcd.print ("mA");
lcd.setCursor (0, 3);
lcd.print ("Bekalan:");
lcd.setCursor (10, 3);
lcd.print (beban voltan);
lcd.print ("V");
}
Langkah 5: Beberapa Lagi Foto
Terminal pembesar suara penguat. LED didorong oleh penjana semasa (RTD). Pendawaian kad analog akan menggantikan LED.
Terminal di paling kiri adalah untuk input bekalan. Terminal di sebelah kanan adalah untuk input instrumen.
Langkah 6: Memasang
Semua nampak sesuai. Saya menggunakan silikon untuk menyimpan beberapa barang buat sementara waktu. Pot periuk diselaraskan ke kanan atas. Lubang kecil telah dipralilkan. Saya dapat menyesuaikan arus dari bahagian atas kotak.
Langkah 7: Hanya Foto
Langkah 8: Perkataan Akhir
Saya telah menguji output peranti ini dengan Allan Bradley PLC. Hasilnya sangat baik. Saya mendapat jarak penuh. Saya juga telah menguji peranti ini dengan sensor tekanan 4-20mA yang mempunyai paparan LCD terpasang. Hasilnya sekali lagi sangat baik. Pembacaan saya dimulakan oleh beberapa perpuluhan.
Saya menulis kod arduino saya dalam tab. Dalam PLC mereka dipanggil sub rutin. Memudahkan penyahpepijatan untuk saya.
Dilampirkan adalah fail teks tab tersebut.
Disyorkan:
Penguji Kapasiti Bateri Menggunakan Arduino [Lithium-NiMH-NiCd]: 15 Langkah (dengan Gambar)
Penguji Kapasiti Bateri Menggunakan Arduino [Lithium-NiMH-NiCd]: Ciri-ciri: Mengenal pasti bateri Lithium-Ion / Lithium-Polymer / NiCd / NiMH palsu Beban arus berterusan yang boleh laras (juga boleh diubah suai oleh pengguna) Mampu mengukur kapasiti hampir sebarang jenis bateri (di bawah 5V) Mudah disolder, dibina, dan digunakan
Modul Penjana SPWM (tanpa Menggunakan Mikrokontroler): 14 Langkah
Modul Generator SPWM (tanpa Menggunakan Mikrokontroler): Halo semua, selamat datang ke arahan saya! Saya harap anda semua berjaya. Baru-baru ini, saya berminat untuk bereksperimen dengan isyarat PWM dan menemui konsep SPWM (atau Sinusoidal Pulse Width Modulation) di mana kitaran tugas kereta api
Cara Membuat Penguji Talian AC Menggunakan 4017 IC: 8 Langkah
Cara Membuat Penguji Talian AC Menggunakan IC 4017: Hai kawan, Hari ini saya akan membuat litar AC Tester menggunakan IC 4017. Litar ini akan menunjukkan arus AC tanpa menyentuh permukaan wayar. Mari kita mulakan
Penjana Puisi Optimis: Menggunakan Pigmen Termokromik dan Pad Pemanasan Nichrome: 10 Langkah
Penjana Puisi Optimis: Menggunakan Pigmen Termokromik dan Pad Pemanasan Nichrome: Puisi, pemerintahan dan kuasa adalah penjana puisi yang optimis - sistem yang dapat memberi makan teks yang merangkumi prasangka manusia - ucapan benci, dasar yang berat sebelah, pernyataan misoginistik - dan ia menghilangkan kata-kata tertentu untuk mendedahkan puisi yang penuh harapan dan memilih
Penjana Nada "Jimikky Kammal" Menggunakan Arduino Pro Mini: 5 Langkah
Tone Generator "Jimikky Kammal" Menggunakan Arduino Pro Mini: Ini adalah projek penjana nada sederhana menggunakan Arduino Pro Mini. Bahagian lagu super hit " Jimikky Kammal " filem " Velipadinte Pusthakam " dikembangkan secara monotonik. Nota muzik berlaku secara semula jadi sebagai sinuso halus dan bergulir