Sadržaj:
Video: Arduino precizni i točni voltmetar (0-90V DC): 3 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
U ovoj instrukciji sam izgradio voltmetar za mjerenje visokog napona DC (0-90v) s relativnom preciznošću i toč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). To 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.
Pribor
1 x Arduino Nano - veza
1 x Oled zaslon (SSD 1306) - veza
1 x 1/4W 1% otpornika - 1 k ohm - veza
1 x 1/4W 1% otpornici - 220 k ohm - Veza
1 x 1/4W 1% otpornika - 10 k ohma - veza
1 x 4.096v LM4040DIZ -4.1 Referenca napona - 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: Sheme
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.
Slijedom podatkovnog lista, za referentni napon odabrao sam otpornik od 1K ohma, iako se mogla koristiti druga vrijednost. Referentni napon napaja se iz Nano 5v pina.
Ideja kruga 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 odabrane su prema preporuci (ako se ne varam, ovo je na Arduino/Atmega podatkovnom listu) kako bi impedancija bila ispod 10 k ohma.
Da bih pojednostavio stvari, napravio sam proračunsku tablicu koja automatizira izračune u slučaju da želite koristiti različite vrijednosti otpornika: Veza na Google tablicu
Evo koda koji sam koristio za ovaj projekt:
#uključi
#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 baterije Vref = 4.113; // Referenca napona - izmjerena stvarna vrijednost. Nominalna vrijednost 4.096v const int numReadings = 50; // broj uzoraka za čitanje - povećanje radi boljeg zaglađivanja. Umanji za brže čitanje. int očitanja [numReadings]; // očitanja s analognog ulaza int readIndex = 0; // indeks trenutnog očitanja unsigned long total = 0; // tekući ukupni int prosjek = 0; // varijable za osvježavanje zaslona bez korištenja kašnjenja unsigned long previousMillis = 0; // pohranit će se zadnji put kad je zaslon ažuriran // konstante se neće promijeniti: const long interval = 50; // interval u kojem se osvježava zaslon (u milisekundama) void setup (void) {analogReference (EXTERNAL); // upotrijebite 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čunati prosjek: average = (total / numReadings); napon = prosjek * (Vref / 1023,0); //4.113 je Vref vbat = napon/Radjust; // Postavljanje kašnjenja za osvježavanje zaslona pomoću Millisa if (currentMillis - previousMillis> = interval) {// spremanje posljednjeg ažuriranja zaslona previousMillis = currentMillis; u8g2.clearBuffer (); // brisanje unutarnjeg izbornika // Pack Voltage display u8g2.setFont (u8g2_font_fub20_tr); // font 20px u8g2.setCursor (1, 20); u8g2.tisak (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // font od 10 px u8g2.setCursor (76, 20); u8g2.print ("Volti"); u8g2.setKursor (1, 40); u8g2.print ("CanadianWinters '"); u8g2.setKursor (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 pogrešku ili način za poboljšanje koda, otvoren sam za prijedloge:)
Korak 3: Isprobajmo
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 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, uspio sam to arhivirati osim na gornjem kraju mjerenja.
Nadam se da vam se svidio ovaj Instructable i javite mi svoja razmišljanja!
Preporučeni:
Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Senzor za Python: 4 koraka
Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Python Vodič: MPL3115A2 koristi MEMS osjetnik tlaka s I2C sučeljem za pružanje točnih podataka o tlaku/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 sudarač s dvije kapi: Pozdrav svima, u ovom uputstvu predstavljam svoj dizajn za računarski upravljani sudarač s dvije kapljice tekućine. Prije nego počnemo s detaljima dizajna, mislim da ima smisla objasniti točno koja je svrha dizajna. Zabava, interesi
Precizni svjetlosni pištolj Wiimote za malinu PI: 9 koraka (sa slikama)
Točan Wiimote Light Gun za Raspberry PI: Uobičajeno, Wii daljinski upravljač koji se koristi kao svjetlosni pištolj nije dovoljno točan za retro igre poput NES Duck Hunt, jer Wii daljinski upravljač zapravo ne odabire točku na televizoru na koju je usmjeren. Ne može! Wii Remote ima infracrvenu kameru na prednjoj strani
Precizni sat: 3 koraka
Precizni sat: Svi nam trebaju satovi pa zašto ne napravite sami u ovom uputstvu, pokazat ću vam kako napraviti precizni sat nakon što postavite, automatski će pratiti trenutno vrijeme u pozadini svega. Iako je potrebno samo vrlo malo
Arduino: Precizni držač za koračni motor: 19 koraka
Arduino: Precision Lib za koračni motor: Danas ću vam pokazati biblioteku za vozača motora s punim korakom s graničnim prekidačima i kretanje motora s ubrzanjem i mikro korakom. Ovaj Lib, koji radi i na Arduino Uno i na Arduino Mega, omogućuje vam premještanje motora temeljenih ne samo na