Turinys:
Video: Tikslus ir tikslus „Arduino“voltų matuoklis (0–90 V DC): 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Šioje instrukcijoje aš sukūriau voltmetrą, skirtą santykinai tiksliai ir tiksliai išmatuoti aukštą įtampą (0-90v), naudojant „Arduino Nano“.
Mano atlikti bandomieji matavimai buvo pakankamai tikslūs, dažniausiai 0,3 V riboje nuo faktinės įtampos, išmatuotos standartiniu voltmetru (aš naudoju „Astro AI DM6000AR“). Tai pakankamai arti mano numatyto prietaiso naudojimo.
Norėdami tai archyvuoti, naudoju įtampos etaloną (4.096v) ir įtampos daliklį.
Kodo pusėje, žinoma, naudojau „Arduino Nano“parinktį „išorinė nuoroda“ir „Išlyginimo“pavyzdį „Arduino“vadovėliuose.
Prekės
1 x „Arduino Nano“- nuoroda
1 x apšviestas ekranas (SSD 1306) - nuoroda
1 x 1/4W 1% rezistoriai - 1k omas - Nuoroda
1 x 1/4W 1% rezistoriai - 220k omų - Nuoroda
1 x 1/4W 1% rezistoriai - 10k omų - Nuoroda
1 x 4.096v LM4040DIZ -4.1 įtampos nuoroda - nuoroda
Duonos lenta ir laidai - nuoroda
„Astro AI DM6000AR“- nuoroda
USB maitinimo bankas - nuoroda
9 V baterijos - nuoroda
„CanadianWinters“yra „Amazon Services LLC Associates“programos - filialų reklamos programos, skirtos svetainėms užsidirbti mokesčių susiejant su „Amazon.com“ir susijusiomis svetainėmis, dalyvis. Naudodamas šias nuorodas aš, kaip „Amazon“asocijuotas partneris, uždirbu iš tinkamų pirkimų, net jei perkate ką nors kita-ir tai jums nieko nekainuos.
1 žingsnis: schemos
Aš sujungiau visas dalis pagal aukščiau pateiktą schemą. Visų pirma pasirinkau 4.096 įtampos atskaitos tašką, kad būtų kuo arčiau 5v žymos, kad neprarastų skiriamosios gebos.
Vadovaudamasis duomenų lapu, įtampos atskaitos taškui pasirinkau 1K omą, nors būtų galima naudoti kitokią vertę. Atskaitos įtampa tiekiama iš „Nano 5v“kaiščio.
Grandinės idėja yra ta, kad matuojama nuolatinė įtampa eina per įtampos rezistorių. Sumažinta įtampa ir tada patenka į analoginį „Arduino“kaištį, kad būtų galima paimti mėginius, išlyginti, pakeisti mastelį ir parodyti OLed ekrane.
Stengiausi, kad viskas būtų paprasta:)
2 žingsnis: kodo ir rezistoriaus skaičiavimai
Rezistorių vertės buvo pasirinktos taip, kaip patartina (jei neklystu, tai yra „Arduino“/„Atmega“duomenų lape), kad varža būtų mažesnė nei 10 k omų.
Kad viskas būtų paprasčiau, sukūriau skaičiuoklę, kuri automatizuoja skaičiavimus, jei norite naudoti skirtingas rezistorių reikšmes: Nuoroda į „Google“lapą
Štai kodas, kurį naudoju šiam projektui:
#įtraukti
#include U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (sukimas, [atstatymas]) plūdės įtampa = 0; // naudojamas įtampos vertės plūdės saugojimui Radjust = 0.043459459; // Įtampos daliklio koeficientas (R2 /R1+R2) plūdė vbat = 0; // galutinė įtampa po kalkių- akumuliatoriaus plūdės įtampa Vref = 4.113; // Įtampos atskaita - išmatuota tikroji vertė. Nominali vertė 4,096v const int numReadings = 50; // skaitymo pavyzdžių skaičius - padidinkite, kad būtų daugiau išlyginimo. Sumažinkite, kad galėtumėte greičiau skaityti. int rodmenys [numReadings]; // rodmenys iš analoginės įvesties int readIndex = 0; // dabartinio rodmens indeksas nepasirašytas ilgas bendras = 0; // veikiantis bendras int vidurkis = 0; // kintamieji, skirti atnaujinti ekraną nenaudojant delsos unsigned long previousMillis = 0; // išsaugos paskutinį kartą atnaujintą ekraną // konstantos nesikeis: const long interval = 50; // intervalas, per kurį reikia atnaujinti ekraną (milisekundės) void setup (void) {analogReference (EXTERNAL); // naudoti AREF atskaitos įtampai 4.096. Mano atskaitos tikroji įtampa yra 4.113v u8g2.begin (); for (int thisReading = 0; thisReading = numReadings) {//… apvyniokite pradžią: readIndex = 0; } // apskaičiuoti vidurkį: vidurkis = (total / numReadings); įtampa = vidutinė * (Vref / 1023.0); //4.113 yra Vref vbat = įtampa/Radjust; // Ekrano atnaujinimo uždelsimo nustatymas naudojant Millis if (currentMillis - previousMillis> = intervalas) {// išsaugoti paskutinį kartą, kai ekranas buvo atnaujintas, ankstesnisMillis = currentMillis; u8g2.clearBuffer (); // išvalyti vidinį meniu // Pack Voltage display u8g2.setFont (u8g2_font_fub20_tr); // 20 taškų šriftas u8g2.setCursor (1, 20); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // 10 px šriftas u8g2.setCursor (76, 20); u8g2.print („Voltai“); u8g2.setCursor (1, 40); u8g2.print („Kanados žiemos“); u8g2.setCursor (1, 60); u8g2.print („Tiksli įtampa“); } u8g2.sendBuffer (); // perkelti vidinę atmintį į ekrano uždelsimą (1); }
Atkreipkite dėmesį, kad aš esu šiek tiek aprūdijęs naudojant „Arduino“kodavimą, todėl, jei radote klaidą ar būdą patobulinti kodą, esu atviras pasiūlymams:)
3 žingsnis: išbandykime
Norėdami išbandyti šį voltmetrą, aš naudoju 8x 9V baterijas, kurias gavau vietinėje parduotuvėje. Aš planuoju naudoti šį voltmetrą, norėdamas išmatuoti mano elektrinių dviračių akumuliatorių įtampą (jų įtampa svyruoja nuo 24 iki 60 V, o kartais-72 V).
Kai elektronika bus supakuota į PCB ir mažą dėžutę, tai bus gražus ir nešiojamas akumuliatoriaus matuoklis. OLED grafika ir šriftai gali būti pritaikyti pagal jūsų poreikius (pvz., Didesnis šriftas, kad būtų lengviau skaityti).
Mano tikslas buvo, kad Oled/Arduino matuoklio įtampa būtų rodoma ne per toli nuo mano skaitmeninio daugiafunkcio matuoklio. Aš siekiau +/- 0, 3v max delta. Kaip matote iš vaizdo įrašo, galėjau tai archyvuoti, išskyrus viršutinį matavimų galą.
Tikiuosi, kad jums patiko šis „Instructable“ir praneškite man savo mintis!
Rekomenduojamas:
„Arduino“voltų matuoklis (0–100 V DC) - 2 versija (geresnė): 3 žingsniai
„Arduino“voltų matuoklis (0–100 V nuolatinė srovė)-2 versija (geresnė): Šioje instrukcijoje aš sukūriau voltmetrą, kuris santykinai tiksliai ir tiksliai matuoja aukštą įtampą (0–100 V), naudodamas „Arduino Nano“ir ADS 1115 ADC .Tai yra antroji voltmetro versija, naudojama mano ankstesniame nurodyme čia: https: // ww
Aukščio matuoklis (aukščio matuoklis) pagal atmosferos slėgį: 7 žingsniai (su nuotraukomis)
Aukščio matuoklis (aukščio matuoklis) Remiantis atmosferos slėgiu: [Redaguoti]; Žr. 2 versiją 6 veiksme su rankiniu įvesties aukščio įvedimu. Tai yra aukščio matuoklio (aukščio matuoklio), pagrįsto „Arduino Nano“ir „Bosch BMP180“atmosferos slėgio jutikliu, pastato aprašymas. Dizainas paprastas, bet matavimai
Purvo pigus nešvarumų matuoklis-9 USD „Arduino“garsinis aukščio matuoklis: 4 žingsniai (su nuotraukomis)
Nešvarūs pigūs nešvarumų matuokliai-9 USD „Arduino“pagrįstas garsinis aukščio matuoklis: „Dytters“(A.K.A garsiniai aukščio matuokliai) tiek metų išgelbėjo parašiutininkų gyvybes. Dabar „Audible Abby“taip pat sutaupys pinigų. „Basic Dytters“turi keturis aliarmus, vieną pakeliui aukštyn ir tris žemyn. Skrisdami lėktuvu, parašiutininkai turi žinoti, kada
Kišeninis voltų matuoklis: 6 žingsniai (su nuotraukomis)
Kišeninis voltmetras: jau kurį laiką naudoju didesnę šio voltmetro versiją ir tai visada buvo labai naudinga, todėl pamačiusi kišeninio dydžio konkursą pasakiau sau, kodėl nepasinaudojau šia galimybe ir pasidalinau su jumis. dizaino patobulinimai per
Universalus voltų, amperų ir galios matuoklis: 6 žingsniai (su nuotraukomis)
Universalus voltų, amperų ir galios matuoklis: multimetrai tinka įvairiems tikslams. Tačiau paprastai jie matuoja tik vieną vertę vienu metu. Jei sprendžiame galios matavimus, mums reikia dviejų multimetrų, vienas skirtas įtampai, o kitas - amperui. O jei norime išmatuoti efektyvumą, mums reikia keturių