Përmbajtje:
- Hapi 1:
- Hapi 2: Testi i daljes së instrumentit
- Hapi 3: Kalibrimi
- Hapi 4: Programimi i Arduino
- Hapi 5: Disa fotografi të tjera
- Hapi 6: Përshtatja
- Hapi 7: Vetëm Fotografi
- Hapi 8: Fjalët e fundit
Video: 4-20ma Gjenerator/Testues duke përdorur Arduino: 8 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:10
Gjeneratorët 4-20mA janë në dispozicion në ebay, por unë për vete e dua pjesën DIY të gjërave dhe përdorimin e pjesëve që kam vendosur përreth.
Doja të testoja hyrjet analoge të PLC-së tonë për të verifikuar leximet tona scada dhe për të testuar daljen e instrumenteve 4-20mA. Ka ngarkesa të konvertuesve të rrymës në tension dhe tension në konvertues të rrymës për arduino në ebay, megjithatë ato kanë nevojë për kalibrim. Unë mund ta përdor këtë për të kalibruar ndonjë nga ata konvertuesit që gjenden në ebay dhe të ngjashme.
Vendosa që të bëj DIY një gjenerator dhe testues. Në këtë pikë në kohë është ende një punë në progres dhe një prototip.
Unë kisha një sistem të vjetër zanor 2.1 që nuk po përdorej (altoparlantë të vegjël). Kështu që unë përdor një nga kutitë e altoparlantëve si një rrethim. Unë gjithashtu kisha një përforcues që vdiq për shkak të rrufesë, e hoqa terminalin e altoparlantit nga ai përforcues për të bërë lidhjen me një fllad. Kam ndërmend të bëj një PCB në të ardhmen dhe një rrethim më të mirë.
Furnizimet:
Lista e Pjesëve.
LCD // 20x4 (përshtatni kodin nëse i juaji është më i vogël)
LM7808 // rregullator 8 volt
LED // Çdo lloj ose madhësi
Rezistencë për LED // E përshtatshme për llojin LED dhe 8volt
Rezistencë 100 ohm + Rezistencë 47 ohm në seri // Do të përdoret si rezistencë shunt
Rezistencë 10K // Analog Arduino në mbrojtje kundër tensionit të lartë
Rezistencë 22K // Për të ndaluar lundrimin e A0
Rezistenca Trimpot 100 ohm + 47 ohm në seri // imituesi PT100
Kondensator 35 volt // Kam përdorur 470uF, vetëm për të mbajtur poshtë luhatjet e tensionit të furnizimit
RTD (dhënës PT100) // Hapësira nuk ka rëndësi (diapazoni)
DIODE (për mbrojtjen e polaritetit)
INA219
Arduino
Hapi 1:
Duke ndjekur skemën, duhet të filloni se ku të shtoni pjesët dhe t'i lidhni ato.
LM7808 lejon një hyrje maksimale prej 25 volt, e cila është e mirë për sistemet PLC, ato në përgjithësi përdorin furnizime me energji 24 volt. Shtoni një heatsink në rregullatorin dhe mos e përdorni atë për periudha të zgjatura. Rënia e 16 volt shkakton që rregullatori të prodhojë shumë nxehtësi.
Furnizimi hyrës ushqen rregullatorin dhe lidhet me INA219 VIN, në këtë konfigurim INA219 gjithashtu do të jetë në gjendje të masë tensionin e saktë të furnizimit minus rënien e tensionit nga dioda. Ju duhet të matni rënien e tensionit të diodës tuaj dhe ta shtoni atë në kod në mënyrë që të merrni leximin e saktë të tensionit të furnizimit.
Nga INA219 VOUT tek RTD+ fuqizon RTD. RTD- toka përfundon qarkun.
Për të testuar një kartë analoge PLC ju do të lidhni RTD- me hyrjen në kartën analoge dhe tokën nga karta në tokën arduino. (Sigurohuni që të shkëputni çdo instrument të bashkangjitur në kanalin që po testohet).
R5 dhe LED1, duke treguar se sistemi është ndezur.
Rregullatori ushqehet me arduino VIN (arduino ka ndërtuar rregullatorin në 5 volt).
Kunja Arduino 5V shkon në INA219 për të fuqizuar çipin në bord. INA219 GND në terren arduino.
Prerja e fshirësit të tenxhere në RTD PIN1 dhe shkurtimi i kunjit të tenxhere 3 në pinin RTD 2 do të simulojnë një lidhje PT100. (Ndërroni telat nëse rrotullimi i tenxheres në drejtim të akrepave të orës nuk e rrit mA).
Hapi 2: Testi i daljes së instrumentit
Për të testuar daljen e instrumentit nevojiten pjesë shtesë, si një rezistencë shunt. Rezistentët normalë 0.25W do ta bëjnë punën mirë. Mund të lini rezistencën e shmangies dhe të shtoni një INA219 të dytë për të testuar daljen e instrumentit. Më kishte mbetur vetëm një, kështu që unë përdor një rezistencë në vend.
Testimi duke përdorur një shunt mund të bëhet vetëm në anën negative të pajisjes. Nëse përdorni anën pozitive, ju do të furnizoni arduinon tuaj me më shumë se 4 herë tensionin e lejuar dhe do të lini tymin jashtë.
Shtoni rezistencën e shuntit në seri me tela negative të instrumentit. Ana e shuntit më e afërt me pajisjen do të bëhet analoge pozitive për arduino. Ana tjetër e shunt -it më afër furnizimit me energji elektrike do të bëhet toka arduino që përfundon qarkun e hyrjes analoge.
Rezistenca shunt 150 ohm është maksimumi absolut që duhet të përdoret kur përdorni një arduino. Rezistori ka një rënie të tensionit lineare në mA që rrjedh përmes tij. Sa më i madh të jetë mA aq më i madh është tensioni.
Në 20mA aktuale # 150ohm*0.02A = 3volt në arduino.
Në 4mA aktuale # 150ohm*0.004A = 0.6volt në arduino.
Tani mund të dëshironi që voltazhi të jetë më afër 5 volt, në mënyrë që të na jepni gamën e plotë ADC të arduino. (Nuk është ide e mirë).
RTD -të mund të arrijnë 30.2mA dalje (e imja arrin). 150ohm*0.03A = 4.8volt. Kjo është aq afër sa do të doja të isha.
Një faqe në internet e treguar për të përdorur një rezistencë 250ohm.
Në 20mA aktuale # 250ohm*0.02A = 5volt në arduino.
Në 30mA aktuale # 250ohm*0.03A = 7.5volt në arduino.
Ju rrezikoni të digjni ADC dhe arduino tuaj.
Për të testuar një instrument në terren, merrni një bateri 12 volt me vete dhe lidheni atë me hyrjen e furnizimit. Përdorimi i një burimi të jashtëm të energjisë nuk do të ndikojë në konfigurimin aktual të PLC.
Për të provuar një kartë analoge të hyrjes në terren, merrni me vete një bateri 12 volt. Shkëputeni instrumentin + nga qarku. Lidhni tokën me tokëzimin e instrumentit dhe RTD- me tela instrumenti të shkëputur.
Hapi 3: Kalibrimi
Për të kalibruar leximin e rezistencës së shuntit, lidhni RTD- te shunt Analog in. Vendoseni tenxheren tuaj të zbukurimit në mënyrë që mA e gjeneruar të jetë 4mA. Nëse pajisja juaj mA nuk është e barabartë atëherë modifikoni vlerën e parë në kod në rreshtin 84. Rritja e kësaj vlere do të ulë leximin e mA.
Pastaj vendoseni tenxheren tuaj të zbukurimit të prodhojë 20mA. Nëse pajisja juaj mA nuk është e barabartë, atëherë modifikoni vlerën e dytë në kodin në rreshtin 84.
Pra, 4-20mA juaj tani do të bëhet 0.6-3volt (teorik). Gama më shumë se e mjaftueshme. Duke përdorur bibliotekën nga eRCaGuy, marrja e tepërt e mostrave do t'ju japë një lexim më të mirë dhe të qëndrueshëm.
Shpresoj ta lexoni këtë. Ky është udhëzimi im i parë, kështu që ju lutem mos e merrni me lehtësi nëse kam bërë një gabim diku ose kam lënë diçka jashtë.
Ky projekt ndoshta nuk është mënyra më e mirë për ta bërë atë, por funksionon për mua dhe ishte argëtuese ta bëja atë.
Disa ide që kam shtesë…
Shtoni një servo për të rrotulluar tenxheren e zbukuruar brenda kutisë.
Shtoni butona shtytës për të rrotulluar servo majtas ose djathtas.
Shtoni një sensor dixhital të temperaturës në ngrohësin e rregullatorit për të paralajmëruar për nxehtësi të rrezikshme.
Hapi 4: Programimi i Arduino
#përfshi
// #include // Mos komentoni nëse përdorni një LCD me regjistër ndërrimi.
#përfshi
#përfshi
#përfshi
#përfshi
// A4 = (SDA)
// A5 = (SCL)
Adafruit_INA219 ina219;
LiquidCrystal LCD (12, 11, 5, 4, 3, 2);
// LiquidCrystal_SR lcd (3, 4, 2); // Mos komentoni nëse përdorni një LCD me regjistër ndërrimi.
// | | | _ Kunja e shulit
// | / _ Kunja e orës
// / _ Të dhënat/Aktivizo kunjin
bit bajtOfResolution = 12; // zgjidhja e komanduar e tejmbushur
numSamplesToAvg i gjatë i panënshkruar = 20; // numri i mostrave N R ZGJIDHJEN MBYSHMARR që dëshironi të merrni dhe mesatarisht
ADC_prescaler_t ADCSpeed = ADC_DEFAULT;
pa shenjë e mëparshmeMillis = 0;
float shuntvoltage = 0.0; // Nga INA219
voltazhi notues = 0.0; // Nga INA219
rryma notuese_mA = 0.0; // Nga INA219
tensioni i ngarkesës së notit = 0.0; // Nga INA219
arduinovoltazhi notues = 0.0; // Llogaritja e tensionit nga kunja A0
I panënshkruar i gjatë A0analogReading = 0;
byte analogIn = A0;
noton ma_mapped = 0.0; // Tensioni i hartës nga A0 në 4-20mA
void setup () {
adc.setADCSpeed (ADCSpeed);
adc.setBitsOfResolution (bitsOfResolution);
adc.setNumSamplesToAvg (numSamplesToAvg);
uint32_t aktualeFrekuenca;
ina219.filloj ();
ina219.setCalibration_32V_30mA (); // Biblioteka e modifikuar për më shumë saktësi në mA
lcd.filloni (20, 4); // inicializoni LCD -në
lcd.qartë ();
lcd. shtëpi (); // Shko në shtëpi
lcd.print ("*******************");
vonesa (2000);
lcd.qartë ();
}
lak void ()
{
rrymë e gjatë e panënshkruarMillis = millis ();
inter interval i gjatë = 100;
//&&&&&&&&&&&&&&&&&
Lexoni pajisjet I2C në intervale dhe bëni disa llogaritje
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if (aktualeMillis - previousMillis> = interval) {
previousMillis = aktualMillis;
Intervali ();
}
Print_To_LCD (); // Ndoshta nuk kam nevojë të azhurnoj LCD kaq shpejt dhe mund të zhvendoset në më poshtë Intervali ()
}
i pavlefshëm
Intervali () {
shuntvoltage = ina219.getShuntVoltage_mV ();
busvoltage = ina219.getBusVoltage_V ();
current_mA = ina219.getCurrent_mA ();
tension i ngarkesës = (tensioni i autobusit + (shuntvoltage / 1000)) + 0.71; // +0.71 është rënia e tensionit tim në diodë
A0analogReading = adc.newAnalogRead (analogIn);
arduinovoltazh = (5.0 * A0analogLexim); // Llogaritet në mV
ma_mapped = harta (arduinovoltazhi, 752, 8459, 30, 220) / 10.0; // Harta nuk mund të përdorë noton. Shtoni një 0 prapa vlerës së hartuar dhe ndani me 10 për të marrë leximin e notit.
// Hartimi nga llogaritja e tensionit jep lexim më të qëndrueshëm sesa përdorimi i leximit të papërpunuar të adc.
nëse (shuntvoltage> = -0,10 && shuntvoltage <= -0,01) // Pa asnjë ngarkesë INA219 ka tendencë të lexojë më poshtë -0,01, mirë e imja.
{
aktuale_mA = 0;
tensioni i autobusit = 0;
tension ngarkues = 0;
tension shuntv = 0;
}
}
i pavlefshëm
Print_To_LCD () {
lcd.setCursor (0, 0);
nëse (ma_mapped <1.25) {// Me asnjë rrymë kjo është leximi im mA, kështu që thjesht e largova atë.
lcd.print (" * 4-20mA Generator *");
}
tjeter {
lcd.print ("** Testues Analog **");
}
lcd.setCursor (0, 1);
lcd.print ("Pajisja:");
lcd.setCursor (10, 1);
nëse (ma_mapped <1.25) {
lcd.print ("pa pajisje");
}
tjeter {
lcd.print (ma_mapped);
}
lcd.print ("mA");
lcd.setCursor (0, 2);
lcd.print ("Gjeneroni:");
lcd.setCursor (10, 2);
lcd.print (aktuale_mA);
lcd.print ("mA");
lcd.setCursor (0, 3);
lcd.print ("Furnizimi:");
lcd.setCursor (10, 3);
lcd.print (tension i ngarkesës);
lcd.print ("V");
}
Hapi 5: Disa fotografi të tjera
Terminali i altoparlantit të amplifikatorit. LED i drejtuar nga gjeneratori aktual (RTD). Instalimet me kartë analoge do të zëvendësojnë LED.
Terminali në të majtë është për hyrje të furnizimit. Terminalet në të djathtë janë për hyrjen e instrumenteve.
Hapi 6: Përshtatja
Gjithçka duket se përshtatet. Kam përdorur silikon për të mbajtur përkohësisht disa gjëra së bashku. Tenxhere e zbukuruar është silikon në të djathtën e sipërme. Një vrimë e vogël ishte paraprirur. Unë mund të rregulloj rrymën nga maja e kutisë.
Hapi 7: Vetëm Fotografi
Hapi 8: Fjalët e fundit
Unë kam testuar daljen e kësaj pajisjeje me një PLC Allan Bradley. Rezultatet ishin shumë të mira. Kam marrë gamën e plotë. Unë gjithashtu e kam testuar këtë pajisje me sensor presioni 4-20mA që ka një ekran LCD të integruar. Përsëri rezultatet ishin shumë të mira. Leximet e mia u mbyllën nga disa dhjetore.
Unë shkruaj kodin tim arduino në skeda. Në PLC -të ato quhen nën -rutina. E bën më të lehtë debugimin për timen.
Bashkangjitur janë skedarët e tekstit të atyre skedave.
Recommended:
Testues i kapacitetit të baterisë duke përdorur Arduino [Lithium-NiMH-NiCd]: 15 hapa (me fotografi)
Testues i kapacitetit të baterisë duke përdorur Arduino [Lithium-NiMH-NiCd]: Karakteristikat: Identifikoni një bateri të rreme Lithium-Jon/Lithium-Polymer/NiCd/NiMH Ngarkesë aktuale e rregullueshme konstante (mund të modifikohet edhe nga përdoruesi) I aftë për të matur kapacitetin pothuajse çdo lloj baterie (nën 5V) Lehtë për tu lidhur, ndërtuar dhe përdorur,
Gjenerator - Gjenerator DC duke përdorur kallamin e kallamit: 3 hapa
Gjenerator - Gjeneratori DC duke përdorur kallamin e kallamit: Gjenerator i thjeshtë DC Një gjenerator i rrymës së drejtpërdrejtë (DC) është një makinë elektrike e cila konverton energjinë mekanike në energji elektrike me rrymë të drejtpërdrejtë. E rëndësishme: Një gjenerator i rrymës direkte (DC) mund të përdoret si motor DC pa ndonjë konstruktiv ndryshimet
Testues IC, Op-Amp, Testues kohëmatës 555: 3 hapa
Tester IC, Op-Amp, 555 Timer Tester: Të gjithë IC-të e këqij ose zëvendësues janë të shtrirë, por nëse përzihen me njëri-tjetrin, duhet shumë kohë për të identifikuar të Keqen ose të Mirë, Në këtë artikull mësojmë se si mund të bëjmë IC testues, Le të vazhdojmë
Gjenerator tonesh "Jimikky Kammal" Duke përdorur Arduino Pro Mini: 5 hapa
Tone Generator "Jimikky Kammal" Duke përdorur Arduino Pro Mini: Ky është një projekt i thjeshtë për gjenerimin e toneve duke përdorur Arduino Pro Mini. Një pjesë e këngës super hit " Jimikky Kammal " të filmit " Velipadinte Pusthakam " është zhvilluar në monotoni. Notat muzikore ndodhin në natyrë si sinuso e lëmuar dhe e rrotullueshme
Testues i kapacitetit të baterisë Li-Jon (Testues i fuqisë së litiumit): 5 hapa
Testues i kapacitetit të baterisë Li-Jon (Testues i fuqisë së litiumit): =========== PARALAJMRIM & Mospranimi ========== Bateritë Li-Jon janë shumë të rrezikshme nëse nuk trajtohen siç duhet. MOS MBI NGARKUAR / Djegur / HAPUR Lakuriqet Li-Jon Çdo gjë që bëni me këtë informacion është rreziku juaj ====== =======================================