Kuidas teha digitaalset alalisvoolumõõturit Arduino abil?

Voltmeeter on pingemõõteseade, mida kasutatakse pinge mõõtmiseks elektriskeemi teatud punktides. Pinge on potentsiaalne erinevus, mis tekib elektriskeemi kahe punkti vahel. Voltmetreid on kahte tüüpi. Mõned voltmeetrid on mõeldud alalisvooluahelate pinge mõõtmiseks ja teised voltmeetrid vahelduvvooluahelate pinge mõõtmiseks. Neid voltmeetreid iseloomustatakse lisaks kahte kategooriasse. Üks on digitaalne voltmeeter, mis näitab mõõtmisi digitaalsel ekraanil, ja teine ​​on analoog voltmeeter, mis kasutab nõela skaala täpsustamiseks, et näidata meile täpset näitu.



Digitaalne voltmeeter

Selles projektis valmistame voltmeeter Arduino Uno abil. Selgitame selles artiklis digitaalse voltmeetri kahte konfiguratsiooni. Esimeses konfiguratsioonis saab mikrokontroller mõõta pinget vahemikus 0–5 V. Teises konfiguratsioonis suudab mikrokontroller mõõta pinget vahemikus 0–50 V.



Kuidas teha digitaalset voltmeetrit?

Kuna me teame, et voltmeetreid on kahte tüüpi, analoog-voltmeeter ja digitaalne voltmeeter. On veel mõningaid analoogvoltmeetrite tüüpe, mis põhinevad seadme konstruktsioonil. Mõned neist tüüpidest hõlmavad püsimagnetiga liikuva mähise voltmeeter, alaldi tüüpi voltmeeter, liikuva raua voltmeeter jne. Digitaalse voltmeetri turuletoomise peamine eesmärk oli suurem analoogvoltmeetrites esinevate vigade tõenäosus. Erinevalt analoogvoltmeetrist, mis kasutab nõela ja skaalat, näitab digitaalne voltmeeter näidud ekraanil otse numbritena. See välistab võimaluse Nullviga . Veaprotsenti vähendatakse 5% -lt 1% -le, kui oleme üle läinud analoog-voltmeetrilt digitaalsele voltmeetrile.



Nüüd, kui teame selle projekti abstraktsust, kogugem veel teavet ja alustage Arduino Uno abil digitaalse voltmeetri valmistamist.



1. samm: komponentide kogumine

Parim lähenemine mis tahes projekti alustamiseks on koostada komponentide loetelu ja läbi viia nende komponentide lühitutvustus, sest keegi ei taha jääda projekti keskele lihtsalt puuduva komponendi tõttu. Allpool on loetelu komponentidest, mida me selles projektis kasutame:

  • Arduino uno
  • 10k-oomi potentsiomeeter
  • Hüppaja juhtmed
  • 100k-oomi takisti
  • 10k-oomi takisti
  • 12 V vahelduvvoolu-alalisvooluadapter (kui Arduinot ei toida arvuti)

2. samm: komponentide uurimine

Arduino UNO on mikrokontrolleri plaat, mis koosneb mikrokiibist ATMega 328P ja mille on välja töötanud Arduino.cc. Sellel plaadil on digitaalsete ja analoogandmete tihvtide komplekt, mida saab liidestada teiste laiendusplaatide või -ahelatega. Sellel plaadil on 14 digitaalset tihvti, 6 analoognõela ja see on programmeeritav Arduino IDE (integreeritud arenduskeskkond) kaudu B-tüüpi USB-kaabli kaudu. Selle toitmiseks on vaja 5V PEAL ja a C kood tegutsema.

Arduino uno



LCD-d on näha igas elektroonikaseadmes, mis peab kasutajatele kuvama teksti või numbrit või pilti. LCD on kuvarimoodul, milles vedelkristalle kasutatakse nähtava pildi või teksti tootmiseks. A 16 × 2 LCD-ekraan on väga lihtne elektrooniline moodul, mis kuvab ekraanil 16 märki ja ekraanil korraga kahte rida. Nendel LCD-del tähe kuvamiseks kasutatakse 5 × 7 pikslist maatriksit.

