Sisällysluettelo:
- Vaihe 1:
- Vaihe 2: Laitteen ulostulotesti
- Vaihe 3: Kalibrointi
- Vaihe 4: Arduinon ohjelmointi
- Vaihe 5: Lisää kuvia
- Vaihe 6: Asentaminen
- Vaihe 7: Vain valokuvia
- Vaihe 8: Viimeiset sanat
Video: 4-20ma generaattori/testaaja Arduinon avulla: 8 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
4-20 mA generaattoreita on saatavana ebaystä, mutta minä rakastan yhden puolen asioiden tekemistä ja osien käyttämistä.
Halusin testata PLC: n analogisia tuloja scada-lukemiemme tarkistamiseksi ja 4-20 mA: n instrumenttien ulostulon testaamiseksi. Ebayssa on paljon virtaa jännitteenmuuntimiin ja jännite -virtamuuntimia arduinoon, mutta ne tarvitsevat kalibroinnin. Voin käyttää tätä kalibroidaksesi kaikki ebaystä löydetyt muuntimet ja tykkäykset.
Päätin tehdä DIY -generaattorin ja testaajan. Tässä vaiheessa se on vielä kesken ja prototyyppi.
Minulla oli vanha 2.1 -äänijärjestelmä, jota ei käytetty (pienet kaiuttimet). Joten käytin yhtä kaiutinkoteloista kotelona. Minulla oli myös vahvistin, joka kuoli salaman takia, poistin kaiuttimen liittimen vahvistimesta, jotta yhdistäminen olisi helppoa. Aion tulevaisuudessa tehdä piirilevyn ja paremman kotelon.
Tarvikkeet:
Osaluettelo.
LCD // 20x4 (mukauta koodi, jos omasi on pienempi)
LM7808 // 8 voltin säädin
LED // Mikä tahansa tyyppi tai koko
LED -vastus // Sopii LED -tyypille ja 8 voltille
100 ohmin vastus + 47 ohmin sarjavastus // Käytetään shuntivastuksena
10K vastus // Arduino -analogi suojaa korkeajännitteeltä
22K vastus // A0: n kellumisen estämiseksi
Trimpot 100 ohmia + 47 ohmin sarjavastus // PT100 -simulaattori
35 voltin kondensaattori // Käytin 470uF, vain pitämään syöttöjännitteen vaihtelut alhaisina
RTD (PT100 -anturi) // Span ei ole väliä (alue)
DIODI (napaisuuden suojaamiseksi)
INA219
Arduino
Vaihe 1:
Kaavion jälkeen sinun pitäisi päästä alkuun siihen, mihin osat lisätään ja johdotetaan.
LM7808 sallii enintään 25 voltin tulon, mikä on hyvä PLC -järjestelmille, ne käyttävät yleensä 24 voltin virtalähteitä. Lisää jäähdytyselementti säätimeen äläkä käytä sitä pitkään aikaan. 16 voltin pudottaminen saa säätimen tuottamaan paljon lämpöä.
Tulolähde syöttää säätimen ja muodostaa yhteyden INA219 VIN -järjestelmään, tässä kokoonpanossa INA219 pystyy myös mittaamaan oikean syöttöjännitteen miinus diodin jännitehäviö. Sinun on mitattava diodin jännitehäviö ja lisättävä se koodiin, jotta saat oikean syöttöjännitteen lukeman.
INA219 VOUT: sta RTD+: een tehostaa RTD: tä. RTD- maahan täydentää piirin.
Jos haluat testata analogisen PLC-kortin, kytke RTD- analogikortin tuloon ja maadoita kortista arduino-maahan. (Varmista, että irrotat kaikki testattavaan kanavaan kiinnitetyt instrumentit).
R5 ja LED1, mikä ilmaisee järjestelmän olevan päällä.
Säädin syötetään arduino VIN -järjestelmään (arduino on varustettu 5 voltin säätimellä).
Arduino 5V-nasta menee INA219: hen virtalähteeksi sisäiseen siruun. INA219 GND arduino -maahan.
Trim potinpyyhkimen RTD PIN1 ja Trim potin 3 RTD pin 2: een simuloi PT100 -yhteyttä. (Vaihda johdot, jos trimmausastian kääntäminen myötäpäivään ei lisää mA: ta).
Vaihe 2: Laitteen ulostulotesti
Laitteen ulostulon testaamiseen tarvitaan lisäosia, kuten shuntivastus. Normaalit 0,25 W: n vastukset tekevät työnsä hienosti. Voit poistua shuntivastuksesta ja lisätä toisen INA219 -laitteen testauslaitteen lähtöön. Minulla oli vain yksi jäljellä, joten käytin sen sijaan vastusta.
Testaus shuntilla voidaan tehdä vain laitteen negatiivisella puolella. Jos käytät positiivista puolta, syötät arduinoosi yli 4 kertaa sallitun jännitteen ja päästät savun ulos.
Lisää shuntivastus sarjaan laitteen negatiivisella johdolla. Laitetta lähinnä olevasta shuntin sivusta tulee arduinon positiivinen analogi. Shuntin toiselta puolelta, joka on lähinnä virtalähdettä, tulee analoginen tulopiiri täydentävä arduino -maa.
150 ohmin shuntivastus on ehdoton maksimi, jota tulee käyttää käytettäessä arduinoa. Vastuksessa on jännitehäviö lineaarisesti sen läpi virtaavaan mA: han. Mitä suurempi mA, sitä suurempi jännite.
20 mA virralla # 150ohm*0,02A = 3 volttia arduinoon.
4 mA virralla # 150ohm*0,004A = 0,6 volttia arduinoon.
Nyt saatat haluta, että jännite on lähempänä 5 volttia, jotta voit käyttää kaikkia arduinon ADC -alueita. (Ei hyvä idea).
RTD: t voivat saavuttaa 30,2 mA: n ulostulon (minun). 150ohm*0,03A = 4,8 volttia. Se on niin lähellä kuin haluaisin olla.
Toinen sivusto ilmoitti käyttävänsä 250ohmin vastusta.
20 mA virralla # 250ohm*0,02A = 5 volttia arduinoon.
30 mA virralla # 250ohm*0,03A = 7,5 volttia arduinoon.
Olet vaarassa polttaa ADC: si ja arduino.
Jos haluat testata instrumenttia kentällä, ota 12 voltin akku mukaasi ja kytke se virtalähteeseen. Ulkoisen virtalähteen käyttäminen ei vaikuta nykyiseen PLC -kokoonpanoon.
Testaa analoginen tulokortti kentällä ottamalla 12 voltin akku mukaasi. Irrota instrumentti + virtapiiristä. Liitä maadoitus laitteen maadoitukseen ja RTD- irrotettuun instrumenttijohtoon.
Vaihe 3: Kalibrointi
Kalibroi shuntivastuksen lukema kytkemällä RTD- shuntin analogiseen tuloon. Aseta trimmausastia niin, että generoitu mA on 4 mA. Jos laitteesi mA ei ole sama, muokkaa koodin ensimmäistä arvoa rivillä 84. Tämän arvon lisääminen laskee mA -lukemaa.
Aseta sitten trimmausastia tuottamaan 20 mA. Jos laitteesi mA ei ole sama, muuta rivin 84 koodin toista arvoa.
Joten 4-20 mA: sta tulee nyt 0,6-3 volttia (teoreettinen). Enemmän kuin tarpeeksi kantamaa. Käyttämällä eRCaGuyn kirjastoa ylinäytteenotto antaa sinulle paremman ja vakaamman lukeman.
Toivottavasti luet tämän. Tämä on ensimmäinen ohjeeni, joten ota rauhallisesti, jos olen tehnyt virheen jossakin tai jättänyt jotain pois.
Tämä projekti ei luultavasti ole paras tapa edetä, mutta se toimii minulle ja oli hauskaa tehdä se.
Joitakin ideoita minulla on ylimääräistä…
Lisää servo kiertääksesi trimmausastiaa laatikon sisällä.
Lisää painikkeita servon kääntämiseksi vasemmalle tai oikealle.
Lisää digitaalinen lämpötila -anturi säätimen jäähdytyselementtiin varoittamaan vaarallisesta kuumuudesta.
Vaihe 4: Arduinon ohjelmointi
#sisältää
// #include // Uncomment, jos käytät nestekidenäyttöä, jossa on siirtorekisteri.
#sisältää
#sisältää
#sisältää
#sisältää
// A4 = (SDA)
// A5 = (SCL)
Adafruit_INA219 ina219;
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
// LiquidCrystal_SR lcd (3, 4, 2); // Ei kommenttia, jos käytät nestekidenäyttöä, jossa on siirtorekisteri.
// | | | _ Salvatappi
// | / _ Kellotappi
// / _ Data/Ota PIN käyttöön
tavut bittiäOfResolution = 12; // käski ylinäytteistettyä resoluutiota
allekirjoittamaton pitkä numSamplesToAvg = 20; // otettavien näytteiden lukumäärä YLIESIMERKITTYNÄ PÄÄTÖKSESSÄ ja keskiarvo
ADC_prescaler_t ADCSpeed = ADC_DEFAULT;
allekirjoittamaton aikaisempiMillis = 0;
kelluva shuntijännite = 0,0; // Lähde: INA219
kelluva väyläjännite = 0,0; // Lähde: INA219
kelluva virta_mA = 0,0; // Lähde: INA219
kelluva kuormitusjännite = 0,0; // Lähde: INA219
kelluva arduinovoltage = 0,0; // Jännitteen laskeminen A0 -nastasta
Allekirjoittamaton pitkä A0analogReading = 0;
tavu analoginenIn = A0;
float ma_mapped = 0.0; // Kartoittaa jännitteen A0: sta 4-20 mA: iin
void setup () {
adc.setADCSpeed (ADCSpeed);
adc.setBitsOfResolution (bitsOfResolution);
adc.setNumSamplesToAvg (numSamplesToAvg);
uint32_t currentFrequency;
ina219.begin ();
ina219.setCalibration_32V_30mA (); // Muokattu kirjasto lisää mA: n tarkkuutta
lcd. alku (20, 4); // Alusta LCD -näyttö
lcd.clear ();
lcd.home (); // mene kotiin
lcd.print ("********************");
viive (2000);
lcd.clear ();
}
tyhjä silmukka ()
{
allekirjoittamaton pitkävirtaMillis = millis ();
const pitkä väli = 100;
//&&&&&&&&&&&&&&&&&
Lue I2C -laitteet säännöllisin väliajoin ja tee laskelmia
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if (currentMillis - previousMillis> = väli) {
previousMillis = currentMillis;
Väli ();
}
Print_To_LCD (); // Minun ei luultavasti tarvitse päivittää nestekidenäyttöä näin nopeasti, ja sen voi siirtää alle Interval ()
}
mitätön
Väli () {
shuntvoltage = ina219.getShuntVoltage_mV ();
väyläjännite = ina219.getBusVoltage_V ();
current_mA = ina219.getCurrent_mA ();
kuormitusjännite = (väyläjännite + (shuntijännite / 1000)) + 0,71; // +0,71 on diodini jännitehäviö
A0analogReading = adc.newAnalogRead (analogIn);
arduinovoltage = (5,0 * A0analogReading); // Laskettu mV: ksi
ma_mapped = kartta (arduinovoltage, 752, 8459, 30, 220) / 10,0; // Kartta ei voi käyttää kellukkeita. Lisää 0 yhdistetyn arvon taakse ja jaa kymmenellä saadaksesi kellukkeen lukema.
// Jännitelaskennan kartoitus antaa vakaamman lukeman kuin raaka ADC -lukema.
jos (shuntijännite> = -0,10 && shuntvoltage <= -0,01) // Ilman kuormaa INA219 pyrkii lukemaan alle -0,01, hyvin minun.
{
nykyinen_mA = 0;
väyläjännite = 0;
kuormitusjännite = 0;
shuntijännite = 0;
}
}
mitätön
Print_To_LCD () {
lcd.setCursor (0, 0);
if (ma_mapped <1.25) {// Ilman virtaa tämä on mA -lukemani, joten otan sen vain pois.
lcd.print (" * 4-20mA-generaattori *");
}
muu {
lcd.print ("** Analoginen testaaja **");
}
lcd.setCursor (0, 1);
lcd.print ("Laite:");
lcd.setCursor (10, 1);
if (kartoitettu <1,25) {
lcd.print ("ei laitetta");
}
muu {
lcd.print (kartoitettu);
}
lcd.print ("mA");
lcd.setCursor (0, 2);
lcd.print ("Luo:");
lcd.setCursor (10, 2);
lcd.print (current_mA);
lcd.print ("mA");
lcd.setCursor (0, 3);
lcd.print ("Toimitus:");
lcd.setCursor (10, 3);
lcd.print (kuormitusjännite);
lcd.print ("V");
}
Vaihe 5: Lisää kuvia
Vahvistimen kaiutinliitin. Virtageneraattorin (RTD) käyttämä LED. Analogisen kortin johdotus korvaa LED -valon.
Vasemmassa reunassa oleva liitin on syöttöjännitettä varten. Oikealla olevat liittimet ovat instrumenttien syöttöä varten.
Vaihe 6: Asentaminen
Kaikki näyttää sopivan. Käytin silikonia pitämään joitain tavaroita tilapäisesti yhdessä. Leikkausastia on silikonitettu oikeassa yläkulmassa. Pieni reikä porattiin etukäteen. Voin säätää virtaa laatikon yläosasta.
Vaihe 7: Vain valokuvia
Vaihe 8: Viimeiset sanat
Olen testannut tämän laitteen lähtöä Allan Bradley PLC: llä. Tulokset olivat erittäin hyviä. Sain täyden valikoiman. Olen myös testannut tätä laitetta 4-20mA paineanturilla, jossa on sisäänrakennettu LCD-näyttö. Tulokset olivat jälleen erittäin hyviä. Lukemaani katkaistiin pari desimaalia.
Kirjoitan arduino -koodini välilehdille. PLC: ssä niitä kutsutaan alirutiiniksi. Helpottaa virheenkorjausta.
Liitteenä on näiden välilehtien tekstitiedostot.
Suositeltava:
Hallitse talon valoja Google Assistantin avulla Arduinon avulla: 7 vaihetta
Hallitse talon valoja Google Assistantin avulla Arduinon avulla: (Päivitys 22.8.2020: Tämä ohje on 2 vuotta vanha ja perustuu joihinkin kolmansien osapuolien sovelluksiin. Kaikki heidän puolellaan tehdyt muutokset saattavat tehdä projektista toimimattoman. Se voi olla tai ei työskentele nyt, mutta voit seurata sitä viitteenä ja muokata sen mukaan
Arduinon ohjelmointi toisen Arduinon avulla vieritettävän tekstin näyttämiseksi ilman kirjastoa: 5 vaihetta
Arduinon ohjelmointi toisen Arduinon avulla vieritettävän tekstin näyttämiseksi ilman kirjastoa: Sony Spresense tai Arduino Uno eivät ole niin kalliita eivätkä vaadi paljon virtaa. Jos projektillasi on kuitenkin virtaa, tilaa tai jopa budjettia, voit harkita Arduino Pro Minin käyttöä. Toisin kuin Arduino Pro Micro, Arduino Pro Mi
Ohjaa lediä kaikkialla maailmassa Internetin avulla Arduinon avulla: 4 vaihetta
Ohjaa johtoa ympäri maailmaa Internetin avulla Arduinon avulla: Hei, olen Rithik. Aiomme tehdä Internet -ohjattavan ledin puhelimellasi. Aiomme käyttää ohjelmistoja, kuten Arduino IDE ja Blynk. Se on yksinkertainen ja jos onnistuit, voit hallita niin monta elektronista komponenttia kuin haluat Asioita, joita tarvitsemme: Laitteisto:
Langaton kaukosäädin käyttäen 2,4 GHz: n NRF24L01 -moduulia Arduinon kanssa - Nrf24l01 4 -kanavainen / 6 -kanavainen lähettimen vastaanotin nelikopterille - Rc -helikopteri - Rc -taso Arduinon avulla: 5 vaihetta (kuvilla)
Langaton kaukosäädin käyttäen 2,4 GHz: n NRF24L01 -moduulia Arduinon kanssa | Nrf24l01 4 -kanavainen / 6 -kanavainen lähettimen vastaanotin nelikopterille | Rc -helikopteri | Rc -lentokone Arduinon avulla: Rc -auton käyttö | Nelikopteri | Drone | RC -taso | RC -vene, tarvitsemme aina vastaanottimen ja lähettimen, oletetaan, että RC QUADCOPTER -laitteelle tarvitaan 6 -kanavainen lähetin ja vastaanotin, ja tämäntyyppinen TX ja RX on liian kallista, joten teemme sellaisen
Generaattori - DC -generaattori Reed -kytkimellä: 3 vaihetta
Generaattori - tasavirtageneraattori Reed -kytkimellä: Yksinkertainen tasavirtageneraattori Tasavirtageneraattori on sähkökone, joka muuntaa mekaanisen energian tasavirtasähköksi Tärkeää: Tasavirtageneraattoria voidaan käyttää tasavirtamoottorina ilman rakenteellisia muutokset