Kazalo:

Arduino Volt Meter (0-100V DC) - Različica 2 (boljša): 3 koraki
Arduino Volt Meter (0-100V DC) - Različica 2 (boljša): 3 koraki

Video: Arduino Volt Meter (0-100V DC) - Različica 2 (boljša): 3 koraki

Video: Arduino Volt Meter (0-100V DC) - Različica 2 (boljša): 3 koraki
Video: Как измерить любое напряжение постоянного тока с Arduino ARDVC-01 2024, Junij
Anonim
Image
Image
Korak: Sheme
Korak: Sheme

V tem navodilu sem izdelal voltmeter za merjenje visokih napetosti DC (0-100v) z relativno natančnostjo in natančnostjo z uporabo Arduino Nano in ADS 1115 ADC.

To je druga različica voltmetra, ki sem jo uporabljal v prejšnjih navodilih:

Testne meritve, ki sem jih opravil, so bile natančne, večinoma znotraj 0,1v dejanske napetosti, izmerjene s standardnim voltmetrom (uporabil sem Astro AI DM6000AR).

To je po mojem mnenju veliko bolje in lažje kot uporaba zunanje referenčne napetosti na Arduinu.

Zaloge

1 x Arduino Nano - povezava

1 x Oled zaslon (SSD 1306) - Povezava

1 x ADS 1115 - 16 -bitni ADC - Link

1 x 1/4W (predlagam uporabo uporov 1W) 1% upori - 220k ohm - povezava

1 x 1/4W (predlagam uporabo uporov 1W) 1% upori - 10k ohm - povezava

Ogledna plošča in žice - Povezava

Astro AI DM6000AR - Povezava

USB Power Bank - Povezava

9V baterije - povezava

CanadianWinters je udeleženec programa Amazon Services LLC Associates Program, programa oglaševalskega partnerja, namenjenega spletnim mestom, da zaslužijo pristojbine s povezovanjem na Amazon.com in povezana mesta. Z uporabo teh povezav kot sodelavec pri Amazonu zaslužim s kvalificiranimi nakupi, tudi če kupite kaj drugega-in to vas ne bo stalo nič.

1. korak: 1. korak: sheme

Korak: Sheme
Korak: Sheme

Vse dele sem povezal po zgornjih shemah.

Pritrdil sem pin ADDR ADC1115 na ozemljitev. S tem nastavite naslov ADC na 0x48.

2. korak: 2. korak: Izračun kode in upora

2. korak: Izračuni kode in upora
2. korak: Izračuni kode in upora

Kot v prejšnjih navodilih je ideja vezja, da enosmerna napetost, ki jo je treba izmeriti, gre skozi napetostni upor. Prilagojena napetost in nato pride v analogni pin pretvornika ADC, ki ga je treba prebrati, nato se prek I2C prenese na Arduino in nato ponovno poveča in prikaže na zaslonu OLed.

V kodi v tem primeru nisem uporabil povprečja ali glajenja, saj se zdijo odčitki precej natančni. Če želite zmanjšati hrup, boste morda želeli dodati majhen kondenzator med A0 (na ADC) in maso. Za moj test pa to ni bilo potrebno.

Ena stvar, ki sem jo opazil, je bil malo hrupa, ko ni bila priključena baterija (0 voltov). Uporabil sem serijski monitor Arduina za prikaz vrednosti ADC in jo popravil/prilagodil s kodo.

Tako kot v prejšnjih navodilih sem naredil preglednico, ki avtomatizira izračune, če želite v razdelilniku napetosti uporabiti različne vrednosti upora: Povezava do Google Sheet

Tu je koda, ki sem jo uporabil za ta projekt:

#vključi

#include #include #include Adafruit_ADS1115 oglasi (0x48); // Naslov ADC U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (rotacija, [ponastavitev]) int calib = 7; // Vrednost umerjanja ADS1115 za zmanjšanje napake plavajoče napetosti = 0; // uporablja se za shranjevanje vrednosti napetosti float Radjust = 0,043421905; // faktor delilnika napetosti (R2 / R1+R2) plavajoči vbat = 0; // končna napetost po kalcih- napetost baterije // spremenljivke za osvežitev zaslona brez uporabe zamude unsigned long previousMillis = 0; // shrani zadnjič, ko je bil zaslon osvežen // konstante se ne bodo spremenile: const long interval = 250; // interval za osveževanje zaslona (milisekunde) void setup (void) {Serial.begin (9600); u8g2.begin (); ads.begin (); } void zanka (void) {int16_t adc0; // 16 bitov ADC branje vhoda A0 adc0 = ads.readADC_SingleEnded (0); napetost = ((adc0 + calib) * 0,1875)/1000; nepodpisani dolgi tokMillis = millis (); vbat = napetost/Radjust; // Prepreči prikaz negativne napetosti, ko je baterija odklopljena, če (vbat = interval) {previousMillis = currentMillis; u8g2.clearBuffer (); // počisti notranji meni // Pack Voltage display - Pisave na tej strani: https://github.com/olikraus/u8g2/wiki/fntlistall //u8g2.setFont(u8g2_font_fub20_tr); // pisava 20px u8g2.setFont (u8g2_font_fub35_tr); // pisava 35px u8g2.setCursor (1, 42); u8g2.tisk (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // pisava 10 px u8g2.setCursor (1, 60); u8g2.print ("Volti"); } u8g2.sendBuffer (); // prenos notranjega pomnilnika na zakasnitev prikaza (1); }

3. korak: 3. korak: Preizkusimo

3. korak: Preizkusimo!
3. korak: Preizkusimo!

Za preizkus tega voltmetra sem uporabil 10x 9v baterije, ki sem jih dobil v lokalni trgovini. Tokrat sem lahko meril do 97 voltov! Nameravam uporabiti ta voltmeter za merjenje napetosti na mojih akumulatorskih paketih za električna kolesa (imajo napetosti od 24 do 60 V z občasnimi 72 V).

Ko je elektronika zapakirana v tiskani vezje in majhno škatlo, bo to lep in prenosljiv merilnik baterije. Grafiko in pisave na OLED -u lahko prilagodite svojim potrebam (npr. Večja pisava za enostavno branje). Moj cilj je bil odčitati napetost na merilniku Oled/Arduino nedaleč od mojega digitalnega multimetra. Cilj sem bil +/- 0, 3v max delta.

Kot lahko vidite iz videoposnetka na začetku Instructable, sem to lahko arhiviral! Večina odčitkov je bila na mestu!

Upam, da ste uživali v tem navodilu in mi sporočite svoje misli!

Priporočena: