- Szükséges anyagok:
- Az ACS712 áramérzékelő működése:
- Kördiagramm:
- Szimuláció:
- A PIC mikrovezérlő programozása:
- Dolgozó:
A feszültség és az áram mérése mindig hasznos lesz bármilyen elektromos rendszer elkészítése vagy hibakeresése közben. Ebben a projektben saját digitális ampermérőt készítünk a PIC16F877A mikrovezérlő és az ACS712-5A áramérzékelő segítségével. Ez a projekt képes mind az AC, mind az egyenáramot 0-30A tartományban, 0,3A pontossággal mérni. A kód kevés módosításával ezt az áramkört akár 30A-ig is mérheti. Szóval kezdjük !!!
Szükséges anyagok:
- PIC16F877A
- 7805 feszültségszabályozó
- ACS712 áramérzékelő
- 16 * 2 LCD kijelző
- Elosztódoboz és terhelés (csak tesztelés céljából)
- Csatlakozó vezetékek
- Kondenzátorok
- Kenyérlemez.
- Tápegység - 12V
Az ACS712 áramérzékelő működése:
A projekt építése előtt nagyon fontos megértenünk az ACS712 áramérzékelő működését, mivel ez a projekt legfontosabb eleme. Az áram mérése, különösen az AC áram mindig nehéz feladat a zaj és a helytelen elszigetelési probléma stb. Miatt. De ennek az Allegro által tervezett ACS712 modulnak köszönhetően sokkal könnyebbé vált.
Ez a modul a Hall-effektus elvén működik, amelyet Dr. Edwin Hall fedezett fel. Elve szerint, amikor egy áramvezető vezetőt mágneses mezőbe helyeznek, annak szélein feszültség keletkezik, merőlegesek mind az áram, mind a mágneses mező irányára. Ne mélyüljünk bele mélyen a koncepcióba, hanem egyszerűen úgy fogalmazzunk, hogy hall érzékelővel mérjük a mágneses teret egy áramvezető körül. Ez a mérés millivoltban történik, amelyet hall-feszültségnek neveztünk. Ez a mért csarnokfeszültség arányos a vezetéken keresztül áramló árammal.
Az ACS712 áramérzékelő használatának legfőbb előnye, hogy képes mérni mind az AC, mind az egyenáramot, és elszigetelést biztosít a terhelés (AC / DC terhelés) és a mérőegység (mikrovezérlő rész) között is. Amint a képen látható, a modulon három csap van, amelyek Vcc, Vout és Ground.
A 2 tűs sorkapocson át kell vezetni az áramvezetéket. A modul + 5 V feszültségen működik, így a Vcc-t 5 V-ra kell táplálni, és a földet a rendszer földeléséhez kell csatlakoztatni. A Vout tüskének eltolási feszültsége 2500mV, vagyis amikor nincs áram a vezetéken keresztül, akkor a kimeneti feszültség 2500mV lesz, és ha az áram pozitív, akkor a feszültség nagyobb lesz, mint 2500mV, és amikor az áramló áram negatív, a feszültség kevesebb lesz, mint 2500mV.
A PIC mikrovezérlő ADC modulját használjuk a modul kimeneti feszültségének (Vout) leolvasására, amely akkor lesz 512 (2500mV), ha a vezetéken nem áramlik áram. Ez az érték csökken, amikor az áram negatív irányban áramlik, és növekszik, amikor az áram pozitív irányba áramlik. Az alábbi táblázat segít megérteni, hogy a kimeneti feszültség és az ADC értéke hogyan változik a vezetéken keresztül áramló áram függvényében.
Ezeket az értékeket az ACS712 adatlapján megadott információk alapján számoltuk ki. Ezeket az alábbi képletek segítségével is kiszámíthatja:
Vout feszültség (mV) = (ADC-érték / 1023) * 5000 vezeték a vezetéken keresztül (A) = (Vout (mv) -2500) / 185
Most, hogy tudjuk, hogyan működik az ACS712 érzékelő, és mit várhatunk tőle. Menjünk tovább a kapcsolási rajzra.
Kördiagramm:
A digitális ampermérő projekt teljes kapcsolási rajzát az alábbi kép mutatja.
A teljes digitális árammérő áramkör + 5V-on működik, amelyet egy 7805-ös feszültségszabályozó szabályoz. 16x2-es LCD-t használtunk az áram értékének megjelenítésére. Az áramérzékelő kimeneti érintkezője (Vout) a PIC 7. tűjéhez csatlakozik, amely az AN4 az analóg feszültség leolvasásához.
Az alábbiakban a PIC érintkezőinek csatlakozását mutatjuk be
S. Nem: |
Pinkód |
PIN neve |
Csatlakozva valamihez |
1 |
21 |
RD2 |
Az LCD RS-je |
2 |
22. |
RD3 |
E az LCD |
3 |
27. |
RD4 |
Az LCD D4 |
4 |
28. |
RD5 |
D5 LCD |
5. |
29. |
RD6 |
Az LCD D6-ja |
6. |
30 |
RD7 |
D7 LCD |
7 |
7 |
AN4 |
A jelenlegi Sesnor voutja |
Felépítheti ezt a digitális ampermérő áramkört kenyérlapra, vagy használhat perf táblát. Ha követte a PIC oktatóanyagokat, akkor újból felhasználhatja azt a hardvert, amelyet a PIC mikrovezérlők megtanulásához használtunk. Itt ugyanazt a perf táblát használtuk, amelyet a PIC mikrovezérlővel villogó LED-hez építettünk, az alábbiak szerint:
Megjegyzés: Ennek a táblának a felépítése nem kötelező, egyszerűen kövesse a kapcsolási rajzot, és egy kenyérlapra építse az áramkört, és bármilyen dömperkészlettel használhatja a programot a PIC mikrovezérlőbe.
Szimuláció:
Ez az árammérő áramkör a Proteus segítségével is szimulálható, mielőtt a hardverrel folytatná a munkát. Rendelje hozzá az oktatóanyag végén megadott kód hex fájlját, és kattintson a Lejátszás gombra. Észre kell vennie az áramot az LCD kijelzőn. Lámpát használtam váltakozó áramú terhelésként, a lámpa belső ellenállását úgy módosíthatja, hogy rákattintva megváltoztatja a rajta folyó áramot.
Amint a fenti képen látható, az ampermérő a lámpán keresztül áramló tényleges áramot mutatja, amely 3,52 A körüli, az LCD pedig 3,6A körüli áramot mutat. Gyakorlati esetben azonban akár 0,2A hibát is kaphatunk. Az ADC értéke és feszültsége (mV) az LCD-n is látható, hogy érthető legyen.
A PIC mikrovezérlő programozása:
Mint korábban elmondtuk, a teljes kód a cikk végén található. A kód önmagában magyarázható megjegyzés sorokkal, és csak magában foglalja az LCD összekapcsolását a PIC mikrovezérlővel és az ADC modul használatát a PIC mikrovezérlőben, amire a PIC mikrovezérlők megtanulásának korábbi oktatóanyagaiban már kitértünk.
Az érzékelőből leolvasott érték nem lesz pontos, mivel az áram váltakozik, és zajnak van kitéve. Ezért elolvastuk az ADC értékét 20-szor, és átlagoljuk azt, hogy megkapjuk a megfelelő aktuális értéket, amint az az alábbi kódban látható.
Ugyanazokat a képleteket használtuk, amelyeket a fentiekben kifejtettünk a feszültség és az áramérték kiszámításához.
for (int i = 0; i <20; i ++) // Olvasási érték 20-szor {adc = 0; adc = ADC_Read (4); // Olvassa el az ADC feszültséget = adc * 4,8828; // Számítsa ki a feszültséget, ha (Feszültség> = 2500) // Ha az áram pozitív, Amp + = ((Feszültség-2500) / 18,5); else if (Feszültség <= 2500) // Ha az áram negatív Amps + = ((2500-Voltage) /18.5); } Amper / = 20; // Átlagolja az értéket, amelyet 20-szor olvastak
Mivel ez a projekt AC áramot is leolvashat, a jelenlegi áramlás negatív és pozitív is lesz. Ez azt jelenti, hogy a kimeneti feszültség értéke 2500mV felett és alatt lesz. Ezért az alábbiak szerint megváltoztatjuk a negatív és a pozitív áram képleteit, hogy ne kapjunk negatív értéket.
if (Feszültség> = 2500) // Ha az áram pozitív, Amper + = ((Feszültség-2500) / 18,5); else if (Feszültség <= 2500) // Ha az áram negatív Amps + = ((2500-Voltage) /18.5);
30A-os áramérzékelő használata:
Ha 5A-nál nagyobb áramot kell mérnie, egyszerűen vásárolhat egy ACS712-30A modult, és ugyanúgy interfészezheti, és megváltoztathatja az alábbi kódsort a 18.5 helyett 0.66 helyett, az alábbiak szerint:
if (Feszültség> = 2500) // Ha az áram pozitív, Amper + = ((Feszültség-2500) / 0,66); else if (Feszültség <= 2500) // Ha az áram negatív Amps + = (((2500-Voltage) /0.66);
Ha alacsony áramot szeretne mérni, ellenőrizze a 100mA-os ampermérőt az AVR mikrokontrollerrel is.
Dolgozó:
Miután beprogramozta a PIC mikrokontrollert és készen áll a hardverre. Egyszerűen kapcsolja be a terhelést és a PIC mikrovezérlőt, és látnia kell az áramot, amely áthalad az LCD képernyőn megjelenő vezetéken.
MEGJEGYZÉS: Ha ASC7125A modult használ, győződjön meg arról, hogy a terhelése nem fogyaszt többet, mint 5A, és használjon nagyobb nyomtávú vezetékeket is az áramvezető vezetékekhez.
A teljes munka a PIC mikrokontroller alapú árammérő projekt jelenik meg a videó alatti. Remélem, hogy a projekt működik, és élvezettel csinálja. Ha kétségei vannak, írhatja meg őket az alábbi megjegyzés rovatba, vagy tegye fel fórumunkba.