Tartalomjegyzék:
- 1. lépés:
- 2. lépés: Műszer kimeneti teszt
- 3. lépés: Kalibrálás
- 4. lépés: Az Arduino programozása
- 5. lépés: Még néhány fotó
- 6. lépés: Beillesztés
- 7. lépés: Csak fotók
- 8. lépés: Utolsó szavak
Videó: 4-20ma generátor/tesztelő az Arduino használatával: 8 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
4-20mA generátorok kaphatók az ebay-en, de egyrészt szeretem a dolgok barkácsolásának részét, másrészt az általam lefektetett alkatrészeket.
Szerettem volna tesztelni PLC-nk analóg bemeneteit, hogy ellenőrizhessük a scada értékeket, és tesztelhessem a 4-20 mA-es műszerek kimenetét. Rengeteg áram -feszültség átalakító és feszültség -áram átalakító van az arduino számára az ebay -en, de kalibrálni kell őket. Ezzel kalibrálhatom az ebayen található konverterek és hasonlók bármelyikét.
Úgy döntöttem, hogy barkácsolok egy generátort és tesztert. Ezen a ponton ez még folyamatban lévő munka és prototípus.
Volt egy régi 2.1 -es hangrendszerem, amelyet nem használtak (kis hangszórók). Így az egyik hangszóródobozt használtam házként. Volt egy erősítőm is, amely villámcsapás miatt meghalt, eltávolítottam a hangszóró csatlakozóját az erősítőből, hogy egyszerű legyen a csatlakoztatás. A jövőben PCB -t és jobb házat kívánok készíteni.
Kellékek:
Alkatrész lista.
LCD // 20x4 (módosítsa a kódot, ha a tied kisebb)
LM7808 // 8 voltos szabályozó
LED // Bármilyen típus vagy méret
Ellenállás LED -hez // Megfelelő a LED típushoz és a 8 voltos feszültséghez
100 ohmos ellenállás + 47 ohmos soros ellenállás // Sönt ellenállásként használható
10K ellenállás // Arduino analóg magas feszültség elleni védelemben
22K ellenállás // Az A0 lebegésének megakadályozása érdekében
Trimpot 100 ohm + 47 ohmos ellenállás sorozatban // PT100 szimulátor
35 voltos kondenzátor // 470uF -ot használtam, csak azért, hogy a tápfeszültség ingadozásait alacsonyan tartsam
RTD (PT100 jelátalakító) // A távolság nem számít (tartomány)
DIÓDA (a polaritás védelme érdekében)
INA219
Arduino
1. lépés:
A vázlat követésével el kell kezdenie, hogy hova kell hozzáadni az alkatrészeket és bekötni őket.
Az LM7808 maximum 25 voltos bemenetet tesz lehetővé, ami jó a PLC rendszerekhez, általában 24 voltos tápegységeket használnak. Tegyen hűtőbordát a szabályozóhoz, és ne használja hosszabb ideig. A 16 volt leesése miatt a szabályozó sok hőt termel.
A bemeneti tápegység táplálja a szabályozót és csatlakozik az INA219 VIN -hez, ebben a konfigurációban az INA219 képes lesz mérni a helyes tápfeszültséget, mínusz a dióda feszültségcsökkenését. Mérje meg a dióda feszültségcsökkenését, és adja hozzá a kódhoz, hogy a helyes tápfeszültség leolvasást kapja.
Az INA219 VOUT -tól az RTD+ -ig az RTD bekapcsol. RTD- földelés befejezi az áramkört.
A PLC analóg kártya teszteléséhez az analóg kártya bemenetéhez RTD- és a kártya és az arduino föld közötti földet kell csatlakoztatni. (Győződjön meg arról, hogy a tesztelt csatornához csatlakoztatott minden eszközt lekapcsol.)
R5 és LED1, jelezve, hogy a rendszer be van kapcsolva.
A szabályozó betáplálódik az arduino VIN -be (az arduino 5 voltos szabályozót tartalmaz).
Az Arduino 5V-os tű az INA219-hez kerül a fedélzeti chip táplálásához. INA219 GND arduino földre.
Az edénytörlő vágása az RTD PIN1 -hez, a 3. vágótálca csapja pedig az RTD -2 -es csaphoz szimulálja a PT100 kapcsolatot. (Cserélje ki a vezetékeket, ha a trimmelőedény óramutató járásával megegyező irányba történő elforgatása nem növeli az mA -t).
2. lépés: Műszer kimeneti teszt
A műszer kimenetének teszteléséhez további alkatrészekre van szükség, például egy söntellenállásra. A normál 0,25 W -os ellenállások tökéletesen elvégzik a munkát. Hagyja el a sönt ellenállást, és adjon hozzá egy második INA219 -et a tesztműszer kimenetéhez. Nekem csak egy maradt, ezért ellenállást használtam helyette.
A sönt segítségével történő tesztelés csak a készülék negatív oldalán végezhető el. Ha a pozitív oldalt használja, akkor az arduino -t a megengedett feszültség több mint 4 -szeresére táplálja, és kiengedi a füstöt.
Sorba kell hozzáadni a sönt ellenállást a műszer negatív vezetékével. A söntnek a készülékhez legközelebb eső oldala lesz az arduino pozitív analógja. A sönt tápellátáshoz legközelebb eső másik oldala az analóg bemeneti áramkört befejező arduino föld lesz.
A 150 ohmos söntellenállás az abszolút maximum, amelyet arduino használatakor kell használni. Az ellenállás feszültségcsökkenése lineáris a rajta áramló mA -hez. Minél nagyobb az mA, annál nagyobb a feszültség.
20mA áramnál # 150ohm*0,02A = 3 volt az arduino -hoz.
4mA áramnál # 150ohm*0,004A = 0,6 volt az arduino -hoz.
Most azt szeretné, ha a feszültség közelebb legyen az 5 volthoz, így használhatja az arduino teljes ADC tartományát. (Nem jó ötlet).
A RTD -k elérhetik a 30,2 mA kimenetet (az enyém igen). 150ohm*0,03A = 4,8 volt. Ez olyan közel van, mint szeretnék.
Egy másik weboldal 250 ohmos ellenállás használatát jelezte.
20mA áramnál # 250ohm*0,02A = 5 volt az arduino -hoz.
30 mA áramnál # 250ohm*0,03A = 7,5 volt az arduino -hoz.
Fennáll annak a kockázata, hogy elégeti az ADC -t és az arduino -t.
Egy műszer teszteléséhez vegyen magával egy 12 voltos akkumulátort, és csatlakoztassa a tápellátáshoz. Külső áramforrás használata nem befolyásolja a PLC jelenlegi beállítását.
Analóg bemeneti kártya teszteléséhez vegyen magával egy 12 voltos akkumulátort. Válassza le a műszert + az áramkörről. Csatlakoztassa a földet a műszer földeléséhez, az RTD-t pedig a leválasztott műszervezetékhez.
3. lépés: Kalibrálás
A söntellenállás leolvasásának kalibrálásához kösse az RTD- kábelt az analóg shunt analóg bemenetére. Állítsa be a trim potot úgy, hogy a generált mA 4 mA legyen. Ha a készülék mA értéke nem egyenlő, módosítsa a 84. sorban lévő kód első értékét. Ennek az értéknek a növelése csökkenti az mA leolvasását.
Ezután állítsa be a trimmelőedényt 20 mA generálására. Ha a készülék mA értéke nem egyenlő, módosítsa a második értéket a 84. sorban lévő kódban.
Tehát a 4-20mA most 0,6-3 volt lesz (elméleti). Több mint elég hatótávolság. Az eRCaGuy könyvtárának használatával a túlmintavétel jobb és stabilabb leolvasást eredményez.
Remélhetőleg ezt olvassa. Ez az első tanulságos, ezért kérem nyugodtan, ha valahol hibát követtem el, vagy valamit kihagytam.
Ez a projekt valószínűleg nem a legjobb módja ennek, de számomra működik, és szórakoztató volt csinálni.
Néhány ötletem van…
Adjon hozzá egy szervót a díszítőedény forgatásához a dobozban.
Nyomja meg a gombokat a szervo balra vagy jobbra forgatásához.
Adjon hozzá egy digitális hőmérséklet -érzékelőt a szabályozó hűtőbordájához, hogy figyelmeztesse a veszélyes hőt.
4. lépés: Az Arduino programozása
#befoglalni
// #include // Megjegyzés megszüntetése, ha eltolásregiszterrel rendelkező LCD -t használ.
#befoglalni
#befoglalni
#befoglalni
#befoglalni
A4 = (SDA)
A5 = (SCL)
Adafruit_INA219 ina219;
LiquidCrystal LCD (12, 11, 5, 4, 3, 2);
// LiquidCrystal_SR lcd (3, 4, 2); // Megjegyzés, ha műszakregiszterrel rendelkező LCD -t használ.
// | | | _ Reteszcsap
// | / _ Óracsap
// / _ Data/Pin engedélyezése
bájt bitOfResolution = 12; // túlmintavételezett felbontást parancsolt
előjel nélküli hosszú numSamplesToAvg = 20; // azon minták száma, amelyeket a TÚLAMINTÁZOTT HATÁROZATBAN kíván venni, és átlag
ADC_prescaler_t ADCSpeed = ADC_DEFAULT;
unsigned long previousMillis = 0;
úszó söntfeszültség = 0,0; // INA219 -ből
úszó buszfeszültség = 0,0; // INA219 -ből
úszóáram_mA = 0,0; // INA219 -ből
úszó terhelésfeszültség = 0,0; // INA219 -ből
úszó arduinovoltage = 0,0; // Feszültségszámítás A0 érintkezőből
Aláíratlan hosszú A0analogReading = 0;
bájt analógIn = A0;
float ma_mapped = 0.0; // Feszültség leképezése A0-tól 4-20 mA-ig
void setup () {
adc.setADCSpeed (ADCSpeed);
adc.setBitsOfResolution (bitsOfResolution);
adc.setNumSamplesToAvg (numSamplesToAvg);
uint32_t currentFrequency;
ina219.begin ();
ina219.setCalibration_32V_30mA (); // Módosított könyvtár az mA pontosabbá tétele érdekében
lcd. kezdet (20, 4); // inicializálja az LCD -t
lcd.clear ();
lcd.home (); // hazamenni
lcd.print ("********************");
késleltetés (2000);
lcd.clear ();
}
üres hurok ()
{
előjel nélküli hosszú áramMillis = millis ();
const hosszú intervallum = 100;
//&&&&&&&&&&&&&&&&&
Időnként olvassa el az I2C eszközöket, és végezzen néhány számítást
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if (currentMillis - previousMillis> = intervallum) {
previousMillis = currentMillis;
Intervallum();
}
Print_To_LCD (); // Valószínűleg nem kell ilyen gyorsan frissítenem az LCD -t, és áthelyezhető az Interval () alá
}
üres
Időköz () {
shuntvoltage = ina219.getShuntVoltage_mV ();
buszfeszültség = ina219.getBusVoltage_V ();
current_mA = ina219.getCurrent_mA ();
terhelési feszültség = (buszfeszültség + (söntfeszültség / 1000)) + 0,71; // +0,71 a dióda feszültségcsökkenése
A0analogReading = adc.newAnalogRead (analogIn);
arduinovoltage = (5,0 * A0analogReading); // mV -ra számítva
ma_mapped = térkép (arduinovoltage, 752, 8459, 30, 220) / 10,0; // A térkép nem használhat úszókat. Adjon hozzá 0 -t a leképezett érték mögé, és ossza el 10 -gyel, hogy lebegjen.
// A feszültségszámításból származó leképezés stabilabb leolvasást biztosít, mint a nyers adc leolvasás.
if (shuntvoltage> = -0,10 && shuntvoltage <= -0,01) // Terhelés nélkül az INA219 -0,01 alatt szokott olvasni, az enyém igen.
{
áram_mA = 0;
buszfeszültség = 0;
terhelési feszültség = 0;
söntfeszültség = 0;
}
}
üres
Print_To_LCD () {
lcd.setCursor (0, 0);
if (ma_mapped <1.25) {// Áram nélkül ez az én mA -értékem, ezért csak lehúzom.
lcd.print (" * 4-20mA generátor *");
}
más {
lcd.print ("** Analóg tesztelő **");
}
lcd.setCursor (0, 1);
lcd.print ("Eszköz:");
lcd.setCursor (10, 1);
if (leképezett <1,25) {
lcd.print ("nincs eszköz");
}
más {
lcd.print (leképezett);
}
lcd.print ("mA");
lcd.setCursor (0, 2);
lcd.print ("Generálás:");
lcd.setCursor (10, 2);
lcd.print (current_mA);
lcd.print ("mA");
lcd.setCursor (0, 3);
lcd.print ("Kínálat:");
lcd.setCursor (10, 3);
lcd.print (terhelési feszültség);
lcd.print ("V");
}
5. lépés: Még néhány fotó
Erősítő hangszóró terminál. Az áramgenerátor (RTD) által működtetett LED. Az analóg kártya bekötése helyettesíti a LED -et.
A bal oldali csatlakozó a tápellátást szolgálja. A jobb oldali csatlakozók a műszerbevitelre szolgálnak.
6. lépés: Beillesztés
Úgy tűnik, minden megfelel. Szilikont használtam, hogy ideiglenesen összehozzak néhány dolgot. A díszítőedény jobb felső részén szilikonos. Egy kis lyukat előre fúrtak. A doboz tetejéről állíthatom az áramot.
7. lépés: Csak fotók
8. lépés: Utolsó szavak
Az eszköz kimenetét egy Allan Bradley PLC -vel teszteltem. Az eredmények nagyon jók voltak. Teljes tartományt kaptam. Ezt a készüléket is teszteltem 4-20 mA nyomásérzékelővel, amely beépített LCD kijelzővel rendelkezik. Ismét nagyon jó eredmények születtek. A leolvasásaimat pár tizedes pontossággal leállítottuk.
Fülekbe írom az arduino kódomat. A PLC -kben alrutinoknak nevezik őket. Könnyebbé teszi a hibakeresést.
Ezeknek a lapoknak a szövegfájljai vannak csatolva.
Ajánlott:
Szervo tesztelő az Ic 555 használatával: 4 lépés
Szervo tesztelő az Ic 555 használatával: ebben az oktatóanyagban megmutatom, hogyan lehet egyszerű szervo tesztert készíteni az 555 ic használatával
Akkumulátor-kapacitás-tesztelő Arduino használatával [Lítium-NiMH-NiCd]: 15 lépés (képekkel)
Akkumulátor-kapacitás-tesztelő Arduino [Lithium-NiMH-NiCd] használatával: Jellemzők: Hamis lítium-ion/lítium-polimer/NiCd/NiMH akkumulátor azonosítása Állítható állandó áramterhelés (a felhasználó is módosíthatja) bármilyen típusú akkumulátor (5 V alatt) Könnyen forrasztható, építhető és használható
Infravörös távirányító tesztelő a TSOP4838 használatával: 5 lépés
Infravörös távirányító tesztelő a TSOP4838 használatával: Az alábbiakban bemutatjuk, hogyan lehet felépíteni egy egyszerű távirányító tesztáramkört. Csak kövesse az alábbi lépéseket, és 5 perc alatt elkészül. Ha működik, akkor hagyj egy lájkot a videónkra, és írd meg nekünk kommentben
Oktatóanyag 30A mikrokefe motoros fékvezérlő szervo tesztelő használatával: 3 lépés
Oktatóanyag 30A mikrokefe motoros fékvezérlő szervo tesztelő használatával: Specifikáció: 30A kefe fordulatszám szabályozó. Funkció: előre, hátra, fék Üzemi feszültség: 3.0V --- 5.0V. Áram (A): 30A BEC: 5V/1A Meghajtó frekvencia: 2KHz Bemenet: 2-3 Li-Po/Ni-Mh/Ni-cd 4-10cell Állandó áram 30A Max 30A <
IC tesztelő, opcionális erősítő, 555 időzítő tesztelő: 3 lépés
IC tesztelő, opcionális erősítő, 555 időzítő tesztelő: Minden rossz vagy csere IC található, de ha összekeverednek egymással, sok időbe telik a rossz vagy jó azonosítása. Ebben a cikkben megtudjuk, hogyan készíthetjük az IC-t tesztelő, folytassuk