16 × 2 LCD-ekraan

TO Leivaplaat on jooteta seade. Seda kasutatakse ajutiste prototüüpide elektrooniliste ahelate ja disainide valmistamiseks ja katsetamiseks. Enamik elektroonikakomponente on lihtsalt paneeliga ühendatud, lihtsalt sisestades nende tihvtid leivaplaati. Leivaplaadi augud asetatakse metallribaga ja augud ühendatakse kindlal viisil. Aukude ühendused on näidatud alloleval skeemil:

Leivaplaat

3. samm: vooluringi skeem

Esimene vooluring, mille mõõtepiirkond on 0–5 V, on näidatud allpool:

Voltmeeter 0–5 V jaoks

Teine vooluring, mille mõõtepiirkond on 0–50 V, on näidatud allpool:

Voltmeeter 0-50V

4. samm: tööpõhimõte

Arduino põhise digitaalse alalisvoolumõõturi selle projekti tööd selgitatakse siin. Digitaalses voltmeetris teisendatakse analoogkujul mõõdetud pinge analoog-digitaalmuunduri abil vastavaks digitaalseks väärtuseks.

Esimeses vooluringis, mille mõõtepiirkond on 0–5 V, võetakse sisend analoognõelale 0. Analoognõel loeb suvalise väärtuse vahemikus 0 kuni 1024. Seejärel teisendatakse see analoogväärtus digitaalseks, korrutades see kogupingega, mis on 5 V, ja jagades kogu eraldusvõimega, mis on 1024.

Kuna teises vooluringis tuleb vahemikku suurendada 5 V-lt 50 V-le, tuleb teha pingejaguri konfiguratsioon. Pingejaguri ahel tehakse 10k-oomi ja 100k-oomi takisti abil. See pingejaguri konfiguratsioon aitab meil viia sisendpinge Arduino Uno analoogsisendi vahemikku.

Kõik matemaatilised arvutused tehakse Arduino Uno programmeerimisel.

5. samm: komponentide kokkupanek

LCD-mooduli ühendus Arduino Uno plaadiga on mõlemas vooluringis sama. Ainus erinevus on see, et esimeses vooluringis on sisendivahemik madal, nii et see saadetakse otse Arduino analoognõelale. Teises vooluringis kasutatakse mikrokontrolleri plaadi sisendpoolel pingejaguri konfiguratsiooni.

  1. Ühendage LCD-mooduli Vss ja Vdd tihvt vastavalt Arduino plaadi maapinnaga ja 5V-ga. Vee tihvt on tihvt, mida kasutatakse ekraani piirangute reguleerimiseks. See on ühendatud potentsiomeetriga, mille üks tihvt on ühendatud 5 V-ga ja teine ​​maandusega.
  2. Ühendage LCD-mooduli RS- ja E-tihvt vastavalt Arduino plaadi pin2 ja pin3 külge. LCD-RW-tihvt on ühendatud maapinnaga.
  3. Kuna kasutame LCD-moodulit 4-bitises andmerežiimis, kasutatakse ka selle nelja tihvti D4 – D7. LCD-mooduli D4-D7 tihvtid on ühendatud mikrokontrolleri plaadi pin4-pin7-ga.
  4. Esimeses vooluringis pole sisendpoolel täiendavaid vooluringe, kuna maksimaalne mõõdetav pinge on 5 V. Teises vooluringis, kuna mõõtepiirkond on vahemikus 0-50 V, tehakse pingejaguri konfiguratsioon 10k-oomi ja 100k-oomi takisti abil. Tuleb märkida, et kõik põhjused on ühised.

6. samm: Arduinoga alustamine

