Orodha ya maudhui:

4-20ma Generator / Tester Kutumia Arduino: 8 Hatua
4-20ma Generator / Tester Kutumia Arduino: 8 Hatua

Video: 4-20ma Generator / Tester Kutumia Arduino: 8 Hatua

Video: 4-20ma Generator / Tester Kutumia Arduino: 8 Hatua
Video: How to use Mosfet Optocoupled HW-532 to control up to 30V DC Motor Speed or load using Arduino 2024, Novemba
Anonim
4-20ma Generator / Tester Kutumia Arduino
4-20ma Generator / Tester Kutumia Arduino

Jenereta 4-20mA zinapatikana kwenye ebay, lakini mimi kwa moja napenda sehemu ya vitu ya DIY na kutumia sehemu ambazo nimeweka karibu.

Nilitaka kujaribu pembejeo za Analog za PLC ili kudhibitisha usomaji wetu wa scada na kujaribu pato la vyombo vya 4-20mA. Kuna anuwai ya wageuzi wa sasa wa voltage na voltage kwa waongofu wa sasa wa arduino kwenye ebay, wanahitaji usawazishaji ingawa. Ninaweza kutumia hii kusawazisha yoyote ya waongofu wale wanaopatikana kwenye ebay na kama.

Niliamua kuwa nitafanya DIY jenereta na tester. Kwa wakati huu kwa wakati bado ni kazi inayoendelea na mfano.

Nilikuwa na mfumo wa sauti wa zamani wa 2.1 ambao haukutumiwa (spika ndogo). Kwa hivyo nilitumia sanduku moja la spika kama kiambata. Pia nilikuwa na kipaza sauti kilichokufa kwa sababu ya umeme, niliondoa kituo cha spika kutoka kwa kipaza sauti ili kuunganisha upepo. Nina nia ya kutengeneza PCB katika siku zijazo na kiambatisho bora.

Ugavi:

Orodha ya Sehemu.

LCD // 20x4 (badilisha nambari ikiwa yako ni ndogo)

Mdhibiti wa LM7808 // 8volt

LED // Aina yoyote au saizi

Resistor kwa LED // Inafaa kwa aina ya LED na 8volt

100 ohm resistor + 47 ohm resistor in series // Itatumika kama shunt resistor

Kinga ya 10K // Analog ya Arduino katika kinga dhidi ya voltage kubwa

Kontena la 22K // Kuacha A0 isielea

Trimpot 100 ohm + 47 ohm resistor katika mfululizo // simulator PT100

Volt capacitor 35 // nilitumia 470uF, ili tu kushuka kwa kushuka kwa usambazaji wa voltage

RTD (PT100 transducer) // Span haijalishi (masafa)

DIODE (kwa ulinzi wa polarity)

INA219

Arduino

Hatua ya 1:

Picha
Picha

Kufuatia mpango lazima uanze juu ya wapi kuongeza sehemu na kuzitia waya.

LM7808 inaruhusu kiwango cha juu cha pembejeo 25 ambazo ni sawa kwa mifumo ya PLC, kwa ujumla hutumia umeme wa 24volt. Ongeza heatsink kwa mdhibiti na usitumie kwa muda mrefu. Kuacha 16volts husababisha mdhibiti atoe joto nyingi.

Ugavi wa pembejeo unalisha mdhibiti na unaunganisha na INA219 VIN, katika usanidi huu INA219 pia itaweza kupima voltage sahihi ya usambazaji ikitoa kushuka kwa voltage kutoka diode. Unapaswa kupima kushuka kwa voltage ya diode na kuiongeza kwa nambari ili upate usomaji sahihi wa usambazaji wa voltage.

Kutoka kwa INA219 VOUT hadi RTD + inawezesha RTD. RTD- hadi ardhini inakamilisha mzunguko.

