Turinys:
- 1 žingsnis:
- 2 žingsnis: prietaiso išvesties testas
- 3 žingsnis: kalibravimas
- 4 žingsnis: „Arduino“programavimas
- 5 žingsnis: dar keletas nuotraukų
- 6 žingsnis: Įdėkite
- 7 žingsnis: Tiesiog nuotraukos
- 8 žingsnis: paskutiniai žodžiai
Video: 4-20ma generatorius/testeris naudojant „Arduino“: 8 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
4–20 mA generatoriai yra prieinami „ebay“, bet man labai patinka „pasidaryk pats“dalis ir naudoju turimas dalis.
Norėjau išbandyti mūsų PLC analogines įvestis, kad patikrintume „scada“rodmenis ir išbandytume 4–20 mA instrumentų išvestį. „Ebay“yra daugybė srovės ir įtampos keitiklių ir įtampos į srovę keitiklių, skirtų „arduino“, tačiau juos reikia kalibruoti. Aš galiu tai naudoti norėdamas sukalibruoti bet kurį iš tų keitiklių, rastų „ebay“ir panašiai.
Aš nusprendžiau pasidaryti generatorių ir testerį. Šiuo metu tai vis dar nebaigtas darbas ir prototipas.
Turėjau seną 2.1 garso sistemą, kuri nebuvo naudojama (maži garsiakalbiai). Taigi aš naudoju vieną iš garsiakalbių dėžių kaip korpusą. Aš taip pat turėjau stiprintuvą, kuris mirė dėl žaibo, pašalinau garsiakalbio gnybtą iš to stiprintuvo, kad būtų lengviau prisijungti. Ateityje ketinu pagaminti PCB ir geresnį korpusą.
Priedai:
Dalių sąrašas.
LCD // 20x4 (pritaikykite kodą, jei jūsų yra mažesnis)
LM7808 // 8 voltų reguliatorius
LED // Bet kokio tipo ar dydžio
LED rezistorius // Tinka LED tipui ir 8 voltų
100 omų rezistorius + 47 omų serijos rezistorius // Bus naudojamas kaip šunto rezistorius
10K rezistorius // „Arduino“analogas, apsaugantis nuo aukštos įtampos
22K rezistorius // Norėdami sustabdyti A0 plaukimą
Trimpot 100 omų + 47 omų rezistorius serijiniu būdu // PT100 simuliatorius
35 voltų kondensatorius // Aš naudojau 470uF, kad maitinimo įtampa nesikeistų
RTD (PT100 keitiklis) // Atstumas nesvarbu (diapazonas)
DIODAS (apsaugai nuo poliškumo)
INA219
Arduino
1 žingsnis:
Vadovaudamiesi schema turėtumėte pradėti nuo to, kur pridėti dalis ir prijungti juos.
LM7808 leidžia įvesti ne daugiau kaip 25 voltų įtampą, o tai puikiai tinka PLC sistemoms, paprastai jos naudoja 24 voltų maitinimo šaltinius. Pridėkite radiatorių prie reguliatoriaus ir nenaudokite jo ilgą laiką. Nuleidus 16 voltų, reguliatorius sukuria daug šilumos.
Įvesties maitinimas maitina reguliatorių ir jungiasi prie INA219 VIN, šioje konfigūracijoje INA219 taip pat galės išmatuoti teisingą maitinimo įtampą, atėmus įtampos kritimą iš diodo. Turėtumėte išmatuoti diodo įtampos kritimą ir pridėti jį prie kodo, kad gautumėte teisingą maitinimo įtampos rodmenį.
Nuo INA219 VOUT iki RTD+ įjungia RTD. RTD- įžeminimas užbaigia grandinę.
Norėdami išbandyti PLC analoginę kortelę, turite prijungti RTD prie analoginės kortelės įvesties ir įžeminti nuo kortelės iki arduino įžeminimo. (Būtinai atjunkite visus prie bandomo kanalo prijungtus instrumentus).
R5 ir LED1, rodantys, kad sistema įjungta.
Reguliatorius tiekiamas į arduino VIN („arduino“turi įmontuotą 5 voltų reguliatorių).
„Arduino 5V“kaištis eina į INA219, kad maitintų įmontuotą mikroschemą. INA219 GND į arduino žemę.
Apipjaustymo puodo valytuvas prie RTD PIN1, o apipjaustymo puodo kaištis 3 - RTD kaištis 2 imituos PT100 jungtį. (Pakeiskite laidus, jei sukant apdailos puodą pagal laikrodžio rodyklę mA nepadidėja).
2 žingsnis: prietaiso išvesties testas
Norint patikrinti prietaiso išvestį, reikia papildomų dalių, tokių kaip šunto rezistorius. Įprasti 0,25 W rezistoriai puikiai atliks šį darbą. Galite palikti šunto rezistorių ir prie bandymo prietaiso išvesties pridėti antrą INA219. Man liko tik vienas, todėl vietoj to naudojau rezistorių.
Bandymas naudojant šuntą gali būti atliekamas tik neigiamoje įrenginio pusėje. Jei naudosite teigiamą pusę, jūs aprūpinsite savo arduino daugiau nei 4 kartus leistina įtampa ir išleisite dūmus.
Prijunkite šunto rezistorių nuosekliai su neigiamu prietaiso laidu. Arčiausiai įrenginio esanti šunto pusė taps teigiamu arduino analogu. Kita arčiausiai maitinimo šaltinio esanti šunto pusė taps arduino įžeminimu, užbaigiančiu analoginę įvesties grandinę.
150 omų šunto rezistorius yra absoliutus maksimumas, kuris turėtų būti naudojamas naudojant arduino. Rezistoriaus įtampos kritimas yra linijinis per jį tekančiam mA. Kuo didesnė mA, tuo didesnė įtampa.
Esant 20 mA srovei # 150ohm*0,02A = 3 voltai iki arduino.
Esant 4mA srovei # 150ohm*0,004A = 0,6 volto iki arduino.
Dabar galbūt norėsite, kad įtampa būtų arčiau 5 voltų, kad galėtumėte mums naudotis visu arduino ADC diapazonu. (Nebloga mintis).
MTTP gali pasiekti 30,2 mA išėjimą (mano). 150 omų*0,03A = 4,8 voltai. Tai taip arti, kaip norėčiau būti.
Kita svetainė nurodė naudoti 250 omų rezistorių.
Esant 20 mA srovei # 250ohm*0,02A = 5 voltai iki arduino.
Esant 30 mA srovei # 250ohm*0,03A = 7,5 volto iki arduino.
Jūs rizikuojate sudeginti savo ADC ir arduino.
Norėdami išbandyti instrumentą lauke, pasiimkite su savimi 12 voltų bateriją ir prijunkite ją prie maitinimo šaltinio. Išorinio maitinimo šaltinio naudojimas neturės įtakos dabartinei PLC sąrankai.
Norėdami išbandyti analoginę įvesties kortelę lauke, pasiimkite su savimi 12 voltų bateriją. Atjunkite prietaisą + nuo grandinės. Prijunkite įžeminimą prie prietaiso įžeminimo ir RTD- prie atjungto prietaiso laido.
3 žingsnis: kalibravimas
Norėdami sukalibruoti šunto rezistoriaus rodmenis, prijunkite RTD- prie šunto analoginio įvesties. Nustatykite apdailos puodą taip, kad generuojama mA būtų 4 mA. Jei jūsų prietaiso mA nėra lygus, pakeiskite pirmąją kodo reikšmę 84. eilutėje. Padidinus šią vertę, mA rodmuo sumažės.
Tada nustatykite apdailos puodą taip, kad generuotų 20 mA. Jei jūsų prietaiso mA nėra lygus, pakeiskite antrąją kodo reikšmę 84 eilutėje.
Taigi jūsų 4-20 mA dabar taps 0,6-3 voltais (teorinis). Daugiau nei pakankamai diapazonas. Naudojant „eRCaGuy“biblioteką, per didelis mėginių ėmimas suteiks jums geresnį ir stabilesnį rodmenį.
Tikimės, kad tai perskaitysite. Tai pirmas mano pamokomas dalykas, todėl prašau nusiraminti, jei kažkur suklydau ar ką nors praleidau.
Šis projektas tikriausiai nėra geriausias būdas tai padaryti, bet man tai tinka ir buvo smagu tai padaryti.
Turiu papildomų idėjų…
Pridėkite servo, kad pasuktumėte apdailos puodą dėžutės viduje.
Norėdami pasukti servo kairę arba dešinę, pridėkite mygtukus.
Pridėkite skaitmeninį temperatūros jutiklį prie reguliatoriaus radiatoriaus, kad įspėtumėte apie pavojingą karštį.
4 žingsnis: „Arduino“programavimas
#įtraukti
// #include // Atminkite, jei naudojate LCD su pamainų registru.
#įtraukti
#įtraukti
#įtraukti
#įtraukti
// A4 = (SDA)
A5 = (SCL)
Adafruit_INA219 ina219;
„LiquidCrystal lcd“(12, 11, 5, 4, 3, 2);
// LiquidCrystal_SR lcd (3, 4, 2); // Nekomentuokite, jei naudojate LCD su pamainų registru.
// | | | _ Užrakto kaištis
// | / _ Laikrodžio kaištis
// / _ Data/Enable Pin
baitų bitaiOfResolution = 12; // įsakyta perteklinė raiška
nepasirašytas ilgas numSamplesToAvg = 20; // mėginių, kuriuos norite paimti, pavyzdžių skaičius, kurį norite paimti, ir vidurkis
ADC_prescaler_t ADCSpeed = ADC_DEFAULT;
unsigned long previousMillis = 0;
plūdės šuntinė įtampa = 0,0; // Iš INA219
plūdės magistralės įtampa = 0,0; // Iš INA219
plūdės srovė_mA = 0,0; // Iš INA219
plūdės apkrovos įtampa = 0,0; // Iš INA219
plūdės arduinovoltage = 0,0; // Įtampos apskaičiavimas iš A0 kaiščio
Nepasirašytas ilgas A0analogReading = 0;
baitų analogasIn = A0;
float ma_mapped = 0.0; // Žemėlapio įtampa nuo A0 iki 4-20mA
void setup () {
adc.setADCSpeed (ADCSpeed);
adc.setBitsOfResolution (bitsOfResolution);
adc.setNumSamplesToAvg (numSamplesToAvg);
uint32_t currentFrequency;
ina219.begin ();
ina219.setCalibration_32V_30mA (); // Modifikuota biblioteka, skirta didesniam mA tikslumui
LCD. pradžia (20, 4); // inicijuoti LCD ekraną
lcd.clear ();
lcd.home (); // eik namo
lcd.print ("*******************");
vėlavimas (2000 m.);
lcd.clear ();
}
tuštumos kilpa ()
{
nepasirašyta ilga srovėMillis = milis ();
const ilgas intervalas = 100;
//&&&&&&&&&&&&&&&&&
Retkarčiais perskaitykite I2C įrenginius ir atlikite kai kuriuos skaičiavimus
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if (currentMillis - previousMillis> = intervalas) {
previousMillis = dabartinisMillis;
Intervalas ();
}
Print_To_LCD (); // Man tikriausiai nereikia taip greitai atnaujinti LCD ir jį galima perkelti į žemiau Interval ()
}
tuštuma
Intervalas () {
shuntvoltage = ina219.getShuntVoltage_mV ();
magistralės įtampa = ina219.getBusVoltage_V ();
current_mA = ina219.getCurrent_mA ();
apkrovos įtampa = (magistralės įtampa + (šuntinė įtampa / 1000)) + 0,71; // +0,71 yra mano diodo įtampos kritimas
A0analogReading = adc.newAnalogRead (analogIn);
arduinovoltage = (5,0 * A0analogReading); // Apskaičiuota iki mV
ma_mapped = žemėlapis (arduinovoltage, 752, 8459, 30, 220) / 10,0; // Žemėlapyje negalima naudoti plūdžių. Už pridėtos vertės pridėkite 0 ir padalinkite iš 10, kad gautumėte plūdės rodmenis.
// Susiejimas pagal įtampos apskaičiavimą suteikia stabilesnį rodmenį, nei naudojant neapdorotą ADC rodmenį.
jei (šuntinė įtampa> = -0,10 && šuntinė įtampa <= -0,01) // Be apkrovos INA219 yra linkęs skaityti žemiau -0,01, gerai mano.
{
srovės_mA = 0;
magistralės įtampa = 0;
apkrovos įtampa = 0;
šuntinė įtampa = 0;
}
}
tuštuma
Print_To_LCD () {
lcd.setCursor (0, 0);
if (ma_mapped <1.25) {// Jei nėra srovės, tai yra mano mA rodmuo, todėl aš jį tiesiog atkišu.
lcd.print (" * 4-20mA generatorius *");
}
Kitas {
lcd.print ("** Analoginis testeris **");
}
lcd.setCursor (0, 1);
lcd.print ("Įrenginys:");
lcd.setCursor (10, 1);
if (susieta <1,25) {
lcd.print ("nėra įrenginio");
}
Kitas {
lcd.print (susieta);
}
lcd.print ("mA");
lcd.setCursor (0, 2);
lcd.print ("Sukurti:");
lcd.setCursor (10, 2);
lcd.print (dabartinis_mA);
lcd.print ("mA");
lcd.setCursor (0, 3);
lcd.print ("Tiekimas:");
lcd.setCursor (10, 3);
lcd.print (apkrovos įtampa);
lcd.print ("V");
}
5 žingsnis: dar keletas nuotraukų
Stiprintuvo garsiakalbio terminalas. Šviesos diodas, varomas srovės generatoriaus (RTD). Analoginės kortelės laidai pakeis šviesos diodą.
Gnybtas kairėje yra skirtas tiekimui. Gnybtai dešinėje yra skirti įvesti prietaisą.
6 žingsnis: Įdėkite
Viskas lyg ir tinka. Naudojau silikoną, kad laikinai laikyčiau kai kuriuos daiktus. Apdailos puodelis yra silikonuotas viršuje dešinėje. Buvo išgręžta maža skylė. Galiu reguliuoti srovę iš dėžutės viršaus.
7 žingsnis: Tiesiog nuotraukos
8 žingsnis: paskutiniai žodžiai
Aš išbandžiau šio įrenginio išvestį su „Allan Bradley PLC“. Rezultatai buvo labai geri. Aš gavau visą diapazoną. Aš taip pat išbandžiau šį įrenginį su 4-20 mA slėgio jutikliu, turinčiu įmontuotą LCD ekraną. Vėlgi rezultatai buvo labai geri. Mano rodmenis nutraukė pora kablelių.
Skirtukuose rašau savo arduino kodą. PLC jie vadinami papildoma tvarka. Man palengvina derinimą.
Pridedami tų skirtukų teksto failai.
Rekomenduojamas:
Orų muzikos generatorius (ESP8266 pagrįstas Midi generatorius): 4 žingsniai (su nuotraukomis)
Orų muzikos generatorius (ESP8266 pagrįstas Midi generatorius): Sveiki, šiandien paaiškinsiu, kaip susikurti savo mažą orų muzikos generatorių. Jis pagrįstas ESP8266, kuris yra tarsi „Arduino“ir reaguoja į temperatūrą, lietų ir šviesos intensyvumas. Nesitikėkite, kad tai sukels visas dainas ar akordų programą
Generatorius - nuolatinės srovės generatorius naudojant „Reed“jungiklį: 3 žingsniai
Generatorius - nuolatinės srovės generatorius naudojant Reed jungiklį: paprastas nuolatinės srovės generatorius Nuolatinės srovės (DC) generatorius yra elektros mašina, kuri mechaninę energiją paverčia nuolatinės srovės elektros energija. Svarbu: nuolatinės srovės (DC) generatorius gali būti naudojamas kaip nuolatinės srovės variklis be jokių konstrukcinių konstrukcijų pokyčiai
IC testeris, stiprintuvas, 555 laikmačio testeris: 3 žingsniai
„IC Tester“, „Op-Amp“, 555 laikmačio testeris: visi blogi arba pakaitiniai IC yra aplink, bet jei jie sumaišomi vienas su kitu, užtrunka daug laiko, kad būtų galima nustatyti blogą ar gerą. Šiame straipsnyje mes sužinome, kaip galime sukurti IC testeris, Tęskime
Tonų generatorius „Jimikky Kammal“naudojant „Arduino Pro Mini“: 5 žingsniai
Tonų generatorius „Jimikky Kammal“naudojant „Arduino Pro Mini“: Tai paprastas tonų generatoriaus projektas naudojant „Arduino Pro Mini“. Dalis superhito „Jimikky Kammal“filmo " Velipadinte Pusthakam " yra sukurtas monotoniškai. Muzikos natos gamtoje pasitaiko kaip sklandus ir besisukantis sinuso
Ličio jonų akumuliatoriaus talpos testeris (ličio galios testeris): 5 žingsniai
Ličio jonų akumuliatoriaus talpos testeris (ličio galios testeris): =========== ĮSPĖJIMAS & ATSISAKYMAS ========== Ličio jonų akumuliatoriai yra labai pavojingi, jei netinkamai su jais elgiamasi. NENAUDOKITE ĮKROVIMO / ĮDEGTI / ATIDARYTI ličio jonų šikšnosparnių. Viskas, ką darote naudodami šią informaciją, yra jūsų pačių rizika ====== ===================================