- Tarvittavat materiaalit
- Piirikaavio
- Mittayksikkö
- Laskenta- ja näyttöyksikkö
- Arduinon ohjelmointi
- Kuinka mitata tarkemmin?
- Työskentely ja testaus
Elektroniikkasuunnittelijoina olemme aina riippuvaisia mittareista / instrumenteista mittaamaan ja analysoimaan piirin toimintaa. Alkaen yksinkertaisesta yleismittarista monimutkaisiin virranlaatuanalysaattoreihin tai DSO: eihin kaikilla on omat ainutlaatuiset sovelluksensa. Suurin osa näistä mittareista on helposti saatavilla, ja ne voidaan ostaa mitattavien parametrien ja niiden tarkkuuden perusteella. Mutta joskus saatamme joutua tilanteeseen, jossa meidän on rakennettava omat mittarit. Oletetaan esimerkiksi, että työskentelet aurinkosähköprojektin parissa ja haluat laskea kuormasi virrankulutuksen. Tällaisissa tilanteissa voimme rakentaa oman wattimittarin käyttämällä yksinkertaista mikro-ohjausalustaa, kuten Arduino.
Omien mittareidesi rakentaminen ei ainoastaan vähennä testauskustannuksia, vaan antaa meille myös tilaa testausprosessin helpottamiseksi. Kuten Arduinolla rakennettu wattimittari, voidaan helposti säätää seuraamaan tuloksia sarjakuvaruudulla ja piirtämään kaavio sarjapiirturiin tai lisäämällä SD-kortti jännitteen, virran ja tehon arvojen automaattiseen kirjaamiseen ennalta määrätyin välein. Kuulostaa mielenkiintoiselta !? Joten aloitetaan…
Tarvittavat materiaalit
- Arduino Nano
- LM358 Op-vahvistin
- 7805 Jännitesäädin
- 16 * 2 LCD-näyttö
- 0,22 ohmin 2 watin shuntivastus
- 10k trimmeripannu
- 10k, 20k, 2.2k, 1k vastukset
- 0,1uF kondensaattorit
- Testikuorma
- Täydellinen lauta tai leipälauta
- Juotossarja (valinnainen)
Piirikaavio
Arduino-wattimittariprojektin täydellinen piirikaavio on annettu alla.
Arduino-wattimittaripiirin ymmärtämisen helpottamiseksi se on jaettu kahteen yksikköön. Piirin yläosa on mittausyksikkö ja piirin alaosa on laskenta- ja näyttöyksikkö. Ihmisille, jotka ovat uusia tämän tyyppisissä piireissä, seurasivat tarroja. Esimerkki + 5V on tarra, mikä tarkoittaa, että kaikki nastat, joihin tarra on kytketty, tulisi ottaa huomioon, koska ne ovat yhteydessä toisiinsa. Tarroja käytetään yleensä tekemään piirikaaviosta siisti.
Piiri on suunniteltu sopimaan järjestelmiin, jotka toimivat välillä 0-24 V ja virran alue 0-1A pitäen mielessä aurinkopaneelin spesifikaation. Mutta voit helposti laajentaa aluetta, kun ymmärrät piirin toiminnan. Piirin taustalla oleva periaate on mitata kuorman ja sen läpi kulkevan virran jännite sen kuluttaman tehon laskemiseksi. Kaikki mitatut arvot näytetään 16 * 2 aakkosnumeerisessa nestekidenäytössä.
Jaetaan seuraavassa piiri pieniksi segmenteiksi, jotta voimme saada selkeän kuvan siitä, kuinka piiri on sisennetty toimimaan.
Mittayksikkö
Mittausyksikkö koostuu potentiaalijakajasta, joka auttaa meitä mittaamaan jännitettä, ja sulkuvastusta ei-invertoivalla Op-vahvistimella käytetään mittaamaan virtaa piirin läpi. Yllä olevan piirin potentiaalijakajaosa on esitetty alla
Tässä tulojännitettä edustaa Vcc, kuten aiemmin kerrottiin, suunnittelemme virtapiiriä jännitealueelle 0–24 V. Mutta Arduinon kaltainen mikro-ohjain ei voi mitata niin korkeita jännitearvoja; se voi mitata vain jännitettä 0-5 V. Joten meidän on kartoitettava (muunnettava) jännitealue 0-24V - 0-5V. Tämä voidaan tehdä helposti käyttämällä potentiaalijakajapiiriä alla olevan kuvan mukaisesti. Vastus 10k ja 2.2k muodostavat yhdessä potentiaalijakajan piirin. Potentiaalijakajan lähtöjännite voidaan laskea seuraavien kaavojen avulla. Samaa käytetään päätettäessä vastusten arvo, voit käyttää online-laskinta laskeaksesi vastuksen arvon, jos suunnittelet piiriä uudelleen.
Vout = (Vin × R2) / (R1 + R2)
Kartoitettu 0-5V voidaan saada keskiosasta, joka on merkitty nimellä Jännite. Tämä kartoitettu jännite voidaan sitten syöttää Arduino Analog -tappiin myöhemmin.
Seuraavaksi meidän on mitattava virta LOADin kautta. Koska tiedämme, että mikrokontrollerit voivat lukea vain analogista jännitettä, meidän on jotenkin muunnettava virran arvo jännitteeksi. Se voidaan tehdä yksinkertaisesti lisäämällä vastus (shuntivastus) polulle, joka Ohmin lain mukaan laskee sen yli jännitteen arvon, joka on verrannollinen sen läpi virtaavaan virtaan. Tämän jännitehäviön arvo on hyvin pieni, joten käytämme op-vahvistinta sen vahvistamiseen. Saman piiri on esitetty alla
Tällöin shuntivastuksen (SR1) arvo on 0,22 ohmia. Kuten aiemmin sanottiin, suunnittelemme virtapiiriä 0-1A: lle, joten Ohmin lain perusteella voimme laskea jännitteen pudotuksen tämän vastuksen yli, joka on noin 0,2 V, kun enintään 1A virta kulkee kuorman läpi. Tämä jännite on hyvin pieni mikrokontrollerin lukemiseen, käytämme Op-Ampia ei-kääntyvässä vahvistintilassa lisätäksesi jännitettä 0,2 V: sta korkeammalle tasolle Arduinon lukemiseksi.
Op-vahvistin ei-käänteisessä tilassa näkyy yllä. Vahvistin on suunniteltu vahvistukseksi 21 siten, että 0,2 * 21 = 4,2 V. Alla on kaavat Op-vahvistimen vahvistuksen laskemiseksi. Voit myös käyttää tätä online-vahvistuslaskinta saadaksesi vastuksen arvon, jos suunnittelet piiriä uudelleen.
Vahvistus = Vout / Vin = 1 + (Rf / Rin)
Tässä tapauksessamme Rf: n arvo on 20k ja Rin: n arvo on 1k, mikä antaa meille gian-arvon 21. Op-vahvistimen muodostama vahvistettu jännite annetaan sitten RC-suodattimelle, jossa on vastus 1k ja kondensaattori 0,1uF - suodata kaikki kytketty melu. Lopuksi jännite syötetään Arduinon analogiseen tapiin.
Viimeinen osa, joka on jäljellä mittausyksiköstä, on jännitteen säätimen osa. Koska annamme muuttuvan tulojännitteen, tarvitsemme säädetyn + 5 V: n jännitteen Arduinon ja Op-vahvistimen toimimiseksi. Tämän säädetyn jännitteen antaa 7805-jännitesäädin. Lähtöön lisätään kondensaattori kohinan suodattamiseksi.
Laskenta- ja näyttöyksikkö
Mittausyksikössä olemme suunnitelleet piirin muuntamaan jännite- ja virtaparametrit 0-5V: ksi, jotka voidaan syöttää Arduino Analog -nastoihin. Nyt piirin tässä osassa yhdistämme nämä jännitesignaalit Arduinoon ja liitämme myös 16 × 2 aakkosnumeerisen näytön Arduinoon, jotta voimme tarkastella tuloksia. Saman piiri on esitetty alla
Kuten näette, jännitetappi on kytketty analogiseen tapiin A3 ja nykyinen nasta analogiseen tapiin A4. LCD-näyttö saa virtansa 7805: n + 5 V: sta ja on kytketty Arduinon digitaalisiin nastoihin toimimaan 4-bittisessä tilassa. Olemme käyttäneet myös Con-nastaan kytkettyä potentiometriä (10k) nestekidenäytön kontrastin muuttamiseksi.
Arduinon ohjelmointi
Nyt kun olemme ymmärtäneet laitteiston hyvin, avataan Arduino ja aloitetaan ohjelmointi. Koodin tarkoituksena on lukea analoginen jännite nastoille A3 ja A4, laskea jännite, virta ja teho-arvo ja lopuksi näyttää se LCD-näytöllä. Samaan aikaan suoritettava täydellinen ohjelma on annettu sivun lopussa, jota voidaan käyttää sellaisenaan edellä käsitellylle laitteistolle. Lisäksi koodi jaetaan pieniksi katkelmiksi ja selitetään.
Kuten kaikki ohjelmat aloitamme, määrittelemällä käyttämämme nastat. Out-projektissa jännitettä ja virtaa mitataan vastaavasti A3- ja A4-nastalla ja digitaalisia nastoja 3,4,8,9,10 ja 11 käytetään LCD: n liittämiseen Arduinoon
int Luku_jännite = A3; int Luku_Virta = A4; const int rs = 3, en = 4, d4 = 8, d5 = 9, d6 = 10, d7 = 11; // Mainitse LCD-yhteyden PIN-numero LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
Olemme myös sisällyttäneet otsikkotiedoston nimeltä nestekide, jotta LCD-näyttö liitetään Arduinoon. Sitten asetustoiminnon sisällä alustetaan LCD-näyttö ja näytetään esittelyteksti nimellä “Arduino Wattmeter” ja odotetaan kaksi sekuntia ennen kuin tyhjennät sen. Saman koodi näkyy alla.
void setup () { lcd.begin (16, 2); // Alusta 16 * 2 LCD- lcd.print ("Arduino Wattmeter"); // Johdeviestirivi 1 lcd.setCursor (0, 1); lcd.print ("- Circuitdigest"); // Intro Message line 2 delay (2000); lcd.clear (); }
Pääsilmukka-toiminnon sisällä käytämme analogista lukutoimintoa jännitteen arvon lukemiseen nastoista A3 ja A4. Kuten tiedämme Arduino ADC -lähtöarvon välillä 0-1203, koska sillä on 10-bittinen ADC. Tämä arvo on sitten muunnettava arvoksi 0-5V, joka voidaan tehdä kertomalla (5/1023). Sitten taas aiemmin laitteistossa olemme kartoittaneet jännitteen todellisen arvon välillä 0-24V - 0-5V ja nykyisen muodon todellisen arvon 0-1A - 0-5V. Joten nyt meidän on käytettävä kerrointa näiden arvojen palauttamiseksi takaisin todelliseen arvoon. Tämä voidaan tehdä kertomalla se kerroinarvolla. Kertojan arvo voidaan joko laskea teoreettisesti käyttämällä laitteisto-osassa annettuja kaavoja, tai jos sinulla on tunnettu joukko jännite- ja virta-arvoja, voit laskea sen käytännössä.Olen seurannut jälkimmäistä vaihtoehtoa, koska se on yleensä tarkempi reaaliajassa. Joten tässä kerrointen arvo on 6,46 ja 0,239. Siksi koodi näyttää alla olevalta
kelluva Jännite_arvo = analoginen luku (Luku_jännite); kelluva Current_Value = analogRead (Read_Current); Jännitteen arvo = Jännitteen arvo * (5,0 / 1023,0) * 6,46; Current_Value = Current_Value * (5,0 / 1023,0) * 0,239;
Kuinka mitata tarkemmin?
Yllä oleva tapa laskea todellisen jännitteen ja virran arvo toimii hyvin. Mutta kärsii yhdestä haittapuolesta, toisin sanoen mitatun ADC-jännitteen ja todellisen jännitteen välinen suhde ei ole lineaarinen, joten yksi kertoja ei anna kovin tarkkoja tuloksia, sama koskee myös virtaa.
Joten tarkkuuden parantamiseksi voimme piirtää mitatut ADC-arvot todellisilla venttiileillä käyttämällä tunnettua arvojoukkoa ja käyttää sitten näitä tietoja kaavion piirtämiseen ja johtaa kertojayhtälö lineaarisen regressiomenetelmän avulla. Voit viitata Arduino dB -mittariin, jossa olen käyttänyt samanlaista menetelmää.
Lopuksi, kun olemme laskeneet todellisen jännitteen ja todellisen virran arvon kuorman läpi, voimme laskea tehon kaavojen avulla (P = V * I). Sitten näytämme kaikki kolme arvoa nestekidenäytössä alla olevan koodin avulla.
lcd.setCursor (0, 0); lcd.print ("V ="); lcd.print (Jännitteen arvo); lcd.print (""); lcd.print ("I ="); lcd.print (nykyinen_arvo); kelluva Virran_arvo = Jännitteen_arvo * Nykyinen_arvo; lcd.setCursor (0, 1); lcd.print ("Teho ="); lcd.print (teho_arvo);
Työskentely ja testaus
Opetuksen vuoksi olen käyttänyt perf-korttia juotamaan kaikki komponentit piirissä esitetyllä tavalla. Olen käyttänyt Phoenix-ruuviliitäntää kuorman ja normaalin DC-tynnyriliittimen liittämiseen virtalähteen liittämiseen. Arduino Nano -taulu ja LCD-näyttö on asennettu naaras Bergstikiin, jotta niitä voidaan käyttää tarvittaessa myöhemmin myöhemmin.
Kun olet saanut laitteiston valmiiksi, lataa Arduino-koodi Nano-kortillesi. Säädä trimmeripotkia säätämään nestekidenäytön kontrastitasoa, kunnes näet selkeän introtekstin. Levyn testaamiseksi liitä kuorma ruuviliittimen liittimeen ja lähde tynnyriliittimeen. Lähteen jännitteen tulisi olla yli 6 V, jotta tämä projekti toimisi, koska Arduino tarvitsi + 5 V: n toimimaan. JOS kaikki toimii hyvin, sinun pitäisi nähdä jännitteen arvo kuorman yli ja sen läpi kulkeva virta LCD-näytön ensimmäisellä rivillä ja laskettu teho LCD-näytön toisella rivillä alla olevan kuvan mukaisesti.
Jotain rakentamisen hauska osa on sen testaaminen sen tarkistamiseksi, kuinka pitkälle se toimii kunnolla. Tätä varten olen käyttänyt 12 V: n autoindikaattoreita kuormana ja RPS: ää lähteenä. Koska RPS itse voi mitata ja näyttää virran ja jännitteen arvon, meidän on helppo tarkistaa ristikkäisemme tarkkuus ja suorituskyky. Ja kyllä, käytin myös RPS: ääni kerroimen arvon kalibrointiin, jotta pääsen lähelle tarkkaa arvoa.
Koko työ löytyy tämän sivun lopussa olevasta videosta. Toivottavasti ymmärrät piirin ja ohjelman ja opit jotain hyödyllistä. Jos sinulla on ongelmia saada tämä toimimaan, lähetä se alla olevaan kommenttiosioon tai kirjoita foorumeillemme saadaksesi teknistä apua.
Tässä Arduino-pohjaisessa Wattmeter-projektissa on paljon enemmän päivityksiä, jotka voidaan lisätä automaattisen tiedonkeruun, kaavion piirtämisen, ylijännitteestä tai nykyisestä tilanteesta ilmoittamisen jne. Tehokkuuden lisäämiseksi. Pysy siis utelias ja kerro minulle, mihin käytät tätä.