Kazalo:
- Korak 1:
- Korak: Preskus izhoda instrumenta
- 3. korak: Umerjanje
- 4. korak: Programiranje Arduina
- 5. korak: Še nekaj fotografij
- Korak 6: Namestitev
- 7. korak: samo fotografije
- 8. korak: Zadnje besede
Video: Generator/tester 4-20ma z uporabo Arduina: 8 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Generatorji 4-20mA so na voljo na ebayu, vendar imam rad del DIY in uporabo delov, ki jih imam naokoli.
Želel sem preizkusiti analogne vhode našega PLC-ja, da preverim odčitke scada in preizkusim izhod instrumentov 4-20mA. Na ebayu je veliko pretvornikov toka v napetost in pretvornikov napetosti v tok za arduino, vendar jih je treba umeriti. To lahko uporabim za umerjanje katerega koli od tistih pretvornikov, ki jih najdemo na ebayu in podobnih.
Odločil sem se, da bom DIY naredil generator in tester. V tem trenutku je še vedno v izdelavi in prototip.
Imel sem star 2.1 zvočni sistem, ki se ni uporabljal (majhni zvočniki). Zato sem eno od zvočniških omar uporabil kot ohišje. Imel sem tudi ojačevalnik, ki je umrl zaradi strele, s tega ojačevalnika sem odstranil priključek zvočnika, da sem povezal vetrič. V prihodnosti nameravam narediti PCB in boljše ohišje.
Zaloge:
Seznam delov.
LCD // 20x4 (prilagodite kodo, če je vaša manjša)
LM7808 // 8 -voltni regulator
LED // Vse vrste ali velikosti
Upor za LED // Primerno za tip LED in 8 voltov
100 ohmski upor + 47 ohmski upor v seriji // Uporablja se kot shunt upor
10K upor // Arduino analog v zaščiti pred visoko napetostjo
22K upor // Za ustavitev plavanja A0
Trimpot 100 ohmski + 47 ohmski upor v seriji // simulator PT100
35 -voltni kondenzator // Uporabil sem 470uF, samo zato, da zmanjšam nihanja napajalne napetosti
RTD (pretvornik PT100) // Razpon ni pomemben (razpon)
DIODA (za zaščito polarnosti)
INA219
Arduino
Korak 1:
Po shemi bi morali začeti, kam dodati dele in jih povezati.
LM7808 omogoča največ 25 voltnih vhodov, kar je v redu za sisteme PLC, običajno uporabljajo 24 -voltne napajalnike. Regulatorju dodajte hladilnik in ga ne uporabljajte dlje časa. Padec 16 voltov povzroči, da regulator proizvaja veliko toplote.
Vhodni vir napaja regulator in se poveže z VA INA219, v tej konfiguraciji bo lahko INA219 izmeril tudi pravilno napajalno napetost minus minus padec napetosti iz diode. Izmerite padec napetosti diode in ga dodajte kodi, da dobite pravilno odčitavanje napajalne napetosti.
Od INA219 VOUT do RTD+ napaja RTD. RTD- na zemljo zaključi vezje.
Če želite preizkusiti analogno kartico PLC, priključite RTD- na vhod na analogni kartici in ozemljitev od kartice do ozemljitve arduino. (Ne pozabite odklopiti vseh instrumentov, priključenih na preskušani kanal).
R5 in LED1, sistem za prikazovanje je vklopljen.
Regulator se napaja v arduino VIN (arduino ima vgrajen regulator na 5 voltov).
Arduino 5V pin gre na INA219 za napajanje vgrajenega čipa. INA219 GND na arduino tla.
Brisalec trim lonca na RTD PIN1 in trin pin 3 na RTD pin 2 bo simuliral povezavo PT100. (Zamenjajte žice, če obračanje okrasnega lonca v smeri urinega kazalca ne poveča mA).
Korak: Preskus izhoda instrumenta
Za preskušanje izhoda instrumenta so potrebni dodatni deli, na primer uporni upor. Običajni upori 0,25 W se bodo odlično odrezali. Zapustni upor lahko pustite in dodate drugo INA219, da preizkusite izhod instrumenta. Le en mi je ostal, zato sem namesto tega uporabil upor.
Testiranje z uporabo shunta je mogoče opraviti samo na negativni strani naprave. Če uporabljate pozitivno stran, boste arduinu dobavili več kot 4 -kratno dovoljeno napetost in pustili dim.
Dodajte zaporedni upor z negativno žico instrumenta. Stran shunta, ki je najbližja napravi, bo postala pozitiven analog za arduino. Druga stran shunta, ki je najbližje napajalniku, bo postala ozemljitev arduino, ki zaključuje analogno vhodno vezje.
150 ohmski šant upor je absolutni maksimum, ki ga je treba uporabiti pri uporabi arduina. Upor ima padec napetosti, ki je linearna glede na mA, ki teče skozi njega. Večji kot je mA, večja je napetost.
Pri 20mA tok # 150ohm*0,02A = 3volt do arduina.
Pri 4mA toku # 150ohm*0,004A = 0,6 volta do arduina.
Zdaj bi morda želeli, da bi bila napetost bližje 5 voltom, tako da nam lahko posredujete celoten razpon ADC arduina. (To ni dobra ideja).
RTD -ji lahko dosežejo 30,2 mA izhod (moj deluje). 150ohm*0,03A = 4,8 voltov. To je tako blizu, kot bi si želel biti.
Druga spletna stran je navedla uporabo upora 250 ohmov.
Pri 20mA tok # 250ohm*0,02A = 5volt do arduina.
Pri 30mA tok # 250ohm*0,03A = 7,5 voltov do arduina.
Tvegate, da boste zažgali ADC in arduino.
Če želite instrument preizkusiti na terenu, vzemite s seboj 12 -voltno baterijo in jo priključite na vhod za napajanje. Uporaba zunanjega vira napajanja ne bo vplivala na trenutno nastavitev PLC -ja.
Za preizkus analogne vhodne kartice na terenu vzemite s seboj 12 -voltno baterijo. Odklopite instrument + iz tokokroga. Ozemljitev priključite na ozemljitev instrumenta in RTD- na odklopljeno žico instrumenta.
3. korak: Umerjanje
Če želite umeriti odčitavanje shunt upora, priključite RTD- na analogni vhod shunt. Nastavite svoj trim lonec tako, da bo generirani mA 4mA. Če mA vaše naprave ni enaka, spremenite prvo vrednost v kodi v vrstici 84. Povečanje te vrednosti bo znižalo odčitavanje mA.
Nato nastavite trim lonec, da ustvarja 20 mA. Če mA vaše naprave ni enaka, spremenite drugo vrednost v kodi v vrstici 84.
Tako bodo vaši 4-20mA zdaj postali 0,6-3 voltov (teoretično). Domet več kot dovolj. Z uporabo knjižnice iz eRCaGuy vam bo preveliko vzorčenje omogočilo boljše in stabilnejše odčitavanje.
Upam, da ste to prebrali. To je moj prvi pouk, zato vas prosim, da počakate, če sem kje naredil napako ali kaj izpustil.
Ta projekt verjetno ni najboljši način za to, vendar mi deluje in mi je bilo zabavno.
Nekaj idej imam še…
Dodajte servo, da zavrtite okrasni lonec znotraj škatle.
Dodajte gumbe, da zavrtite servo levo ali desno.
Regulatorju hladilnika dodajte digitalni temperaturni senzor, ki opozarja na nevarno toploto.
4. korak: Programiranje Arduina
#vključi
// #include // Uncomment, če uporabljate LCD s premičnim registrom.
#vključi
#vključi
#vključi
#vključi
// A4 = (SDA)
// A5 = (SCL)
Adafruit_INA219 ina219;
LCD tekoči kristal (12, 11, 5, 4, 3, 2);
// LCD tekoči kristal_SR (3, 4, 2); // Komentirajte, če uporabljate LCD s premičnim registrom.
// | | | _ Zatič
// | / _ Zatič za uro
// / _ Podatki/Omogoči pin
bajtni bitoviOfResolution = 12; // ukazal preveč vzorčeno ločljivost
brez podpisa dolgo numSamplesToAvg = 20; // število vzorcev NA PREVERJENO REZOLUCIJO, ki jih želite vzeti, in povprečje
ADC_prescaler_t ADCSpeed = ADC_DEFAULT;
brez podpisa dolga previousMillis = 0;
izhodna napetost plovca = 0,0; // Iz INA219
napetost plovnega vodila = 0,0; // Iz INA219
plavajoči tok_mA = 0,0; // Iz INA219
napetost obremenitve plovca = 0,0; // Iz INA219
plavajoča arduino napetost = 0,0; // Izračun napetosti iz zatiča A0
Nepodpisano dolgo A0analogReading = 0;
bajt analogIn = A0;
float ma_mapped = 0,0; // Napetost zemljevida 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 (); // Spremenjena knjižnica za večjo natančnost pri mA
lcd.begin (20, 4); // inicializiramo LCD
lcd.clear ();
lcd.home (); // Pojdi domov
lcd.print ("********************");
zamuda (2000);
lcd.clear ();
}
void loop ()
{
nepodpisani dolgi tokMillis = millis ();
dolg interval const = 100;
//&&&&&&&&&&&&&&&&&
Naprave I2C preberite v presledkih in naredite nekaj izračunov
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if (currentMillis - previousMillis> = interval) {
previousMillis = trenutniMillis;
Interval ();
}
Print_To_LCD (); // LCD mi verjetno ni treba tako hitro posodabljati in ga lahko premaknem pod Interval ()
}
nično
Interval () {
shuntvoltage = ina219.getShuntVoltage_mV ();
napetost vodila = ina219.getBusVoltage_V ();
trenutni_mA = ina219.getCurrent_mA ();
obremenitvena napetost = (napetost vodila + (shuntvoltage / 1000)) + 0,71; // +0,71 je moj padec napetosti diode
A0analogReading = adc.newAnalogRead (analogIn);
arduinovoltage = (5.0 * A0analogReading); // Izračunano na mV
ma_mapped = zemljevid (arduinovoltage, 752, 8459, 30, 220) / 10,0; // Zemljevid ne more uporabljati plovcev. Za preslikano vrednostjo dodajte 0 in delite z 10, da dobite odčitavanje s plavajočo vrednostjo.
// Preslikava iz izračuna napetosti daje bolj stabilno odčitavanje kot uporaba surovega odčitka ADC.
if (shuntvoltage> = -0.10 && shuntvoltage <= -0.01) // Brez obremenitve se INA219 nagiba k branju spodaj -0.01, pri mojem pa.
{
tok_mA = 0;
napetost vodila = 0;
obremenitvena napetost = 0;
shuntvoltage = 0;
}
}
nično
Print_To_LCD () {
lcd.setCursor (0, 0);
if (ma_mapped <1,25) {// Brez toka je to moje branje mA, zato ga preprosto odstranim.
lcd.print (" * 4-20mA generator *");
}
drugače {
lcd.print ("** Analogni tester **");
}
lcd.setCursor (0, 1);
lcd.print ("Naprava:");
lcd.setCursor (10, 1);
if (preslikano <1,25) {
lcd.print ("brez naprave");
}
drugače {
lcd.print (ma_mapped);
}
lcd.print ("mA");
lcd.setCursor (0, 2);
lcd.print ("Ustvari:");
lcd.setCursor (10, 2);
lcd.print (trenutni_mA);
lcd.print ("mA");
lcd.setCursor (0, 3);
lcd.print ("Dobava:");
lcd.setCursor (10, 3);
lcd.print (napetost obremenitve);
lcd.print ("V");
}
5. korak: Še nekaj fotografij
Zvočniški priključek ojačevalnika. LED, ki ga poganja generator toka (RTD). Ožičenje analogne kartice bo zamenjalo LED.
Skrajni levi priključek je za vnos napajanja. Priključki na desni so za vnos instrumentov.
Korak 6: Namestitev
Zdi se, da vse ustreza. Uporabil sem silikon, da sem začasno držal nekaj stvari skupaj. Okrasna posoda je silikonirana zgoraj desno. Majhna luknja je bila predhodno izvrtana. Tok lahko nastavim z vrha škatle.
7. korak: samo fotografije
8. korak: Zadnje besede
Preizkusil sem izhod te naprave s PLC -jem Allan Bradley. Rezultati so bili zelo dobri. Dobil sem celotno paleto. Ta napravo sem preizkusil tudi s senzorjem tlaka 4-20 mA, ki ima vgrajen LCD zaslon. Ponovno so bili rezultati zelo dobri. Moje branje se je zmanjšalo za nekaj decimalk.
Svojo kodo arduino pišem v zavihke. V PLC -jih se imenujejo podprogrami. Olajša odpravljanje napak.
Priložene so besedilne datoteke teh zavihkov.
Priporočena:
Programiranje Arduina z uporabo drugega Arduina za prikaz drsnega besedila brez knjižnice: 5 korakov
Programiranje Arduina z uporabo drugega Arduina za prikaz drsnega besedila brez knjižnice: Sony Spresense ali Arduino Uno nista tako draga in ne zahtevata veliko energije. Če pa ima vaš projekt omejeno moč, prostor ali celo proračun, razmislite o uporabi Arduino Pro Mini. Za razliko od Arduino Pro Micro, Arduino Pro Mi
Nadzor vodite po vsem svetu z uporabo interneta z uporabo Arduina: 4 koraki
Nadzorujte po vsem svetu z uporabo interneta z uporabo Arduina: Živjo, jaz sem Rithik. Z vašim telefonom bomo naredili LED pod vodstvom interneta. Uporabljali bomo programsko opremo, kot sta Arduino IDE in Blynk. Preprosto je, in če vam je uspelo, lahko nadzirate toliko elektronskih komponent, kot jih želite. Stvari, ki jih potrebujemo: Strojna oprema:
Spremljanje pospeševanja z uporabo Raspberry Pi in AIS328DQTR z uporabo Pythona: 6 korakov
Spremljanje pospeševanja z Raspberry Pi in AIS328DQTR z uporabo Pythona: Po moje je pospeševanje po nekaterih zakonih fizike končno.- Terry Riley Gepard pri lovu uporablja neverjeten pospešek in hitre spremembe hitrosti. Najhitrejše bitje na kopnem včasih izkoristi svojo najvišjo hitrost za ulov plena.
Brezžični daljinski upravljalnik z uporabo 2.4Ghz modula NRF24L01 z Arduinom - Nrf24l01 4 -kanalni / 6 -kanalni sprejemnik oddajnika za Quadcopter - Rc helikopter - Rc ravnina z uporabo Arduina: 5 korakov (s slikami)
Brezžični daljinski upravljalnik z uporabo 2.4Ghz modula NRF24L01 z Arduinom | Nrf24l01 4 -kanalni / 6 -kanalni sprejemnik oddajnika za Quadcopter | Rc helikopter | Rc letalo z uporabo Arduina: za upravljanje avtomobila Rc | Quadcopter | Dron | RC ravnina | RC čoln, vedno potrebujemo sprejemnik in oddajnik, recimo za RC QUADCOPTER potrebujemo 6 -kanalni oddajnik in sprejemnik in ta vrsta TX in RX je predraga, zato jo bomo naredili na svojem
Generator - DC generator z uporabo trstičnega stikala: 3 koraki
Generator - enosmerni generator z uporabo Reed stikala: Enostavni DC generator Generator enosmernega toka (DC) je električni stroj, ki pretvarja mehansko energijo v elektriko z enosmernim tokom. spremembe