Satura rādītājs:
- 1. darbība:
- 2. darbība. Instrumentu izvades pārbaude
- 3. solis: kalibrēšana
- 4. solis: Arduino programmēšana
- 5. darbība. Vēl daži fotoattēli
- 6. solis: uzstādīšana
- 7. solis: tikai fotoattēli
- 8. solis: beigu vārdi
Video: 4-20ma ģenerators/testeris, izmantojot Arduino: 8 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
4-20mA ģeneratori ir pieejami ebay, bet man vienam patīk DIY lietu daļa un to detaļu izmantošana, kuras man ir apkārt.
Es gribēju pārbaudīt mūsu PLC analogās ieejas, lai pārbaudītu mūsu scada rādījumus un pārbaudītu 4-20 mA instrumentu izvadi. Ir daudz slodžu strāvas uz sprieguma pārveidotājiem un sprieguma uz strāvas pārveidotājiem arduino vietnē ebay, tomēr tiem nepieciešama kalibrēšana. Es varu to izmantot, lai kalibrētu jebkuru no šiem ebay atrodamajiem pārveidotājiem un tamlīdzīgiem.
Nolēmu, ka uztaisīšu ģeneratoru un testeri. Šobrīd tas vēl ir nepabeigts darbs un prototips.
Man bija veca 2.1 skaņas sistēma, kas netika izmantota (mazi skaļruņi). Tāpēc es izmantoju vienu no skaļruņu kastēm kā korpusu. Man bija arī pastiprinātājs, kas nomira zibens dēļ, es noņēmu skaļruņa spaili no šī pastiprinātāja, lai būtu vieglāk izveidot savienojumu. Es plānoju nākotnē izgatavot PCB un labāku korpusu.
Piegādes:
Detaļu saraksts.
LCD // 20x4 (pielāgojiet kodu, ja jūsu izmērs ir mazāks)
LM7808 // 8 voltu regulators
LED // Jebkura veida vai izmēra
LED rezistors // Piemērots LED tipam un 8 voltiem
100 omu rezistors + 47 omu rezistors virknē // Tiks izmantots kā šunta rezistors
10K rezistors // Arduino analogs aizsardzībā pret augstspriegumu
22K rezistors // Lai apturētu A0 peldēšanu
Trimpot 100 omi + 47 omi rezistors virknē // PT100 simulators
35 voltu kondensators // Es izmantoju 470uF, tikai lai samazinātu barošanas sprieguma svārstības
RTD (PT100 devējs) // Spānam nav nozīmes (diapazons)
DIODE (polaritātes aizsardzībai)
INA219
Arduino
1. darbība:
Ievērojot shēmu, jums vajadzētu sākt, kur pievienot detaļas un savienot tās.
LM7808 pieļauj maksimāli 25 voltu ieeju, kas ir labi PLC sistēmām, parasti tās izmanto 24 voltu barošanas avotus. Pievienojiet regulatoram radiatoru un nelietojiet to ilgu laiku. Nokrītot 16 voltiem, regulators rada daudz siltuma.
Ieejas padeve baro regulatoru un savienojas ar INA219 VIN, šajā konfigurācijā INA219 arī varēs izmērīt pareizo barošanas spriegumu, atskaitot sprieguma kritumu no diodes. Jums vajadzētu izmērīt diodes sprieguma kritumu un pievienot to kodam, lai iegūtu pareizu barošanas sprieguma rādījumu.
No INA219 VOUT līdz RTD+ ieslēdz RTD. RTD- zemei pabeidz ķēdi.
Lai pārbaudītu PLC analogo karti, pievienojiet RTD- analogās kartes ieejai un zemi no kartes līdz arduino zemei. (Noteikti atvienojiet visus instrumentus, kas pievienoti pārbaudāmajam kanālam).
R5 un LED1, kas norāda, ka sistēma ir ieslēgta.
Regulators tiek ievadīts arduino VIN (arduino ir iebūvēts regulators līdz 5 voltiem).
Arduino 5V tapa iet uz INA219, lai darbinātu borta mikroshēmu. INA219 GND uz arduino zemi.
Apgriešanas katla tīrītāju līdz RTD PIN1 un apgriešanas trauka tapu 3 līdz RTD tapai 2 simulēs PT100 savienojumu. (Nomainiet vadus, ja apdares trauka pagriešana pulksteņrādītāja virzienā nepalielina mA).
2. darbība. Instrumentu izvades pārbaude
Lai pārbaudītu instrumenta izeju, ir nepieciešamas papildu detaļas, piemēram, šunta rezistors. Parastie 0,25 W rezistori darīs darbu lieliski. Jūs varat atstāt šunta rezistoru un pievienot otru INA219, lai pārbaudītu instrumenta izvadi. Man palika tikai viens, tāpēc es izmantoju rezistoru.
Testēšanu, izmantojot šunti, var veikt tikai ierīces negatīvajā pusē. Ja izmantojat pozitīvo pusi, jūs piegādāsit arduino vairāk nekā 4 reizes lielāku pieļaujamo spriegumu un izlaidīsiet dūmus.
Pievienojiet šunta rezistoru virknē ar instrumenta negatīvo vadu. Šunta puse, kas atrodas vistuvāk ierīcei, kļūs par arduino pozitīvo analogu. Šunta otra puse, kas ir vistuvāk barošanas avotam, kļūs par arduino zemi, kas pabeidz analogās ieejas ķēdi.
150 omu šunta rezistors ir absolūtais maksimums, kas jāizmanto, izmantojot arduino. Rezistoram ir sprieguma kritums lineāri pret mA, kas plūst caur to. Jo lielāks mA, jo lielāks spriegums.
Pie 20mA strāvas # 150ohm*0,02A = 3 volti uz arduino.
Pie 4mA strāvas # 150ohm*0,004A = 0,6 volti uz arduino.
Tagad jūs varētu vēlēties, lai spriegums būtu tuvāk 5 voltiem, lai jūs varētu mums izmantot visu arduino ADC diapazonu. (Nav laba ideja).
PTA var sasniegt 30,2 mA izvadi (manējais). 150 omi*0,03A = 4,8 volti. Tas ir tik tuvu, kā es gribētu būt.
Cita vietne norādīja, ka jāizmanto 250 omu rezistors.
Pie 20mA strāvas # 250ohm*0,02A = 5 volti uz arduino.
Pie 30mA strāvas # 250ohm*0,03A = 7,5 volti uz arduino.
Jūs riskējat sadedzināt savu ADC un arduino.
Lai pārbaudītu instrumentu uz lauka, ņemiet līdzi 12 voltu akumulatoru un pievienojiet to barošanas ieejai. Ārēja barošanas avota izmantošana neietekmēs pašreizējo PLC iestatījumu.
Lai pārbaudītu analogo ievades karti laukā, ņemiet līdzi 12 voltu akumulatoru. Atvienojiet instrumentu + no ķēdes. Pievienojiet zemējumu instrumenta zemē un RTD- atvienotajam instrumenta vadam.
3. solis: kalibrēšana
Lai kalibrētu šunta rezistora rādījumus, pievienojiet RTD- šunta analogo ievadi. Iestatiet apdares podu tā, lai ģenerētā mA būtu 4 mA. Ja jūsu ierīces mA nav vienāds, mainiet 84. rindas koda pirmo vērtību. Palielinot šo vērtību, samazinās mA rādījums.
Pēc tam iestatiet apdares podu, lai ģenerētu 20 mA. Ja jūsu ierīces mA nav vienāds, mainiet otro vērtību kodā 84. rindā.
Tātad jūsu 4-20 mA tagad kļūs par 0,6-3 volti (teorētiski). Diapazons vairāk nekā pietiekams. Izmantojot bibliotēku no eRCaGuy, pārmērīga paraugu ņemšana nodrošinās labāku un stabilāku rādījumu.
Cerams, ka izlasījāt šo. Šī ir mana pirmā pamācība, tāpēc, lūdzu, mierīgi, ja esmu kaut kur pieļāvis kļūdu vai kaut ko izlaidis.
Šis projekts, iespējams, nav labākais veids, kā to īstenot, taču man tas darbojas un bija jautri to darīt.
Dažas idejas man ir papildus…
Pievienojiet servo, lai pagrieztu apdares podu kastes iekšpusē.
Pievienojiet spiedpogas, lai pagrieztu servo pa kreisi vai pa labi.
Pievienojiet regulatora radiatoram digitālo temperatūras sensoru, lai brīdinātu par bīstamu karstumu.
4. solis: Arduino programmēšana
#iekļaut
// #include // Uncomment, ja izmantojat LCD ar maiņu reģistru.
#iekļaut
#iekļaut
#iekļaut
#iekļaut
// A4 = (SDA)
A5 = (SCL)
Adafruit_INA219 ina219;
LiquidCrystal LCD (12, 11, 5, 4, 3, 2);
// LiquidCrystal_SR lcd (3, 4, 2); // Komentārs, ja izmantojat LCD ar maiņu reģistru.
// | | | _ fiksatora tapa
// | / _ Pulksteņa tapa
// / _ Data/Enable Pin
baitu bitiOfResolution = 12; // komandēja izšķirtspējas pārsniegumu
neparakstīts garš numSamplesToAvg = 20; // to paraugu skaits, kurus PĀRBAUDES PARĀDĪTĀ REZOLŪCIJĀ vēlaties ņemt, un vidējais
ADC_prescaler_t ADCSpeed = ADC_DEFAULT;
neparakstīts ilgi iepriekšMillis = 0;
pludiņa šunta spriegums = 0,0; // No INA219
pludiņa kopnes spriegums = 0,0; // No INA219
pludiņa strāva_mA = 0,0; // No INA219
pludiņa slodzes spriegums = 0,0; // No INA219
pludiņa arduinovoltage = 0.0; // Sprieguma aprēķins no A0 tapas
Neparakstīts garš A0analogReading = 0;
baitu analogIn = A0;
float ma_mapped = 0.0; // Kartes spriegums no A0 līdz 4-20mA
void setup () {
adc.setADCSpeed (ADCSpeed);
adc.setBitsOfResolution (bitsOfResolution);
adc.setNumSamplesToAvg (numSamplesToAvg);
uint32_t currentFrequency;
ina219.begin ();
ina219.setCalibration_32V_30mA (); // Modificēta bibliotēka, lai iegūtu lielāku precizitāti mA
lcd. sākums (20, 4); // inicializēt LCD
lcd.clear ();
lcd.home (); // ej mājās
lcd.print ("********************");
kavēšanās (2000);
lcd.clear ();
}
tukša cilpa ()
{
neparakstīta garā strāvaMillis = millis ();
const ilgs intervāls = 100;
//&&&&&&&&&&&&&&&&&
Intervālos lasiet I2C ierīces un veiciet dažus aprēķinus
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if (currentMillis - previousMillis> = intervāls) {
previousMillis = currentMillis;
Intervāls ();
}
Print_To_LCD (); // Man, iespējams, nav tik ātri jāatjaunina LCD, un to var pārvietot uz zemāku intervālu ()
}
spēkā neesošs
Intervāls () {
šunta spriegums = ina219.getShuntVoltage_mV ();
kopnes spriegums = ina219.getBusVoltage_V ();
pašreizējais_mA = ina219.getCurrent_mA ();
slodzes spriegums = (kopnes spriegums + (šunta spriegums / 1000)) + 0,71; // +0,71 ir mans diodes sprieguma kritums
A0analogReading = adc.newAnalogRead (analogIn);
arduinovoltage = (5,0 * A0analogReading); // Aprēķināts līdz mV
ma_mapped = karte (arduinovoltage, 752, 8459, 30, 220) / 10,0; // Kartē nevar izmantot pludiņus. Pievienojiet 0 aiz kartētās vērtības un daliet ar 10, lai iegūtu pludiņa nolasījumu.
// Kartēšana no sprieguma aprēķina nodrošina stabilāku rādījumu, nekā izmantojot neapstrādātu adc nolasījumu.
ja (šuntēšanas spriegums> = -0,10 && šunta spriegums <= -0,01) // Bez slodzes INA219 mēdz lasīt zemāk par -0,01, arī manējais.
{
strāvas_mA = 0;
kopnes spriegums = 0;
slodzes spriegums = 0;
šunta spriegums = 0;
}
}
spēkā neesošs
Print_To_LCD () {
lcd.setCursor (0, 0);
if (ma_mapped <1.25) {// Ja nav strāvas, tas ir mans mA rādījums, tāpēc es to vienkārši aizbāzu.
lcd.print (" * 4-20mA ģenerators *");
}
cits {
lcd.print ("** Analog Tester **");
}
lcd.setCursor (0, 1);
lcd.print ("Ierīce:");
lcd.setCursor (10, 1);
ja (kartēts <1,25) {
lcd.print ("nav ierīces");
}
cits {
lcd.print (kartēts);
}
lcd.print ("mA");
lcd.setCursor (0, 2);
lcd.print ("Ģenerēt:");
lcd.setCursor (10, 2);
lcd.print (current_mA);
lcd.print ("mA");
lcd.setCursor (0, 3);
lcd.print ("Piegāde:");
lcd.setCursor (10, 3);
lcd.print (slodzes spriegums);
lcd.print ("V");
}
5. darbība. Vēl daži fotoattēli
Pastiprinātāja skaļruņu terminālis. LED, ko darbina strāvas ģenerators (RTD). Analogās kartes vadi nomainīs LED.
Terminālis kreisajā pusē ir paredzēts barošanas ievadam. Termināļi labajā pusē ir paredzēti instrumentu ievadīšanai.
6. solis: uzstādīšana
Viss it kā der. Es izmantoju silikonu, lai īslaicīgi turētu kopā dažas lietas. Apdares pods ir silikonēts augšējā labajā stūrī. Iepriekš tika izurbts neliels caurums. Es varu pielāgot strāvu no kastes augšdaļas.
7. solis: tikai fotoattēli
8. solis: beigu vārdi
Esmu pārbaudījis šīs ierīces izvadi ar Allan Bradley PLC. Rezultāti bija ļoti labi. Man ir viss diapazons. Esmu arī pārbaudījis šo ierīci ar 4-20 mA spiediena sensoru, kuram ir iebūvēts LCD displejs. Atkal rezultāti bija ļoti labi. Manus rādījumus pārtrauca pāris cipari aiz komata.
Es rakstīju savu arduino kodu cilnēs. PLC tos sauc par apakšprogrammām. Man atvieglo atkļūdošanu.
Pievienoti šo cilņu teksta faili.
Ieteicams:
Mūzikas ģenerators uz laika apstākļiem (ESP8266 balstīts Midi ģenerators): 4 soļi (ar attēliem)
Mūzikas ģenerators uz laika apstākļiem (ESP8266 balstīts Midi ģenerators): Sveiki, šodien es paskaidrošu, kā izveidot savu mazo laika apstākļu mūzikas ģeneratoru. Tas ir balstīts uz ESP8266, kas ir kā Arduino, un tas reaģē uz temperatūru, lietu un gaismas intensitāte. Negaidiet, ka tas radīs visas dziesmas vai akordu programmu
Ģenerators - līdzstrāvas ģenerators, izmantojot Reed slēdzi: 3 soļi
Ģenerators - līdzstrāvas ģenerators, izmantojot Reed slēdzi: vienkāršs līdzstrāvas ģenerators Līdzstrāvas (DC) ģenerators ir elektriskā mašīna, kas mehānisko enerģiju pārvērš līdzstrāvas elektrībā. Svarīgi: līdzstrāvas (DC) ģeneratoru var izmantot kā līdzstrāvas motoru bez jebkādas konstrukcijas izmaiņas
IC testeris, op. Pastiprinātājs, 555 taimera testeris: 3 soļi
IC testeris, Op-Amp, 555 taimera testeris: visi slikti vai rezerves IC atrodas apkārt, bet, ja tie ir sajaukti viens ar otru, ir vajadzīgs daudz laika, lai identificētu slikto vai labo. Šajā rakstā mēs uzzinām par to, kā mēs varam izveidot IC testeris, Turpinām
Toņu ģenerators "Jimikky Kammal", izmantojot Arduino Pro Mini: 5 soļi
Toņu ģenerators "Jimikky Kammal", izmantojot Arduino Pro Mini: Šis ir vienkāršs toņu ģeneratora projekts, izmantojot Arduino Pro Mini. Daļa no super hit dziesmas " Jimikky Kammal " no filmas " Velipadinte Pusthakam " ir izstrādāts monotoniski. Mūzikas notis dabā parādās kā gluda un ritinoša sinusa
Litija jonu akumulatora jaudas testeris (litija jaudas testeris): 5 soļi
Litija jonu akumulatora jaudas testeris (litija jaudas testeris): =========== BRĪDINĀJUMS & ATRUNA ========== Li-Ion akumulatori ir ļoti bīstami, ja tos nepareizi apstrādā. NELIETOJIET LĀDĒT / DEDZINĀT / ATVĒRT litija jonu sikspārņus. Viss, ko jūs darāt, izmantojot šo informāciju, ir jūsu risks ====== =====================================