![Arduino precizni i tačni voltmetar (0-90V DC): 3 koraka Arduino precizni i tačni voltmetar (0-90V DC): 3 koraka](https://i.howwhatproduce.com/images/002/image-5057-j.webp)
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37
U ovom uputstvu sam izgradio voltmetar za mjerenje visokog napona DC (0-90v) sa relativnom preciznošću i tačnošću koristeći Arduino Nano.
Testna mjerenja koja sam obavila bila su dovoljno točna, uglavnom unutar 0,3v od stvarnog napona izmjerenog standardnim voltmetrom (koristio sam Astro AI DM6000AR). Ovo je dovoljno blizu za namjeravanu upotrebu uređaja.
Za arhiviranje sam upotrijebio referentnu vrijednost napona (4.096v) i razdjelnik napona.
Sa strane koda, naravno, koristio sam opciju "vanjske reference" za Arduino Nano i primjer "Smoothing" u Arduino vodičima.
Supplies
1 x Arduino Nano - veza
1 x Oled ekran (SSD 1306) - veza
1 x 1/4W 1% otpornici - 1 k ohm - veza
1 x 1/4W 1% otpornici - 220 k ohm - veza
1 x 1/4W 1% otpornici - 10 k ohm - veza
1 x 4.096v LM4040DIZ -4.1 Referenca napona - 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: Sheme
![Sheme Sheme](https://i.howwhatproduce.com/images/002/image-5057-1-j.webp)
![Sheme Sheme](https://i.howwhatproduce.com/images/002/image-5057-2-j.webp)
Spojio sam sve dijelove prema gornjoj shemi. Konkretno, odabrao sam referentnu vrijednost napona 4.096 da ostane što je moguće bliže oznaci 5v kako bih izbjegao gubitak rezolucije.
Slijedeći tablicu s podacima, odabrao sam otpornik od 1K ohma za referentni napon, iako se mogla koristiti druga vrijednost. Referentni napon se napaja sa Nano 5v pina.
Ideja kola je da istosmjerni napon koji se mjeri prolazi kroz naponski otpornik. Skalirani napon zatim ulazi u analogni pin Arduina radi uzorkovanja, zaglađivanja, ponovnog skaliranja i prikaza na OLed zaslonu.
Pokušao sam pojednostaviti stvari:)
Korak 2: Izračun koda i otpornika
Vrijednosti otpornika su odabrane prema preporuci (ako se ne varam, ovo je na Arduino/Atmega podatkovnom listu) da impedancija bude ispod 10 k ohma.
Da pojednostavim stvari, napravio sam proračunsku tablicu koja automatizira proračune u slučaju da želite koristiti različite vrijednosti otpornika: Veza do Google tablice
Evo koda koji sam koristio za ovaj projekat:
#include
#include U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (rotacija, [reset]) plivajući napon = 0; // koristi se za spremanje vrijednosti napona plovak Radjust = 0,043459459; // Faktor razdjelnika napona (R2 /R1+R2) plovak vbat = 0; // konačni napon nakon kalcija- napon plovka akumulatora Vref = 4.113; // Referenca napona - izmjerena stvarna vrijednost. Nominalna vrijednost 4.096v const int numReadings = 50; // broj uzoraka za čitanje - povećanje radi boljeg ujednačavanja. Umanji za brže čitanje. int očitanja [numReadings]; // očitavanja sa analognog ulaza int readIndex = 0; // indeks trenutnog očitanja unsigned long total = 0; // tekući ukupni int prosjek = 0; // varijable za osvježavanje ekrana bez upotrebe kašnjenja unsigned long previousMillis = 0; // pohranit će se zadnji put kada je ekran ažuriran // konstante se neće promijeniti: const long interval = 50; // interval u kojem se osvježava ekran (u milisekundama) void setup (void) {analogReference (EXTERNAL); // koristite AREF za referentni napon 4.096. Moj referentni stvarni napon je 4.113v u8g2.begin (); for (int thisReading = 0; thisReading = numReadings) {//… premotavanje na početak: readIndex = 0; } // izračunaj prosjek: average = (total / numReadings); napon = prosjek * (Vref / 1023,0); //4.113 je Vref vbat = napon/Radjust; // Postavljanje kašnjenja za osvježavanje ekrana pomoću Millisa if (currentMillis - previousMillis> = interval) {// spremanje posljednjeg ažuriranja ekrana previousMillis = currentMillis; u8g2.clearBuffer (); // brisanje unutarnjeg izbornika // Prikaz napona paketa u8g2.setFont (u8g2_font_fub20_tr); // 20px font u8g2.setCursor (1, 20); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // font od 10 px u8g2.setCursor (76, 20); u8g2.print ("Volti"); u8g2.setCursor (1, 40); u8g2.print ("CanadianWinters '"); u8g2.setCursor (1, 60); u8g2.print ("Precizan napon"); } u8g2.sendBuffer (); // prijenos interne memorije na kašnjenje prikaza (1); }
Imajte na umu da sam pomalo zahrđao s Arduino kodiranjem, pa ako pronađete bilo kakvu grešku ili način da poboljšate kôd, otvoren sam za prijedloge:)
Korak 3: Hajde da testiramo
![Hajde da ga isprobamo! Hajde da ga isprobamo!](https://i.howwhatproduce.com/images/002/image-5057-3-j.webp)
![Hajde da ga isprobamo! Hajde da ga isprobamo!](https://i.howwhatproduce.com/images/002/image-5057-4-j.webp)
![Hajde da ga isprobamo! Hajde da ga isprobamo!](https://i.howwhatproduce.com/images/002/image-5057-5-j.webp)
Za testiranje ovog voltmetra koristio sam 8x 9v baterije koje sam nabavio u lokalnoj trgovini. 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, uspio sam to arhivirati, osim na gornjem kraju mjerenja.
Nadam se da vam se svidio ovaj Instructable i javite mi svoja razmišljanja!
Preporučuje se:
Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Senzor za Python: 4 koraka
![Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Senzor za Python: 4 koraka Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Senzor za Python: 4 koraka](https://i.howwhatproduce.com/images/004/image-9994-j.webp)
Raspberry Pi - MPL3115A2 Precizni senzor visinomera sa Python vodičem: MPL3115A2 koristi MEMS senzor pritiska sa I2C interfejsom za pružanje tačnih podataka o pritisku/nadmorskoj visini i temperaturi. Izlazi senzora digitalizirani su 24-bitnim ADC-om visoke rezolucije. Interna obrada uklanja zadatke kompenzacije iz
DropArt - Precizni fotografski kolajder s dva ispuštanja: 11 koraka (sa slikama)
![DropArt - Precizni fotografski kolajder s dva ispuštanja: 11 koraka (sa slikama) DropArt - Precizni fotografski kolajder s dva ispuštanja: 11 koraka (sa slikama)](https://i.howwhatproduce.com/images/006/image-15880-j.webp)
DropArt - Precizni fotografski sudarač sa dvije kapi: Pozdrav svima, u ovom uputstvu predstavljam svoj dizajn za računarski upravljani sudarač sa dvije kapljice tekućine. Prije nego počnemo s detaljima dizajna, mislim da ima smisla objasniti tačno koja je svrha dizajna. Zabava, interesi
Precizni sat: 3 koraka
![Precizni sat: 3 koraka Precizni sat: 3 koraka](https://i.howwhatproduce.com/images/007/image-18653-j.webp)
Precizni sat: Svima su nam potrebni satovi pa zašto ne napravite sami u ovom uputstvu, pokazat ću vam kako napraviti precizni sat nakon što ga postavite automatski će pratiti trenutno vrijeme u pozadini svega. Iako mu je potrebno samo vrlo malo
SnappyXO precizni robot za kretanje: 6 koraka
![SnappyXO precizni robot za kretanje: 6 koraka SnappyXO precizni robot za kretanje: 6 koraka](https://i.howwhatproduce.com/images/006/image-17693-15-j.webp)
SnappyXO precizni robot za kretanje: Neka vaš Arduino robot ide ravno na određenu udaljenost ili se okreće do određenog kuta pomoću biblioteke PreciseMovement Arduino. Robotu je potreban kotač za valjanje ili ekvivalent za minimiziranje trenja pri uvijanju.https: //www.pololu. com/produ
Arduino: Precizni držač za koračni motor: 19 koraka
![Arduino: Precizni držač za koračni motor: 19 koraka Arduino: Precizni držač za koračni motor: 19 koraka](https://i.howwhatproduce.com/images/002/image-3950-62-j.webp)
Arduino: Precision Lib za koračni motor: Danas ću vam pokazati biblioteku za vozača motora s punim korakom s krajnjim prekidačima i kretanje motora s ubrzanjem i mikrokorakom. Ovaj Lib, koji radi i na Arduino Uno i na Arduino Mega, omogućuje vam da premještate motore ne samo na