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, Novembar
Anonim
Image
Image
Korak 1: Sheme
Korak 1: Sheme

U ovom uputstvu sam izgradio voltmetar za mjerenje visokog napona DC (0-100V) sa relativnom preciznošću i tačnošću koristeći Arduino Nano i ADS 1115 ADC.

Ovo je druga verzija voltmetra koja se koristila mojim prethodnim instrukcijama 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.

Supplies

1 x Arduino Nano - veza

1 x Oled ekran (SSD 1306) - veza

1 x ADS 1115 - 16 -bitni ADC - veza

1 x 1/4W (ipak predlažem korištenje otpornika od 1W) 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 - Link

USB Power Bank - veza

9V baterije - veza

CanadianWinters je učesnik programa Amazon Services LLC Associates, programa za oglašavanje partnera koji je osmišljen kako bi web lokacijama omogućio zaradu putem povezivanja na Amazon.com i pridružene web stranice. Korištenjem ovih veza, kao Amazon saradnik, zarađujem od kvalificiranih kupovina, č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 radi čitanja, 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 prilično tačnim i preciznim. Da 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 je malo buke kada nije bila priključena baterija (0 volti). Koristio sam serijski monitor Arduina za prikaz vrijednosti ADC -a i ispravljanje/podešavanje pomoću koda.

Kao i u prethodnim uputama, napravio sam proračunsku tablicu koja automatizira prorač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 projekat:

#include

#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 ekrana bez odlaganja unsigned long previousMillis = 0; // pohranit će zadnji put osvježavanje ekrana // konstante se neće promijeniti: const long interval = 250; // interval u kojem se osvježava ekran (u milisekundama) void setup (void) {Serial.begin (9600); u8g2.begin (); ads.begin (); } void petlja (void) {int16_t adc0; // 16 bitovi ADC čitanje ulaza A0 adc0 = ads.readADC_SingleEnded (0); napon = ((adc0 + calib) * 0,1875)/1000; bez potpisa duga strujaMillis = millis (); vbat = napon/Radjust; // Sprječavanje prikaza negativnog napona kada je baterija isključena if (vbat = interval) {previousMillis = currentMillis; u8g2.clearBuffer (); // brisanje unutrašnjeg menija // 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); // 35px font u8g2.setCursor (1, 42); u8g2.print (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: Hajde da testiramo!
Korak 3: Hajde da testiramo!

Za testiranje ovog voltmetra koristio sam 10x 9v baterije koje sam nabavio u lokalnoj trgovini. Ovaj put sam mogao 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 upakuje u štampanu ploču i malu kutiju, ovo će biti lijepo i prenosivo mjerilo 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 Oled/Arduino mjeraču 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 ovo arhivirati! Većina čitanja je na licu mjesta!

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

Preporučuje se: