Tartalomjegyzék:

Arduino voltmérő (0-100V DC) - 2. verzió (jobb): 3 lépés
Arduino voltmérő (0-100V DC) - 2. verzió (jobb): 3 lépés

Videó: Arduino voltmérő (0-100V DC) - 2. verzió (jobb): 3 lépés

Videó: Arduino voltmérő (0-100V DC) - 2. verzió (jobb): 3 lépés
Videó: Вольтамперметр 7 В одном из Китая подделка 2024, Június
Anonim
Image
Image
1. lépés: A vázlatok
1. lépés: A vázlatok

Ebben az utasításban egy voltmérőt építettem a nagyfeszültségű DC (0-100v) viszonylagos pontossággal és pontossággal történő mérésére Arduino Nano és ADS 1115 ADC segítségével.

Ez a volt mérőmotor második változata, amelyet itt használtam:

Az elvégzett tesztmérések pontosak voltak, többnyire 0,1 V -on belül a szabványos voltmérővel mért tényleges feszültségtől (Astro AI DM6000AR -t használtam).

Ez sokkal jobb és könnyebb véleményem szerint, mint külső feszültségreferencia használata az Arduino -n.

Kellékek

1 x Arduino Nano - Link

1 x Oled kijelző (SSD 1306) - Link

1 x ADS 1115 - 16 bites ADC - Link

1 x 1/4 W (javaslom az 1 W ellenállások használatát) 1% ellenállás - 220 k ohm - Link

1 x 1/4 W (javaslom az 1 W ellenállások használatát) 1% ellenállás - 10 k ohm - Link

Kenyértábla és vezetékek - Link

Astro AI DM6000AR - Link

USB Power Bank - Link

9V elemek - Link

A CanadianWinters részt vesz az Amazon Services LLC Associates Programban, amely egy társult hirdetési program, amelynek célja, hogy eszközöket biztosítson a webhelyek számára, hogy díjakat keressenek az Amazon.com -ra és a kapcsolódó webhelyekre mutató linkekkel. Ezen linkek használatával Amazon munkatársaként a minősített vásárlásokból keresek, még akkor is, ha mást vásárol-és ez nem kerül semmibe.

1. lépés: 1. lépés: a vázlatok

1. lépés: A vázlatok
1. lépés: A vázlatok

Az összes alkatrészt a fenti rajz szerint kötöttem össze.

A földhöz kötöttem az ADC1115 ADDR csapját. Ezzel az ADC címét 0x48 -ra állítja.

2. lépés: 2. lépés: a kód és az ellenállás számítása

2. lépés: A kód és az ellenállás számítása
2. lépés: A kód és az ellenállás számítása

Az előző utasításhoz hasonlóan az áramkör ötlete az, hogy a mérendő egyenfeszültség feszültségellenálláson megy keresztül. A skálázott feszültség, majd az ADC konverter analóg tűjébe kerül, hogy leolvassák, majd az I2C-n keresztül továbbítsa az Arduino-hoz, majd újra méretezze és megjelenítse az OLed kijelzőjén.

Ebben az esetben nem használtam átlagolást vagy simítást a kódban, mivel a leolvasások meglehetősen pontosak és pontosak. A zaj csökkentése érdekében érdemes egy kis kondenzátort hozzáadni az A0 (az ADC -n) és a föld közé. Bár a teszthez nem volt kötelező.

Egy dolgot vettem észre, egy kis zajt, amikor nem volt akkumulátor csatlakoztatva (0 volt). Az Arduino soros monitorát használtam az ADC érték megjelenítésére és kódon keresztüli javítására/beállítására.

Az előző utasításhoz hasonlóan készítettem egy táblázatot, amely automatizálja a számításokat arra az esetre, ha különböző ellenállásértékeket szeretne használni a feszültségosztóban: Link to Google Sheet

Íme a kód, amelyet ehhez a projekthez használtam:

#befoglalni

#include #include #include Adafruit_ADS1115 hirdetések (0x48); // Az ADC címe U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (forgatás, [visszaállítás]) int calib = 7; // Az ADS1115 kalibrálásának értéke a hibás úszófeszültség csökkentése érdekében = 0; // feszültségérték úszó tárolására szolgál Radjust = 0,043421905; // Feszültségosztó tényező (R2 / R1+R2) float vbat = 0; // végső feszültség calcs után- az akkumulátor feszültsége // változók a képernyő frissítéséhez késleltetés nélkül unsigned long previousMillis = 0; // a képernyő utolsó frissítésekor tárolja // az állandók nem változnak: const long interval = 250; // a képernyő frissítésének időköze (ezredmásodperc) void setup (void) {Serial.begin (9600); u8g2.begin (); ads.begin (); } void loop (void) {int16_t adc0; // A0 bemenet 16 bites ADC olvasása adc0 = ads.readADC_SingleEnded (0); feszültség = ((adc0 + calib) * 0,1875)/1000; előjel nélküli hosszú áramMillis = millis (); vbat = feszültség/Radjust; // A negatív feszültség megjelenítésének megakadályozása az akkumulátor lekapcsolása esetén, ha (vbat = intervallum) {previousMillis = currentMillis; u8g2.clearBuffer (); // a belső menória törlése // Pack Voltage display - Betűtípusok ezen az oldalon: https://github.com/olikraus/u8g2/wiki/fntlistall //u8g2.setFont(u8g2_font_fub20_tr); // 20 képpont betűtípus u8g2.setFont (u8g2_font_fub35_tr); // 35 képpont betűtípus u8g2.setCursor (1, 42); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // 10 px betűtípus u8g2.setCursor (1, 60); u8g2.print ("Volt"); } u8g2.sendBuffer (); // belső memória átvitele a kijelző késleltetésére (1); }

3. lépés: 3. lépés: Próbáljuk ki

3. lépés: Próbáljuk ki!
3. lépés: Próbáljuk ki!

Ennek a voltmérőnek a teszteléséhez 10x 9V -os elemeket használtam, amelyeket a helyi boltban kaptam. Ezúttal akár 97 voltot is meg tudtam mérni! Ezzel a voltmérővel tervezem mérni az elektromos kerékpárok akkumulátorainak feszültségét (ezek feszültsége 24-60V és esetenként 72V).

Miután az elektronikát egy PCB -be és egy kis dobozba csomagolták, ez egy szép és hordozható akkumulátor -mérőt eredményez. Az OLED grafikája és betűtípusai személyre szabhatók az Ön igényeinek megfelelően (pl. Nagyobb betűtípus az egyszerű olvasás érdekében). Célom az volt, hogy feszültség leolvasást készítsek az Oled/Arduino mérőn, nem túl messze a digitális multiméteremtől. +/- 0, 3v max delta volt a célom.

Amint az Instructable elején található videóból is látszik, ezt archiválni tudtam! A legtöbb olvasmány helyben volt!

Remélem, tetszett ez az Instructable és tudassa velem gondolatait!

Ajánlott: