- Tarvittavat materiaalit:
- ACS712-virta-anturin toiminta:
- Piirikaavio:
- Simulointi:
- PIC-mikrokontrollerin ohjelmointi:
- Työskentely:
Jännitteen ja virran mittaamisesta on aina hyötyä minkä tahansa sähköjärjestelmän valmistuksessa tai virheenkorjauksessa. Tässä projektissa aiomme tehdä oman digitaalisen ampeerimittarin käyttämällä PIC16F877A-mikrokontrolleria ja virtamittaria ACS712-5A. Tämä projekti voi mitata sekä vaihtovirtaa että tasavirtaa välillä 0-30A tarkkuudella 0,3A. Muutamalla koodin muutoksella voit myös käyttää tätä virtapiiriä jopa 30 A: n mittaamiseen. Joten anna meidän aloittaa !!!
Tarvittavat materiaalit:
- PIC16F877A
- 7805 Jännitesäädin
- ACS712-virtatunnistin
- 16 * 2 LCD-näyttö
- Liitäntäkotelo ja kuorma (vain testausta varten)
- Johtojen liittäminen
- Kondensaattorit
- Leipälauta.
- Virtalähde - 12 V
ACS712-virta-anturin toiminta:
Ennen projektin rakentamisen aloittamista on meille erittäin tärkeää ymmärtää ACS712-virtamittarin toiminta, koska se on projektin keskeinen osa. Virran mittaaminen erityisesti vaihtovirrasta on aina vaikea tehtävä johtuen melusta ja siitä johtuvasta virheellisestä eristysongelmasta jne. Mutta tämän Allegron suunnitteleman ACS712-moduulin avulla on tullut paljon helpompaa.
Tämä moduuli toimii Hall-efektin periaatteella, jonka tohtori Edwin Hall löysi. Hänen periaatteensa mukaan, kun virtajohdin sijoitetaan magneettikenttään, sen reunojen yli syntyy jännite kohtisuorassa sekä virran että magneettikentän suuntiin. Älkäämme menkö liian syvälle käsitteeseen, vaan yksinkertaisesti sanottuna käytämme hall-anturia mittaamaan magneettikenttää virran johtimen ympärillä. Tämä mittaus on millivoltteina, joita kutsumme hallijännitteeksi. Tämä mitattu hallijännite on verrannollinen johtimen läpi virtaavaan virtaan.
ACS712-virtatunnistimen tärkein etu on se, että se voi mitata sekä vaihtovirtaa että tasavirtaa, ja se myös eristää kuorman (AC / DC-kuormitus) ja mittausyksikön (mikro-ohjaimen osa). Kuten kuvassa näkyy, moduulissa on kolme nastaa, jotka ovat Vcc, Vout ja Ground.
2-napainen riviliitin on paikka, jossa virtaa kuljettava johto tulisi siirtää. Moduuli toimii + 5 V: n jännitteellä, joten Vcc: n tulisi olla kytkettynä 5 V: n virtalähteeseen ja maan tulisi olla kytketty järjestelmän maahan. Vout-nastan siirtymäjännite on 2500 mV, mikä tarkoittaa, että kun johdon läpi ei virtaa virtaa, lähtöjännite on 2500 mV ja kun virtaava virta on positiivinen, jännite on suurempi kuin 2500 mV ja kun virtaava virta on negatiivinen, jännite on alle 2500 mV.
Käytämme PIC-mikrokontrollerin ADC-moduulia lukemaan moduulin lähtöjännitteen (Vout), joka on 512 (2500mV), kun langan läpi ei virtaa virtaa. Tämä arvo pienenee, kun virta kulkee negatiiviseen suuntaan ja kasvaa, kun virta virtaa positiiviseen suuntaan. Alla oleva taulukko auttaa sinua ymmärtämään, kuinka lähtöjännite ja ADC-arvo vaihtelevat langan läpi virtaavan virran perusteella.
Nämä arvot laskettiin ACS712: n tietolomakkeessa annettujen tietojen perusteella. Voit myös laskea ne käyttämällä seuraavia kaavoja:
Vout-jännite (mV) = (ADC-arvo / 1023) * 5000 virta johdon läpi (A) = (Vout (mv) -2500) / 185
Nyt, kun tiedämme, kuinka ACS712-anturi toimii ja mitä voimme odottaa siitä. Siirrytään piirikaavioon.
Piirikaavio:
Tämän digitaalisen ampeerimittarin koko piirikaavio on esitetty alla olevassa kuvassa.
Täydellinen digitaalinen virtamittaripiiri toimii + 5 V: n jännitteellä, jota säätelee 7805-jännitesäädin. Olemme käyttäneet 16X2 LCD: tä näyttämään virran arvon. Antonastaan nykyisen anturin (Vout) on kytketty 7 th pin PIC joka on AN4 lukea Analoginen jännite.
Lisäksi PIC: n tapin liitäntä on esitetty alla olevassa taulukossa
S. ei: |
Pin koodi |
PIN-nimi |
Yhdistetty |
1 |
21 |
RD2 |
LCD: n RS |
2 |
22 |
RD3 |
LCD-näytön E-osa |
3 |
27 |
RD4 |
LCD-näytön D4 |
4 |
28 |
RD5 |
LCD-näytön D5 |
5 |
29 |
RD6 |
LCD-näytön D6 |
6 |
30 |
RD7 |
LCD-näytön D7 |
7 |
7 |
AN4 |
Nykyisen Sesnorin voitto |
Voit rakentaa tämän digitaalisen ampeerimittarin piirin leipälaudalle tai käyttää perf-levyä. Jos olet seurannut PIC-oppaita, voit myös käyttää laitteistoa, jota käytimme PIC-mikrokontrollerien oppimiseen. Tässä olemme käyttäneet samaa perf-korttia, jonka olemme rakentaneet LED-vilkkumiseen PIC-mikrokontrollerilla, kuten alla on esitetty:
Huomautus: Tämän kortin rakentaminen ei ole pakollista. Voit yksinkertaisesti seurata piirikaaviota ja rakentaa piirisi leipätaululle ja käyttää mitä tahansa kippiautopakettia ohjataksesi ohjelman PIC-mikrokontrolleriin.
Simulointi:
Tämä virtamittaripiiri voidaan myös simuloida Proteus-ohjelmalla, ennen kuin jatkat laitteistoa. Määritä tämän opetusohjelman lopussa annetun koodin hex-tiedosto ja napsauta toistopainiketta. Sinun pitäisi pystyä havaitsemaan virta LCD-näytöllä. Olen käyttänyt lamppua vaihtovirrana, voit muuttaa lampun sisäistä vastusta napsauttamalla sitä muuttaaksesi sen läpi virtaavaa virtaa.
Kuten yllä olevasta kuvasta näet, ampeerimittari näyttää lampun läpi kulkevan todellisen virran, joka on noin 3,52 A ja nestekidenäytössä virran noin 3,6 A. Käytännössä voimme kuitenkin saada virheen jopa 0,2A. ADC-arvo ja jännite (mV) näkyvät myös nestekidenäytössä.
PIC-mikrokontrollerin ohjelmointi:
Kuten aiemmin kerrottiin, täydellinen koodi löytyy tämän artikkelin lopusta. Koodi on itse selitetty kommenttiriveillä, ja se käsittää vain LCD-näytön liittämisen PIC-mikrokontrolleriin ja ADC-moduulin käyttämisen PIC-mikrokontrollerissa, jonka olemme jo käsitelleet aiemmissa PIC-mikrokontrollerien oppimisen oppaissa.
Anturista luettu arvo ei ole tarkka, koska virta vaihtelee ja altistuu myös melulle. Siksi luemme ADC-arvon 20 kertaa ja keskiarvon saadaksemme sopivan nykyisen arvon alla olevan koodin mukaisesti.
Olemme käyttäneet samoja kaavoja, jotka selitettiin edellä, jännitteen ja virta-arvon laskemiseksi.
for (int i = 0; i <20; i ++) // 20 kertaa luettu arvo {adc = 0; adc = ADC_Read (4); // Lue ADC-jännite = adc * 4.8828; // Laske jännite, jos (Jännite> = 2500) // Jos virta on positiivinen Ampeerit + = ((Jännite-2500) / 18,5); else if (Jännite <= 2500) // Jos virta on negatiivinen Ampeerit + = ((2500-Jännite) / 18,5); } Ampeeria / = 20; // Keskiarvo lukemasi arvo 20 kertaa
Koska tämä projekti pystyy lukemaan myös vaihtovirtaa, nykyinen virtaus on myös negatiivinen ja positiivinen. Tämä on lähtöjännitteen arvo yli ja alle 2500 mV. Siksi, kuten alla on esitetty, muutamme negatiivisen ja positiivisen virran kaavoja niin, että emme saa negatiivista arvoa.
if (Jännite> = 2500) // Jos virta on positiivinen Ampeerit + = ((Jännite-2500) / 18,5); else if (Jännite <= 2500) // Jos virta on negatiivinen Ampeerit + = ((2500-Jännite) / 18,5);
30A-virtatunnistimen käyttö:
Jos joudut mittaamaan virtaa yli 5 A, voit yksinkertaisesti ostaa ACS712-30A-moduulin ja liittää sen samalla tavalla ja muuttaa alla olevan koodirivin korvaamalla 18.5 koodilla 0.66 alla olevan kuvan mukaisesti:
if (Jännite> = 2500) // Jos virta on positiivinen Ampeerit + = ((Jännite-2500) / 0,66); else if (Jännite <= 2500) // Jos virta on negatiivinen Ampeerit + = ((2500-Jännite) /0,66);
Tarkista myös 100 mA: n ampeerimittari AVR-mikrokontrollerilla, jos haluat mitata heikkoa virtaa.
Työskentely:
Kun olet ohjelmoinut PIC-mikrokontrollerin ja tehnyt laitteistosi valmiiksi. Kytke vain virta kuormaan ja PIC-mikrokontrolleriin, ja sinun pitäisi pystyä näkemään virta, joka kulkee LCD-näytöllä näkyvän langan läpi.
HUOMAUTUS: JOS käytät ASC7125A-moduulia, varmista, että kuormasi ei kuluta enempää kuin 5 A, käytä myös suurempimittaisia johtoja virran johtimiin.
PIC-mikrokontrolleripohjaisen ampeerimittariprojektin täydellinen toiminta on esitetty alla olevassa videossa. Toivottavasti sait projektin toimimaan ja nautit siitä. Jos sinulla on epäilyksiä, voit kirjoittaa ne alla olevaan kommenttiosioon tai lähettää ne foorumeillemme.