Kui te pole Arduino IDE-ga varem tuttav, ärge muretsege, sest allpool näete Arduino IDE abil mikrokontrolleri plaadil koodi kirjutamise selgeid samme. Arduino IDE uusima versiooni saate alla laadida siit siin ja järgige allpool nimetatud samme:

  1. Kui Arduino tahvel on arvutiga ühendatud, avage juhtpaneel ja klõpsake nuppu „Riistvara ja heli”. Seejärel klõpsake nuppu „Seadmed ja printerid”. Leidke selle sadama nimi, millega teie Arduino tahvel on ühendatud. Minu puhul on see COM14, kuid see võib teie arvutis olla erinev.

    Sadama leidmine

  2. LCD-mooduli kasutamiseks peame lisama raamatukogu. Teek on lisatud allpool allalaadimislingile koos koodiga. Minema Visand> Kaasa teek> Lisa .ZIP-teek.

    Kaasa teek

  3. Nüüd avage Arduino IDE. Tööriistadest seadke Arduino tahvel olekuks Arduino / Genuino UNO.

    Laua määramine

  4. Valige samas menüüs Tööriist pordi number, mida nägite juhtpaneelil.

    Pordi seadistamine

  5. Laadige alla allolev kood ja kopeerige see oma IDE-sse. Koodi üleslaadimiseks klõpsake üleslaadimise nuppu.

    Laadi üles

Koodi saate alla laadida klõpsates siin.

7. samm: kood

Kood on üsna lihtne ja hästi kommenteeritud. Kuid siiski selgitatakse mõnda neist allpool.

1. Alguses kasutatakse teeki, et saaksime LCD-mooduli liidestada Arduino Uno plaadiga ja vastavalt sellele programmeerida. Initsialiseeritakse Arduino plaadi tihvtid, mida kasutatakse LCD-mooduliga ühenduse loomiseks. Seejärel lähtestatakse erinevad muutujad, et salvestada väärtused tööajale, mida kasutatakse hiljem arvutustes.

#include 'LiquidCrystal.h' // kaasake teek LCD-mooduli liideseks Arduino pardal LiquidCrystal lcd (2, 3, 4, 5, 6, 7); // kasutatava LCD-mooduli tihvtid ujukpinge = 0,0; ujukitemp = 0,0; // muutuja sisendi digitaalse vaue salvestamiseks int analog_value; // muutuja analoogväärtuse salvestamiseks sisendisse

2. kehtetu seadistamine () on funktsioon, mis töötab ainult üks kord, kui seade käivitub või vajutatakse lubamisnuppu. Siin oleme alustamiseks LCD initsialiseerinud. Kui vedelkristallekraan käivitub, kuvatakse tekst “Arduino Based Digital Voltmeter”. Selles funktsioonis on seatud ka ülekandekiirus. Baudi kiirus on kiirus bittides sekundis, mille kaudu Arduino suhtleb väliste seadmetega.

void setup () {lcd.begin (16, 2); // alusta suhtlust LCD-ga lcd.setCursor (0,0); // alusta kursorit algusest lcd.print ('Arduino põhine'); // Prindi tekst esimesele reale lcd.setCursor (0,1); // Viige kurv järgmisele reale lcd.print ('Digital Voltmeter'); // teksti printimine teise rea viivitusega (2000); // oota kaks sekundit}

3. void loop () on funktsioon, mis töötab pidevalt silmusena. Siin loetakse sisendi poolel analoogväärtust. Seejärel teisendatakse see analoogväärtus digitaalseks. Tingimus rakendatakse ja lõplikud mõõtmised kuvatakse LCD-ekraanil

void loop () {analoog_väärtus = analogRead (A0); // Analoogväärtuse temp = (analoogväärtus * 5,0) / 1024,0 lugemine; // analoogväärtuse teisendamine digitaalses pinges = temp / (0,0909); kui (pinge< 0.1) { voltage=0.0; } lcd.clear(); // Clear any text on the LCD lcd.setCursor(0, 0); // Mve the cursor to the initial position lcd.print('Voltage= '); // Print Voltgae= lcd.print(voltage); // Print the final digital value of voltage lcd.setCursor(13,1); // move the cursor lcd.print('V'); // print the unit of voltage delay(30); // wait for 0.3 seconds }

Rakendused

Mõned selle digitaalse voltmeetri rakendused hõlmavad järgmist:

  1. Ülaltoodud vooluahelat saab kasutada erinevate pingevahemike suure täpsusega mõõtmiseks igas elektriahelas.
  2. Kui teeme ahelas väikeseid muudatusi, saab mikrokontroller mõõta pinget ka vahelduvvooluahelates.