Sisällysluettelo:
Video: Arduino tarkka ja tarkka voltimittari (0-90V DC): 3 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Tässä ohjeessa olen rakentanut voltimittarin mittaamaan suurjännitteitä DC (0-90v) suhteellisen tarkasti ja tarkasti Arduino Nano -laitteella.
Otamani testimittaukset olivat riittävän tarkkoja, enimmäkseen 0,3 V: n sisällä normaalista voltimittarilla mitatusta todellisesta jännitteestä (käytin Astro AI DM6000AR -laitetta). Tämä on riittävän lähellä laitteen käyttötarkoitusta.
Tämän arkistoimiseen käytin jänniteviitettä (4,096v) ja jännitteenjakajaa.
Koodipuolella käytin tietysti "ulkoista viitettä" -vaihtoehtoa Arduino Nanolle ja "Smoothing" -esimerkkiä Arduino -opetusohjelmissa.
Tarvikkeet
1 x Arduino Nano - linkki
1 x Oled -näyttö (SSD 1306) - linkki
1 x 1/4W 1% vastukset - 1 k ohmia - linkki
1 x 1/4W 1% vastukset - 220 k ohmia - linkki
1 x 1/4W 1% vastukset - 10 k ohmia - linkki
1 x 4.096v LM4040DIZ -4.1 Jänniteohje - linkki
Leipälauta ja johdot - Linkki
Astro AI DM6000AR - Linkki
USB -virtapankki - linkki
9V Akut - Linkki
CanadianWinters osallistuu Amazon Services LLC Associates -ohjelmaan, joka on kumppanimainosohjelma, jonka tarkoituksena on tarjota sivustoille mahdollisuus ansaita maksuja linkittämällä Amazon.com -sivustoon ja siihen liittyville sivustoille. Käyttämällä näitä linkkejä ansaitsen Amazonin yhteistyökumppanina kelpoisuusostoista, vaikka ostat jotain muuta-eikä se maksa sinulle mitään.
Vaihe 1: Kaaviot
Yhdistin kaikki osat yllä olevan kaavion mukaisesti. Valitsin erityisesti 4,096 jänniteohjeen pysyäkseen mahdollisimman lähellä 5v -merkkiä, jotta resoluutio ei häviä.
Tietolomakkeen jälkeen valitsin 1K ohmin vastuksen jänniteohjeeksi, vaikka eri arvoa voitaisiin käyttää. Referenssijännite syötetään Nano 5v -nastasta.
Piirin idea on, että mitattava DC -jännite kulkee jännitevastuksen läpi. Skaalattu jännite ja sitten joutuu Arduinon analogiseen nastaan näytteenottoa, tasoitusta, skaalausta ja OLED-näyttöä varten.
Yritin pitää asiat yksinkertaisina:)
Vaihe 2: Koodi- ja vastuslaskut
Vastusten arvot valittiin, koska on suositeltavaa (jos en erehdy, tämä on Arduino/Atmega -tietolomakkeessa) pitää impedanssi alle 10 k ohmia.
Asioiden yksinkertaistamiseksi tein laskentataulukon, joka automatisoi laskelmat, jos haluat käyttää erilaisia vastusarvoja: Linkki Google -taulukkoon
Tässä on koodi, jota käytin tässä projektissa:
#sisältää
#include U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (kierto, [nollaus]) kelluva jännite = 0; // käytetään jännitearvon kellukkeen tallentamiseen Radjust = 0,043459459; // Jännitteenjakajatekijä (R2 /R1+R2) kelluva vbat = 0; // lopullinen jännite kalkkien jälkeen- akun kellukkeen jännite Vref = 4.113; // Jänniteohje - mitattu todellinen arvo. Nimellisarvo 4,096v const int numReadings = 50; // lukunäytteiden määrä - lisää tasoitusta. Vähennä lukemista nopeammin. int lukemat [numReadings]; // analogisen tulon lukemat int readIndex = 0; // nykyisen lukeman indeksi allekirjoittamaton pitkä yhteensä = 0; // juokseva kokonaiskeskiarvo = 0; // muuttujat näytön päivittämiseksi ilman viivettä unsigned long previousMillis = 0; // tallentaa viimeksi kun näyttö päivitettiin // vakioita ei muuteta: const long interval = 50; // aikaväli, jolloin näyttö päivitetään (millisekuntia) void setup (void) {analogReference (EXTERNAL); // käytä AREF -viitejännitettä 4.096. Oma viite todellinen jännite on 4.113v u8g2.begin (); for (int thisReading = 0; thisReading = numReadings) {//… kääri alkuun: readIndex = 0; } // laskea keskiarvo: keskiarvo = (total / numReadings); jännite = keskimääräinen * (Vref / 1023.0); //4.113 on Vref vbat = jännite/Radjust; // Näytön päivityksen viiveen asettaminen Millis -toiminnolla if (currentMillis - previousMillis> = interval) {// tallenna näytön viimeisin päivitys aikaisemminMillis = currentMillis; u8g2.clearBuffer (); // tyhjennä sisäinen valikko // Pack Voltage display u8g2.setFont (u8g2_font_fub20_tr); // 20px fontti u8g2.setCursor (1, 20); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // 10 px fontti u8g2.setCursor (76, 20); u8g2.print ("volttia"); u8g2.setCursor (1, 40); u8g2.print ("CanadianWinters '"); u8g2.setCursor (1, 60); u8g2.print ("Tarkka jännite"); } u8g2.sendBuffer (); // siirtää sisäinen muisti näytön viiveeseen (1); }
Huomaa, että olen hieman ruosteinen Arduinon koodauksessa, joten jos löydät virheen tai keinon parantaa koodia, olen avoin ehdotuksille:)
Vaihe 3: Testataan
Tämän volttimittarin testaamiseen käytin 8x 9v paristoja, jotka sain paikallisesta kaupasta. Suunnittelen tämän volttimittarin käyttämistä sähköpolkupyörän akkujen jännitteen mittaamiseen (niiden jännitteet vaihtelevat 24-60v ja satunnaiset 72v).
Kun elektroniikka on pakattu piirilevyyn ja pieneen laatikkoon, tästä tulee mukava ja kannettava akkumittari. OLED -näytön grafiikka ja fontit voidaan räätälöidä tarpeidesi mukaan (esim. Isompi fontti helpon lukemisen vuoksi).
Tavoitteeni oli saada jännitteen lukema Oled/Arduino -mittariin, joka ei ole liian kaukana digitaalisesta monimittaristani. Tavoittelin +/- 0, 3v max deltaa. Kuten videosta näet, pystyin arkistoimaan tämän paitsi mittausten yläpäässä.
Toivottavasti pidit tästä Instructable -ohjelmasta ja kerro minulle mielipiteesi!
Suositeltava:
Waveshare E-ink -näyttö Tarkka volttimittari (0-90v DC) ja Arduino Nano: 3 vaihetta
Waveshare E-ink -näyttö Tarkka volttimittari (0-90v DC) Arduino Nanon kanssa: Tässä opetusohjelmassa käytän 2,9 tuuman Waveshare-sähköpaperinäyttöä, jossa on Arduino Nano, jännitteenjakaja ja ADS1115 tarkkojen jännitteiden näyttämiseen jopa 90 volttia tasavirtaa E-paperinäytössä.Tässä ohjeessa yhdistetään nämä kaksi aiempaa projektia:- Ardui
3D -painettu Endgame Arc Reactor (elokuva tarkka ja puettava): 7 vaihetta (kuvilla)
3D -painettu Endgame Arc Reactor (Elokuva tarkka ja puettava): Koko Youtube -opetusohjelma: En löytänyt mitään erityisen tarkkoja 3D -tiedostoja Mark 50 -kaarireaktorille/nanohiukkasten kotelolle, joten kaverini ja minä keitimme makeita. Kesti paljon säätämistä, jotta asia näyttäisi tarkalta ja mahtavalta
GPSDO YT, kurinalainen oskillaattori 10 MHz: n vertailutaajuus. Halpa. Tarkka: 3 vaihetta
GPSDO YT, kurinalainen oskillaattori 10 MHz: n vertailutaajuus. Halpa. Tarkka .: *********************************************** ********************************* STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP Tämä on vanhentunut projekti. Tarkista sen sijaan uusi 2x16 lcd -näyttöversio saatavilla täältä: https: //www.instructables.com/id
Arduino Nano - MPL3115A2 Tarkka korkeusmittarin anturin opetusohjelma: 4 vaihetta
Arduino Nano - MPL3115A2 Tarkkuuskorkeusmittarin anturin opetusohjelma: MPL3115A2 käyttää MEMS -paineanturia, jossa on I2C -liitäntä, joka antaa tarkat paine-/korkeus- ja lämpötilatiedot. Anturilähdöt digitalisoidaan korkean resoluution 24-bittisellä ADC: llä. Sisäinen käsittely poistaa korvaustehtävät
Ladattava digitaalinen voltimittari ICL7107 ADC: n avulla: 7 vaihetta (kuvien kanssa)
Ladattava digitaalinen volttimittari ICL7107 ADC: n avulla: Tässä opetusohjelmassa näytän sinulle, kuinka tehdä erittäin yksinkertainen digitaalinen voltimittari, joka voi mitata jännitteitä 20 mV - 200 V. Tämä projekti ei käytä mitään mikro -ohjaimia, kuten arduino. Sen sijaan käytetään ADC: tä, ts. ICL7107, joidenkin passien kanssa