Ili kujaribu kadi ya analoji ya PLC ungeunganisha RTD- na pembejeo kwenye kadi ya analog na ardhi kutoka kwa kadi hadi arduino. (Hakikisha kukata kifaa chochote kilichoshikamana na kituo kinachojaribiwa).

R5 na LED1, ikionyesha mfumo umewezeshwa.

Mdhibiti hulisha ndani ya VIN ya arduino (arduino imejengwa kwa mdhibiti hadi 5volts).

Pini ya Arduino 5V huenda kwa INA219 kuwezesha chip kwenye bodi. INA219 GND kwa arduino ardhini.

Punguza bomba la sufuria kwa RTD PIN1 na Punguza sufuria 3 hadi RTD siri 2 itaiga unganisho la PT100. (Badili waya ikiwa kugeuza sufuria ndogo kwa saa hakuongeza mA).

Hatua ya 2: Jaribio la Pato la Ala

Ili kupima vifaa vya ziada vya vifaa vinahitajika, kama kontena la shunt. Vipinga vya kawaida vya 0.25W vitafanya kazi vizuri. Unaweza kuondoka kwa kontena la shunt na uongeze INA219 ya pili kujaribu pato la chombo. Nilibaki na moja tu kwa hivyo nilitumia kipinga badala yake.

Kujaribu kutumia shunt kunaweza kufanywa tu kwa upande hasi wa kifaa. Ikiwa unatumia upande mzuri utasambaza arduino yako kwa zaidi ya mara 4 ya voltage inayoruhusiwa na acha moshi utoke.

Ongeza kontena la shunt katika safu na waya hasi wa chombo. Upande wa shunt iliyo karibu na kifaa itakuwa mfano mzuri wa arduino. Upande wa pili wa shunt iliyo karibu na usambazaji wa umeme itakuwa ardhi ya arduino inayokamilisha mzunguko wa pembejeo ya analog.

150 ohm shunt resistor ni kiwango cha juu kabisa ambacho kinapaswa kutumiwa wakati wa kutumia arduino. Kinzani ina laini ya kushuka kwa voltage kwa mA inayopita ndani yake. Kadiri mA inavyozidi kuwa kubwa voltage.

Kwa 20mA ya sasa # 150ohm * 0.02A = 3volt kwa arduino.

Saa 4mA sasa # 150ohm * 0.004A = 0.6volt kwa arduino.

Sasa unaweza kutaka voltage iwe karibu na volts 5 ili uweze kutupatia safu kamili ya ADC ya arduino. (Sio wazo zuri).

RTD inaweza kufikia pato la 30.2mA (Mgodi hufanya). 150ohm * 0.03A = 4.8 volt. Hiyo ni karibu kama vile ningependa kuwa.

Tovuti nyingine imeonyeshwa kutumia kontena la 250ohm.

Kwa 20mA ya sasa # 250ohm * 0.02A = 5volt kwa arduino.

Kwa sasa 30mA # 250ohm * 0.03A = 7.5volt kwa arduino.

Una hatari ya kuchoma ADC yako na arduino.

Ili kujaribu chombo nje ya uwanja, chukua betri ya 12volt na wewe na uiunganishe na pembejeo la usambazaji. Kutumia chanzo cha nguvu cha nje hakitaathiri usanidi wa sasa wa PLC.

Ili kujaribu kadi ya kuingiza analog kwenye uwanja, chukua betri ya 12volt nawe. Tenganisha chombo + kutoka kwa mzunguko. Unganisha ardhi na ardhi na RTD- kwa waya ya kifaa iliyokatika.

Hatua ya 3: Usawazishaji

Upimaji
Upimaji

Ili usimamishe usomaji wako wa kipinga cha shunt, waya RTD- kwa Analog ya shunt in. Weka sufuria yako ndogo ili mA iliyotengenezwa iwe 4mA. Ikiwa kifaa chako mA si sawa basi badilisha thamani ya kwanza kwenye nambari kwenye laini ya 84. Kuongeza thamani hii kutapunguza usomaji wa mA.

