Sadržaj:

Arduino voltmetar (0-100V DC) - verzija 2 (bolja): 3 koraka
Arduino voltmetar (0-100V DC) - verzija 2 (bolja): 3 koraka

Video: Arduino voltmetar (0-100V DC) - verzija 2 (bolja): 3 koraka

Video: Arduino voltmetar (0-100V DC) - verzija 2 (bolja): 3 koraka
Video: Как использовать светодиодный семисегментный дисплей и рассчитать значение его резисторов 2024, Lipanj
Anonim
Image
Image
Korak 1: Sheme
Korak 1: Sheme

U ovoj instrukciji sam izgradio voltmetar za mjerenje visokog napona DC (0-100V) s relativnom preciznošću i točnošću pomoću Arduino Nano-a i ADS 1115 ADC-a.

Ovo je druga verzija voltmetra koja se koristila mojim prethodnim uputama ovdje:

Testna mjerenja koja sam napravio bila su točna, uglavnom unutar 0,1v od stvarnog napona izmjerenog standardnim voltmetrom (koristio sam Astro AI DM6000AR).

Ovo je mnogo bolje i lakše po mom mišljenju nego korištenje vanjske referentne naponske vrijednosti na Arduinu.

Pribor

1 x Arduino Nano - veza

1 x Oled zaslon (SSD 1306) - veza

1 x ADS 1115 - 16 -bitni ADC - veza

1 x 1/4W (ipak predlažem korištenje otpornika od 1 W) 1% otpornika - 220 k ohma - veza

1 x 1/4 W (ipak predlažem korištenje otpornika od 1 W) 1% otpornici - 10 k ohma - veza

Oglasna ploča i žice - veza

Astro AI DM6000AR - veza

USB Power Bank - veza

9V baterije - veza

CanadianWinters sudionik je programa Amazon Services LLC Associates Program, programa za oglašavanje povezanih osoba osmišljen kako bi web stranicama omogućio zaradu povezivanjem na Amazon.com i pridružena web mjesta. Korištenjem ovih veza, kao suradnik Amazona, zarađujem od kvalificiranih kupnji, čak i ako kupite nešto drugo-i to vas neće ništa koštati.

Korak 1: Korak 1: Sheme

Korak 1: Sheme
Korak 1: Sheme

Spojio sam sve dijelove prema gornjoj shemi.

Priključio sam ADDR pin ADC1115 na masu. Ovo postavlja adresu ADC -a na 0x48.

Korak 2: Korak 2: Izračun koda i otpornika

Korak 2: Izračun koda i otpornika
Korak 2: Izračun koda i otpornika

Kao i u prethodnim uputama, ideja kruga je da istosmjerni napon koji se mjeri prolazi kroz naponski otpornik. Skalirani napon zatim ulazi u analogni pin ADC pretvarača za čitanje, zatim se prenosi na Arduino putem I2C, a zatim ponovno skalira i prikazuje na OLed zaslonu.

U ovom slučaju nisam koristio nikakvo usrednjavanje ili zaglađivanje u kodu, jer se očitanja čine vrlo točnim i preciznim. Kako biste smanjili šum, možda ćete htjeti dodati mali kondenzator između A0 (na ADC -u) i mase. To ipak nije bilo potrebno za moj test.

Jedna stvar koju sam primijetio bila je malo buke kad nije bila spojena baterija (0 volti). Koristio sam serijski monitor Arduina za prikaz vrijednosti ADC -a i ispravljanje/podešavanje putem koda.

Kao i u prethodnim uputama, napravio sam proračunsku tablicu koja automatizira izračune u slučaju da želite koristiti različite vrijednosti otpornika u razdjelniku napona: Veza do Google tablice

Evo koda koji sam koristio za ovaj projekt:

#uključi

#include #include #include Adafruit_ADS1115 oglasi (0x48); // Adresa ADC -a U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (rotacija, [reset]) int calib = 7; // Vrijednost kalibracije ADS1115 za smanjenje greške plivajući napon = 0; // koristi se za spremanje vrijednosti napona plovak Radjust = 0,043421905; // Faktor razdjelnika napona (R2 / R1+R2) plovak vbat = 0; // konačni napon nakon kalcija- napon baterije // varijable za osvježavanje zaslona bez odgode nepotpisano dugo previousMillis = 0; // pohranit će zadnji put osvježavanje zaslona // konstante se neće promijeniti: const long interval = 250; // interval u kojem se osvježava zaslon (u milisekundama) void setup (void) {Serial.begin (9600); u8g2.begin (); ads.begin (); } void loop (void) {int16_t adc0; // 16 bita ADC čitanje ulaza A0 adc0 = ads.readADC_SingleEnded (0); napon = ((adc0 + calib) * 0,1875)/1000; bezznačna duga strujaMillis = millis (); vbat = napon/Radjust; // Sprječavanje prikaza negativnog napona kada je baterija isključena if (vbat = interval) {previousMillis = currentMillis; u8g2.clearBuffer (); // brisanje unutarnjeg izbornika // Pack Voltage display - Pack Voltage display - Fontovi na ovoj stranici: https://github.com/olikraus/u8g2/wiki/fntlistall //u8g2.setFont(u8g2_font_fub20_tr); // font 20px u8g2.setFont (u8g2_font_fub35_tr); // font 35px u8g2.setCursor (1, 42); u8g2.tisak (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // font od 10 px u8g2.setCursor (1, 60); u8g2.print ("Volti"); } u8g2.sendBuffer (); // prijenos interne memorije na kašnjenje prikaza (1); }

Korak 3: Korak 3: Hajde da ga isprobamo

Korak 3: Isprobajmo!
Korak 3: Isprobajmo!

Za testiranje ovog voltmetra koristio sam 10x 9v baterije koje sam nabavio u lokalnoj trgovini. Ovaj put mogao sam izmjeriti do 97 volti! Planiram koristiti ovaj voltmetar za mjerenje napona na baterijama električnih bicikala (imaju napone u rasponu od 24-60v s povremenim 72v).

Nakon što se elektronika zapakira u tiskanu ploču i malu kutiju, ovo će biti lijepo i prijenosno mjerač baterije. Grafika i fontovi na OLED -u mogu se prilagoditi vašim potrebama (npr. Veći font za lakše čitanje). Moj cilj je bio očitavanje napona na mjeraču Oled/Arduino nedaleko od mog digitalnog multimetra. Ciljao sam na +/- 0, 3v max deltu.

Kao što možete vidjeti iz videa na početku Instructablea, uspio sam to arhivirati! Većina čitanja bila je na licu mjesta!

Nadam se da vam se svidio ovaj Instructable i javite mi svoja razmišljanja!

Preporučeni: