Përmbajtje:
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:10
Në këtë udhëzues, unë kam ndërtuar një voltmetër për të matur tensione të larta DC (0-90v) me saktësi dhe saktësi relative duke përdorur një Arduino Nano.
Matjet e provës që mora ishin mjaft të sakta, kryesisht brenda 0.3v të tensionit aktual të matur me një voltmetër standard (kam përdorur një Astro AI DM6000AR). Kjo është mjaft afër për përdorimin e synuar të pajisjes.
Për të arkivuar këtë kam përdorur një referencë të tensionit (4.096v) dhe ndarës të tensionit.
Nga ana e kodit, natyrisht, kam përdorur opsionin "referenca e jashtme" për Arduino Nano dhe shembullin "Zbutja" në mësimet Arduino.
Furnizimet
1 x Arduino Nano - Lidhje
1 x Ekran me Oled (SSD 1306) - Lidhje
1 x 1/4W 1% Rezistorë - 1k ohm - Lidhje
1 x 1/4W 1% Rezistorë - 220k ohm - Lidhje
1 x 1/4W 1% Rezistorë - 10k ohm - Lidhje
1 x 4.096v LM4040DIZ -4.1 Referenca e Tensionit - Lidhje
Breadboard dhe telat - Lidhje
Astro AI DM6000AR - Lidhje
USB Power Bank - Lidhje
Bateri 9V - Lidhje
CanadianWinters është pjesëmarrës në Programin e Shërbimeve Amazon LLC Associates, një program reklamimi filial i krijuar për të siguruar një mjet për faqet që të fitojnë tarifa duke u lidhur me Amazon.com dhe faqet e lidhura. Duke përdorur këto lidhje, si një Amazon Associate fitoj nga blerjet kualifikuese, edhe nëse blini diçka tjetër-dhe nuk do t'ju kushtojë asgjë.
Hapi 1: Skemat
I lidha të gjitha pjesët sipas skemave të mësipërme. Në veçanti zgjodha referencën e tensionit 4.096 për të qëndruar sa më afër shenjës 5v për të shmangur humbjen e rezolucionit.
Duke ndjekur fletën e të dhënave, unë zgjodha një rezistencë 1K ohm për referencën e tensionit edhe pse mund të përdoret një vlerë e ndryshme. Tensioni për referencën furnizohet nga kunja Nano 5v.
Ideja e qarkut është që tensioni DC që do të matet kalon përmes një rezistori të tensionit. Tensioni i shkallëzuar dhe më pas futet në kunjin analog të Arduino për të marrë mostrën, zbutur, ri-shkallëzuar dhe shfaqur në ekranin OLed.
Unë u përpoqa t'i mbaj gjërat të thjeshta:)
Hapi 2: Llogaritjet e Kodit dhe Rezistencës
Vlerat e rezistorëve u zgjodhën ashtu siç është e këshillueshme (nëse nuk gaboj kjo është në fletën e të dhënave Arduino/Atmega) për të mbajtur rezistencën nën 10k ohm.
Për të thjeshtuar gjërat, unë bëra një tabelë që automatizon llogaritjet në rast se dëshironi të përdorni vlera të ndryshme të rezistencës: Lidhje me Google Sheet
Këtu është kodi që kam përdorur për këtë projekt:
#përfshi
#përfshi U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (rrotullimi, [rivendosja]) tensioni i notimit = 0; // përdoret për të ruajtur vlerën e tensionit float Radjust = 0.043459459; // Faktori i ndarjes së tensionit (R2 /R1+R2) noton vbat = 0; // tensioni përfundimtar pas llogaritjeve- tensioni i notimit të baterisë Vref = 4.113; // Referenca e tensionit - vlera reale e matur. Vlera nominale 4.096v const int numra Lexime = 50; // numri i mostrave të leximit - rritet për më shumë zbutje. Zvogëloni për lexim më të shpejtë. leximet int [numReadings]; // leximet nga hyrja analoge int readIndex = 0; // indeksi i leximit aktual të përgjithshëm të panënshkruar gjatë = 0; // mesatarja totale e vrapimit int = 0; // ndryshore për rifreskimin e ekranit pa përdorur vonesa të panënshkruara të mëparshmeMillis = 0; // do të ruhet herën e fundit kur ekrani u përditësua // konstantet nuk do të ndryshojnë: interval i gjatë const = 50; // intervali në të cilin do të rifreskoni ekranin (milisekonda) void setup (void) {analogReference (EXTERNAL); // përdorni AREF për tensionin referues 4.096. Tensioni im real referues është 4.113v u8g2.begin (); për (int thisReading = 0; thisReading = numReadings) {// … përfundoni deri në fillim: readIndex = 0; } // llogarisni mesataren: mesatare = (total / numReadings); tension = mesatar * (Vref / 1023.0); //4.113 është Vref vbat = tension/Radjust; // Vendosja e vonesës për rifreskimin e ekranit duke përdorur Millis nëse (currentMillis - previousMillis> = interval) {// ruani herën e fundit kur ekrani është përditësuar previousMillis = currentMillis; u8g2.clearBuffer (); // pastroni menoren e brendshme // Ekrani i tensionit të paketës u8g2.setFont (u8g2_font_fub20_tr); // font 20px u8g2.setCursor (1, 20); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // font 10 px u8g2.setCursor (76, 20); u8g2.print ("Volt"); u8g2.setCursor (1, 40); u8g2.print ("CanadianWinters '"); u8g2.setCursor (1, 60); u8g2.print ("Tension i saktë"); } u8g2.sendBuffer (); // transferimi i kujtesës së brendshme në vonesën e shfaqjes (1); }
Ju lutemi vini re se unë jam pak i ndryshkur me kodimin Arduino, kështu që nëse gjeni ndonjë gabim ose një mënyrë për të përmirësuar kodin, unë jam i hapur për sugjerime:)
Hapi 3: Le ta Provojmë
Për të testuar këtë voltmetër kam përdorur bateri 8x 9v që i kam marrë në një dyqan lokal. Unë po planifikoj të përdor këtë voltmetër për të matur tensionin në bateritë e biçikletave të mia elektrike (ato kanë tensione që variojnë nga 24-60v me ato të rastit 72v).
Pasi elektronika të jetë e paketuar në një PCB dhe një kuti të vogël, kjo do të bëjë një matës të bukur dhe të lëvizshëm të paketave të baterive. Grafika dhe fontet në OLED mund të personalizohen për t'iu përshtatur nevojave tuaja (p.sh. font më i madh për lexim të lehtë).
Qëllimi im ishte të kisha një lexim të tensionit në njehsorin Oled/Arduino jo shumë larg nga Digital Multi Meter -i im. Po synoja +/- 0, deltën maksimale 3v. Siç mund ta shihni nga videoja, unë kam qenë në gjendje ta arkivoj këtë, përveç në pjesën e sipërme të matjeve.
Shpresoj se ju ka pëlqyer ky udhëzues dhe më tregoni mendimet tuaja!
Recommended:
Madhësia e xhepit DIY Matës i tensionit DC: 5 hapa
Matës i tensionit DC i madhësisë së xhepit DIY: Në këtë udhëzues unë do t'ju tregoj se si të bëni matës tensioni DC me madhësi xhepi DIY me zile piezo për kontroll qarku vetë. E tëra që ju nevojitet është njohuri bazë në elektronikë dhe pak kohë. Nëse keni ndonjë pyetje ose problem, mund të
Shkalla e Tensionit Arduino Me Qelizë Bagazhi 40 Kg dhe Përforcues HX711: 4 Hapa
Shkalla e Tensionit Arduino Me Qelizë Bagazhi 40 Kg dhe Amplifikator HX711: Ky Udhëzues përshkruan se si të bëni një shkallë tensioni duke përdorur lehtësisht të disponueshme nga pjesët e raftit. Materialet e nevojshme: 1. Arduino - ky dizajn përdor një Arduino Uno standard, versionet ose klonet e tjera të Arduino duhet të funksionojnë gjithashtu2. HX711 në bordin e shpërthimit -
Matja e frekuencës dhe tensionit të furnizimit me energji duke përdorur Arduino: 6 hapa
Matja e frekuencës dhe tensionit të furnizimit me energji duke përdorur Arduino: Hyrje: Qëllimi i këtij projekti është të matë frekuencën dhe tensionin e furnizimit, i cili është midis 220 deri 240 Volt dhe 50Hz këtu në Indi. Kam përdorur një Arduino për kapjen e sinjalit dhe llogaritjen e frekuencës dhe tensionit, ju mund të përdorni çdo mikrokontroll tjetër
Furnizimi me energji DC i Tensionit të Rregullueshëm Duke përdorur Rregullatorin e Tensionit LM317: 10 Hapa
Furnizimi me Rrymë i Tensionit i Rregullueshëm Duke Përdorur Rregullatorin e Tensionit LM317: Në këtë projekt, unë kam hartuar një furnizim të thjeshtë me tension të rregullueshëm DC duke përdorur IC LM317 me një diagram qarkor të furnizimit me energji LM317. Meqenëse ky qark ka një ndreqës të integruar të urës, kështu që ne mund të lidhim drejtpërdrejt furnizimin AC 220V/110V në hyrje.
Matja e tensionit DC me Arduino dhe Node-RED: 8 hapa (me fotografi)
Matja e Tensionit DC Me Arduino dhe Node-RED: Ka shumë mësime për matjen e tensionit DC me Arduino, në këtë rast kam gjetur një tutorial që e konsideroj metodën më të mirë funksionale për të matur DC pa kërkuar vlera hyrëse të rezistencës, kërkon vetëm njëfarë rezistence dhe një multimetër,