Kisha weka sufuria yako ndogo ili kuzalisha 20mA. Ikiwa kifaa chako mA si sawa basi badilisha thamani ya pili kwenye nambari kwenye laini ya 84.

Kwa hivyo 4-20mA yako sasa itakuwa 0.6-3volts (kinadharia). Zaidi ya masafa ya kutosha. Kutumia maktaba kutoka eRCaGuy, kupindukia utakupa usomaji bora na thabiti.

Tunatumahi kuwa umesoma hii. Huu ndio mafunzo yangu ya kwanza, kwa hivyo tafadhali chukua ikiwa nimefanya makosa mahali fulani au nimeacha kitu nje.

Mradi huu labda sio njia bora ya kwenda juu yake, lakini inanifanyia kazi na ilikuwa ya kufurahisha kuifanya.

Mawazo mengine ninayo ya ziada…

Ongeza servo ili kuzungusha sufuria ndogo ndani ya sanduku.

Ongeza vifungo vya kushinikiza ili kuzungusha servo kushoto au kulia.

Ongeza sensorer ya joto ya dijiti kwa mdhibiti wa heatsink kuonya kwa joto hatari.

Hatua ya 4: Kupanga Arduino

# pamoja

// # pamoja na // Kutosheleza ikiwa unatumia LCD na rejista ya zamu.

# pamoja

# pamoja

# pamoja

# pamoja

// A4 = (SDA)

// A5 = (SCL)

Adafruit_INA219 ina219;

LiquidCrystal LCD (12, 11, 5, 4, 3, 2);

// LCD ya LiquidCrystal_SR (3, 4, 2); // Uncomment ikiwa unatumia LCD na rejista ya mabadiliko.

// | | | _ Pini ya Latch

// | / _ Saa ya Saa

// / _ Takwimu / Wezesha Pin

byte bitsOfResolution = 12; // aliamuru azimio kubwa

nambari ndefu ambazo hazijasainiwaSampuliToAvg = 20; // idadi ya sampuli KATIKA UAMUZI ULIOPITILIWA ambao unataka kuchukua na wastani

ADC_prescaler_t ADCSpeed = ADC_DEFAULT;

unsigned muda mrefu uliopitaMillis = 0;

kuelea shuntvoltage = 0.0; // Kutoka INA219

kuelea busvoltage = 0.0; // Kutoka INA219

kuelea sasa_mA = 0.0; // Kutoka INA219

mzigo wa kuelea = 0.0; // Kutoka INA219

kuelea arduinovoltage = 0.0; // Hesabu ya Voltage kutoka kwa pini A0

Kusoma kwa muda mrefu A0analogReading = 0;

byte analogIn = A0;

kuelea ma_mapped = 0.0; // Voltage ya Ramani kutoka A0 hadi 4-20mA

usanidi batili () {

adc.setADCSpeed (ADCSpeed);

adc.setBitsOfResolution (bitsOfResolution);

adc.setNumSamplesToAvg (numSampuliToAvg);

uint32_t currentFrequency;

ina219. anza ();

uzani219.setCalibration_32V_30mA (); // Maktaba iliyobadilishwa kwa usahihi zaidi juu ya mA

lcd kuanza (20, 4); // kuanzisha LCD

lcd wazi ();

lcd.home (); // nenda nyumbani

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

kuchelewa (2000);

lcd wazi ();

}

kitanzi batili ()

{

unsigned long longMillis = millis ();

muda mrefu wa const = 100;

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

Soma vifaa vya I2C kwa vipindi na fanya mahesabu

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

ikiwa (sasaMillis - uliopitaMillis> = muda) {

previousMillis = currentMillis;

Muda ();

}

Chapisha_To_LCD (); // Labda siitaji kusasisha LCD haraka sana na inaweza kuhamishiwa chini ya muda ()

}

utupu

