Sadržaj:
- Korak 1:
- Korak 2: Test izlaza instrumenta
- Korak 3: Kalibracija
- Korak 4: Programiranje Arduina
- Korak 5: Još nekoliko fotografija
- Korak 6: Ugradnja
- Korak 7: Samo fotografije
- Korak 8: Završne riječi
Video: Generator/tester 4-20ma pomoću Arduina: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Generatori 4-20mA dostupni su na ebayu, ali ja volim dio DIY stvari i korištenja dijelova koje imam okolo.
Htio sam testirati analogne ulaze našeg PLC-a kako bih provjerio očitavanja scada i testirao izlaz 4-20mA instrumenata. Postoji mnogo pretvarača struje u napon i pretvarača napona u struju za arduino na ebayu, ipak ih je potrebno kalibrirati. Ovo mogu koristiti za kalibriranje bilo kojeg od onih pretvarača koji se nalaze na ebayu i sličnim.
Odlučio sam da ću sam napraviti generator i tester. U ovom trenutku to je još uvijek u tijeku i prototip.
Imao sam stari 2.1 zvučni sistem koji se nije koristio (mali zvučnici). Tako sam koristio jednu od kutija za zvučnike kao kućište. Imao sam i pojačalo koje je umrlo od munje, uklonio sam priključak zvučnika s tog pojačala kako bih spojio povjetarac. Nameravam da u budućnosti napravim PCB i bolje kućište.
Potrošni materijal:
Lista delova.
LCD // 20x4 (prilagodite kôd ako je vaš manji)
LM7808 // 8voltni regulator
LED // Bilo koje vrste ili veličine
Otpornik za LED // Odgovara za LED tip i 8 volti
Otpornik od 100 ohma + otpornik od 47 ohma u seriji // Koristit će se kao odvojni otpornik
10K otpornik // Arduino analogni u zaštiti od visokog napona
22K otpornik // Za zaustavljanje plutanja A0
Trimpot 100 ohm + 47 ohm otpornik u seriji // PT100 simulator
35 voltni kondenzator // Koristio sam 470uF, samo da bih smanjio fluktuacije napona
RTD (sonda PT100) // Raspon nije bitan (raspon)
DIODA (za zaštitu polariteta)
INA219
Arduino
Korak 1:
Slijedeći shemu, trebali biste započeti gdje dodati dijelove i spojiti ih.
LM7808 dozvoljava ulaz od 25 volti što je sasvim u redu za PLC sisteme, oni općenito koriste napajanja od 24 volta. Regulatoru dodajte hladnjak i nemojte ga koristiti duže vrijeme. Pad 16 volti dovodi do toga da regulator proizvodi mnogo topline.
Ulaz napaja regulator i povezuje se s INA219 VIN, u ovoj konfiguraciji INA219 će također moći mjeriti ispravan opskrbni napon minus pad napona s diode. Trebali biste izmjeriti pad napona diode i dodati ga kodu kako biste dobili ispravno očitavanje napona napajanja.
Od INA219 VOUT do RTD+ napaja RTD. RTD- uzemljenje dovršava krug.
Da biste testirali PLC analognu karticu, trebali biste spojiti RTD- na ulaz na analognoj kartici i uzemljenje s kartice na arduino masu. (Obavezno odspojite bilo koji instrument priključen na kanal koji se testira).
R5 i LED1, indikacijski sistem je uključen.
Regulator se napaja u arduino VIN (arduino ima ugrađeni regulator na 5 volti).
Arduino 5V pin ide na INA219 za napajanje ugrađenog čipa. INA219 GND na arduino tlo.
Obrišite brisač lonca na RTD PIN1 i Isecite pin 3 na RTD pin 2 simulirat će PT100 vezu. (Zamijenite žice ako okretanje trim lonca u smjeru kazaljke na satu ne povećava mA).
Korak 2: Test izlaza instrumenta
Za ispitivanje izlaza instrumenta potrebni su dodatni dijelovi, poput šanta otpornika. Normalni otpornici od 0,25 W odlično će obaviti posao. Možete ostaviti shunt otpornik i dodati drugi INA219 za testiranje izlaza instrumenta. Ostao mi je samo jedan pa sam umjesto toga upotrijebio otpornik.
Testiranje pomoću šanta može se obaviti samo na negativnoj strani uređaja. Ako koristite pozitivnu stranu, opskrbit ćete svoj arduino više od 4 puta većim dozvoljenim naponom i pustiti dim.
Dodajte shunt otpornik u nizu s negativnom žicom instrumenta. Strana šanta najbliža uređaju postat će pozitivni analog za arduino. Druga strana šanta najbliža napajanju postat će arduino uzemljenje koje završava analogni ulazni krug.
Otpor otpornika od 150 ohma apsolutni je maksimum koji treba koristiti pri upotrebi arduina. Otpornik ima pad napona linearnog prema mA koji protiče kroz njega. Što je veći mA veći je napon.
Na 20mA struje # 150ohm*0.02A = 3volt na arduino.
Na 4mA struje # 150ohm*0,004A = 0,6 volti na arduino.
Sada biste možda htjeli da napon bude bliži 5 volti kako biste mogli koristiti cijeli ADC raspon arduina. (Nije dobra ideja).
RTD -ovi mogu doseći izlaz od 30,2 mA (moj radi). 150ohm*0,03A = 4,8 volti. To je onoliko blizu koliko bih ja želio biti.
Druga web stranica naznačila je da koristi otpornik od 250 ohma.
Na 20mA struje # 250ohm*0,02A = 5volt na arduino.
Na 30mA struje # 250ohm*0,03A = 7,5 volti na arduino.
Rizikujete spaljivanje ADC -a i arduina.
Da biste testirali instrument na terenu, ponesite sa sobom 12 -voltnu bateriju i spojite je na ulaz za napajanje. Korištenje vanjskog izvora napajanja neće utjecati na trenutne postavke PLC -a.
Za testiranje analogne ulazne kartice na terenu, ponesite sa sobom bateriju od 12 volti. Odvojite instrument + od strujnog kola. Spojite uzemljenje na masu instrumenta i RTD- na isključenu žicu instrumenta.
Korak 3: Kalibracija
Da biste kalibrirali očitavanje otpornika, spojite RTD- na analogni ulaz šanta. Postavite trim lonac tako da generirana mA bude 4mA. Ako mA vašeg uređaja nije jednaka, promijenite prvu vrijednost u kodu u retku 84. Povećanjem ove vrijednosti smanjit ćete očitavanje mA.
Zatim podesite trim lonac da generira 20mA. Ako mA vašeg uređaja nije jednaka, promijenite drugu vrijednost u kodu u retku 84.
Tako će vaših 4-20mA sada postati 0,6-3 volti (teoretski). Domet više nego dovoljan. Koristeći biblioteku iz eRCaGuy -a, preuzorkovanje će vam omogućiti bolje i stabilnije očitavanje.
Nadam se da ste ovo pročitali. Ovo je moje prvo uputstvo, pa molim vas polako ako sam negdje pogriješio ili nešto izostavio.
Ovaj projekt vjerojatno nije najbolji način za to, ali meni je uspio i bilo mi je zabavno raditi to.
Neke ideje imam dodatno …
Dodajte servo za okretanje trim lonca unutar kutije.
Dodajte tipke za rotiranje servo ulijevo ili udesno.
Dodajte hladnjak regulatora na digitalni senzor temperature kako biste upozorili na opasnu toplinu.
Korak 4: Programiranje Arduina
#include
// #include // Uncomment ako koristite LCD sa registrom pomaka.
#include
#include
#include
#include
// A4 = (SDA)
// A5 = (SCL)
Adafruit_INA219 ina219;
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
// LiquidCrystal_SR lcd (3, 4, 2); // Bez komentara ako koristite LCD sa registrom pomaka.
// | | | _ Pin za zatvaranje
// | / _ Pin sata
// / _ Podaci/Omogući pin
bajtovi bitovaOfResolution = 12; // zadana rezolucija sa uzorkom
bez potpisa dugi numSamplesToAvg = 20; // broj uzoraka NA REZOLUCIJI PRIMERENOG UZORKA koju želite uzeti i prosjek
ADC_prescaler_t ADCSpeed = ADC_DEFAULT;
unsigned long previousMillis = 0;
plovni pokretni napon = 0,0; // Iz INA219
plovni napon sabirnice = 0,0; // Iz INA219
plutajuća struja_mA = 0,0; // Iz INA219
napon opterećenja plovka = 0,0; // Iz INA219
plovni arduino napon = 0,0; // Proračun napona sa A0 pina
Nepotpisano dugo A0analogReading = 0;
bajt analogIn = A0;
float ma_mapped = 0.0; // Mapa napona od A0 do 4-20mA
void setup () {
adc.setADCSpeed (ADCSpeed);
adc.setBitsOfResolution (bitsOfResolution);
adc.setNumSamplesToAvg (numSamplesToAvg);
uint32_t currentFrequency;
ina219.begin ();
ina219.setCalibration_32V_30mA (); // Izmijenjena biblioteka za veću preciznost na mA
lcd.begin (20, 4); // inicijalizacija LCD -a
lcd.clear ();
lcd.home (); // idi kući
lcd.print ("********************");
kašnjenje (2000);
lcd.clear ();
}
void loop ()
{
bez potpisa duga strujaMillis = millis ();
const long interval = 100;
//&&&&&&&&&&&&&&&&&
U intervalima čitajte I2C uređaje i napravite neke proračune
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if (currentMillis - previousMillis> = interval) {
previousMillis = trenutniMillis;
Interval ();
}
Print_To_LCD (); // Vjerovatno ne moram tako brzo ažurirati LCD i mogu se premjestiti na ispod Interval ()
}
void
Interval () {
shuntvoltage = ina219.getShuntVoltage_mV ();
busvoltage = ina219.getBusVoltage_V ();
trenutna_mA = ina219.getCurrent_mA ();
napon opterećenja = (napon sabirnice + (shuntvoltage / 1000)) + 0,71; // +0,71 je moj pad napona diode
A0analogReading = adc.newAnalogRead (analogIn);
arduinovoltage = (5.0 * A0analogReading); // Izračunato na mV
ma_mapped = map (arduinovoltage, 752, 8459, 30, 220) / 10,0; // Karta ne može koristiti float. Dodajte 0 iza mapirane vrijednosti i podijelite s 10 da biste dobili očitavanje s plutanjem.
// Mapiranje iz proračuna napona daje stabilnije očitavanje nego korištenje neobrađenog očitanja ADC -a.
if (shuntvoltage> = -0.10 && shuntvoltage <= -0.01) // Bez opterećenja INA219 ima tendenciju očitavanja ispod -0.01, a moje radi.
{
trenutna_mA = 0;
napon sabirnice = 0;
napon opterećenja = 0;
shuntvoltage = 0;
}
}
void
Print_To_LCD () {
lcd.setCursor (0, 0);
if (ma_mapped <1.25) {// Bez struje, ovo je moje očitavanje mA, pa sam ga jednostavno odbacio.
lcd.print (" * 4-20mA Generator *");
}
else {
lcd.print ("** Analogni tester **");
}
lcd.setCursor (0, 1);
lcd.print ("Uređaj:");
lcd.setCursor (10, 1);
if (ma_mapirano <1,25) {
lcd.print ("bez uređaja");
}
else {
lcd.print (ma_mapirano);
}
lcd.print ("mA");
lcd.setCursor (0, 2);
lcd.print ("Generiši:");
lcd.setCursor (10, 2);
lcd.print (current_mA);
lcd.print ("mA");
lcd.setCursor (0, 3);
lcd.print ("Opskrba:");
lcd.setCursor (10, 3);
lcd.print (napon opterećenja);
lcd.print ("V");
}
Korak 5: Još nekoliko fotografija
Terminal zvučnika pojačala. LED pogonjen generatorom struje (RTD). Ožičenje analogne kartice zamijenit će LED.
Krajnji lijevi priključak služi za ulaz napajanja. Stezaljke na desnoj strani služe za unos instrumenata.
Korak 6: Ugradnja
Čini se da sve pristaje. Koristio sam silikon da privremeno držim neke stvari zajedno. Trim lonac je silikoniziran u gornjem desnom kutu. Mala rupa je prethodno izbušena. Mogu podesiti struju s vrha kutije.
Korak 7: Samo fotografije
Korak 8: Završne riječi
Testirao sam izlaz ovog uređaja sa PLC -om Allan Bradley. Rezultati su bili vrlo dobri. Dobio sam cijeli raspon. Također sam testirao ovaj uređaj sa senzorom pritiska 4-20mA koji ima ugrađen LCD ekran. Ponovo su rezultati bili veoma dobri. Moja očitanja su bila isključena za nekoliko decimala.
Zapisujem svoj arduino kod u kartice. U PLC -ovima se zovu podrutine. Olakšava otklanjanje grešaka.
U prilogu se nalaze tekstualne datoteke tih kartica.
Preporučuje se:
Programiranje Arduina pomoću drugog Arduina za prikaz teksta koji se pomiče bez biblioteke: 5 koraka
Programiranje Arduina pomoću drugog Arduina za prikaz pomicanja teksta bez biblioteke: Sony Spresense ili Arduino Uno nisu toliko skupi i ne zahtijevaju puno energije. Međutim, ako vaš projekt ima ograničenje snage, prostora ili čak proračuna, razmislite o upotrebi Arduino Pro Mini. Za razliku od Arduino Pro Micro, Arduino Pro Mi
Kako napraviti bespilotnu letjelicu pomoću Arduina UNO - Napravite četvorokopter pomoću mikrokontrolera: 8 koraka (sa slikama)
Kako napraviti bespilotnu letjelicu pomoću Arduina UNO | Napravite četvorokopter pomoću mikrokontrolera: UvodPosjetite moj Youtube kanalA Drone je vrlo skup gadget (proizvod) za kupovinu. U ovom postu ću raspravljati o tome kako to učiniti jeftino ?? I kako možete sami napraviti ovakvu po povoljnoj cijeni … Pa u Indiji svi materijali (motori, ESC
Sustav za dojavu požara pomoću Arduina [u nekoliko lakih koraka]: 3 koraka
Sustav za dojavu požara pomoću Arduina [U nekoliko lakih koraka]: Želite li napraviti jednostavan i zanimljiv projekt s Arduinom koji bi u isto vrijeme mogao biti zaista koristan i potencijalno spasiti život? Ako da, došli ste na pravo mjesto za učenje nešto novo i inovativno. U ovom postu idemo
Bežični daljinski upravljač pomoću NRF24L01 modula od 2,4 GHz sa Arduinom - Nrf24l01 4 -kanalni / 6 -kanalni prijemnik odašiljača za Quadcopter - Rc helikopter - Rc avion pomoću Arduina: 5 koraka (sa slikama)
Bežični daljinski upravljač pomoću NRF24L01 modula od 2,4 GHz sa Arduinom | Nrf24l01 4 -kanalni / 6 -kanalni prijemnik odašiljača za Quadcopter | Rc helikopter | Rc avion pomoću Arduina: Za upravljanje Rc automobilom | Quadcopter | Dron | RC avion | RC brod, uvijek nam je potreban prijemnik i odašiljač, pretpostavimo da za RC QUADCOPTER trebamo 6 -kanalni odašiljač i prijemnik, a ta vrsta TX -a i RX -a je preskupa, pa ćemo napraviti jedan na našem
Generator - DC generator pomoću Reed prekidača: 3 koraka
Generator - DC generator pomoću Reed prekidača: Jednostavni DC generator Generator istosmjerne struje (DC) je električna mašina koja pretvara mehaničku energiju u istosmjernu struju. Važno: Generator istosmjerne struje (DC) može se koristiti kao motor istosmjerne struje bez ikakve konstrukcije promene