Muda () {

shuntvoltage = ina219.getShuntVoltage_mV ();

busvoltage = ina219. getBusVoltage_V ();

sasa_mA = ina219. pataCurrent_mA ();

mzigo wa umeme = (busvoltage + (shuntvoltage / 1000)) + 0.71; // +0.71 ni kushuka kwa voltage yangu ya diode

A0analogReading = adc.newAnalogRead (AnalogIn);

arduinovoltage = (5.0 * A0analogReading); // Imehesabiwa kwa mV

ma_mapped = ramani (arduinovoltage, 752, 8459, 30, 220) / 10.0; // Ramani haiwezi kutumia kuelea. Ongeza 0 nyuma ya thamani iliyopangwa na ugawanye na 10 kupata kusoma kwa kuelea.

// Ramani kutoka kwa hesabu ya voltage inatoa usomaji thabiti zaidi kisha kutumia usomaji wa adc mbichi.

ikiwa (shuntvoltage> = -0.10 && shuntvoltage <= -0.01) // Bila mzigo INA219 huwa inasoma chini ya -0.01, vizuri mgodi hufanya.

{

sasa_mA = 0;

umeme wa basi = 0;

mzigo wa mzigo = 0;

shuntvoltage = 0;

}

}

utupu

Chapisha_To_LCD () {

lcd.setCursor (0, 0);

ikiwa (ma_mapped <1.25) {// Bila sasa hii ni kusoma kwangu kwa mA, kwa hivyo mimi huiondoa tu.

lcd.print ("* 4-20mA Jenereta *");

}

mwingine {

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

}

lcd.setCursor (0, 1);

lcd.print ("Kifaa:");

lcd.setCursor (10, 1);

ikiwa (imechorwa <1.25) {

lcd.print ("hakuna kifaa");

}

mwingine {

lcd.print (ma_mapped);

}

lcd.print ("mA");

lcd.setCursor (0, 2);

lcd.print ("Tengeneza:");

lcd.setCursor (10, 2);

lcd.print (sasa_mA);

lcd.print ("mA");

lcd.setCursor (0, 3);

lcd.print ("Ugavi:");

lcd.setCursor (10, 3);

lcd.print (mzigo wa umeme);

lcd.print ("V");

}

Hatua ya 5: Picha zingine zaidi

Picha zingine zaidi
Picha zingine zaidi

Kituo cha spika cha kipaza sauti. LED inayoendeshwa na jenereta ya sasa (RTD). Wiring ya kadi ya Analog itachukua nafasi ya LED.

Kituo upande wa kushoto zaidi ni kwa pembejeo za usambazaji. Vituo upande wa kulia ni vya kuingiza vifaa.

Hatua ya 6: Kuingia ndani

Inafaa
Inafaa

Kila kitu kinaonekana kutoshea. Nilitumia silicone kushikilia vitu kadhaa kwa muda. Sufuria ya trim imefunikwa kulia juu. Shimo ndogo ilitanguliwa. Ninaweza kurekebisha sasa kutoka juu ya sanduku.

Hatua ya 7: Picha tu

Picha tu
Picha tu
Picha tu
Picha tu
Picha tu
Picha tu
Picha tu
Picha tu

Hatua ya 8: Maneno ya Mwisho

Nimejaribu pato la kifaa hiki na Allan Bradley PLC. Matokeo yalikuwa mazuri sana. Nimepima anuwai kamili pia nimejaribu kifaa hiki na sensor ya shinikizo la 4-20mA ambayo imejengwa katika onyesho la LCD. Tena matokeo yalikuwa mazuri sana. Usomaji wangu ulizimwa na desimali kadhaa.

Ninaandika nambari yangu ya arduino kwenye tabo. Katika PLC wanaitwa utaratibu mdogo. Inafanya utatuaji rahisi kwa yangu.

Imeambatanishwa ni faili za maandishi za tabo hizo.

Ilipendekeza: