Obsah:

Měřič Arduino Volt (0-100V DC) - verze 2 (lepší): 3 kroky
Měřič Arduino Volt (0-100V DC) - verze 2 (lepší): 3 kroky

Video: Měřič Arduino Volt (0-100V DC) - verze 2 (lepší): 3 kroky

Video: Měřič Arduino Volt (0-100V DC) - verze 2 (lepší): 3 kroky
Video: test baterie 18650 z Číny 2024, Červen
Anonim
Image
Image
Krok 1: Schémata
Krok 1: Schémata

V tomto pokynu jsem postavil voltmetr pro měření vysokého napětí DC (0-100v) s relativní přesností a přesností pomocí Arduino Nano a ADS 1115 ADC.

Toto je druhá verze voltmetru, který jsem použil můj předchozí návod zde:

Testovací měření, která jsem provedl, byla přesná, většinou do 0,1 V od skutečného napětí naměřeného standardním voltmetrem (použil jsem Astro AI DM6000AR).

To je podle mého názoru mnohem lepší a jednodušší než použití reference externího napětí na Arduinu.

Zásoby

1 x Arduino Nano - odkaz

1 x Oled Display (SSD 1306) - Link

1 x ADS 1115 - 16bitový ADC - odkaz

1 x 1/4W (doporučuji však použít 1W odpory) 1% rezistory - 220 k ohm - Link

1 x 1/4W (doporučuji však použít 1W odpory) 1% rezistory - 10k ohm - Link

Breadboard a dráty - Link

Astro AI DM6000AR - odkaz

USB power banka - odkaz

9V baterie - propojení

CanadianWinters je účastníkem programu Amazon Services LLC Associates Program, programu affiliate reklamy, jehož cílem je poskytnout webům prostředky k vydělávání poplatků propojením s Amazon.com a přidruženými stránkami. Používáním těchto odkazů získávám jako Amazonský spolupracovník kvalifikované nákupy, i když si koupíte něco jiného-a nebude vás to nic stát.

Krok 1: Krok 1: Schémata

Krok 1: Schémata
Krok 1: Schémata

Všechny části jsem připojil podle schémat výše.

Připevnil jsem kolík ADDR ADC1115 k zemi. Tím nastavíte adresu ADC na 0x48.

Krok 2: Krok 2: Výpočty kódu a odporu

Krok 2: Výpočty kódu a odporu
Krok 2: Výpočty kódu a odporu

Stejně jako v předchozím pokynu je myšlenkou obvodu to, že DC napětí, které má být měřeno, prochází napěťovým odporem. Měřítko napětí a poté se dostane do analogového pinu převodníku ADC, který má být načten, poté předán do Arduina přes I2C a poté znovu zmenšen a zobrazen na OLed displeji.

V tomto případě jsem v kódu nepoužil žádné zprůměrování ani vyhlazení, protože hodnoty se zdají být docela přesné a přesné. Chcete -li snížit hluk, možná budete chtít přidat malý kondenzátor mezi A0 (na ADC) a zem. Pro můj test to však nebylo nutné.

Jedna věc, které jsem si všiml, byl trochu hluk, když nebyla připojena žádná baterie (0 voltů). Pomocí sériového monitoru Arduina jsem zobrazil hodnotu ADC a opravil/upravil ji pomocí kódu.

Stejně jako v předchozím pokynu jsem vytvořil tabulku, která automatizuje výpočty v případě, že chcete v děliči napětí použít různé hodnoty odporu: Odkaz na list Google

Zde je kód, který jsem použil pro tento projekt:

#zahrnout

#include #include #include Adafruit_ADS1115 ads (0x48); // Adresa ADC U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (rotace, [reset]) int calib = 7; // Hodnota kalibrace ADS1115 ke snížení chyby plovoucího napětí = 0; // slouží k ukládání hodnoty napětí float Radjust = 0,043421905; // Faktor děliče napětí (R2 / R1+R2) float vbat = 0; // konečné napětí po výpočtech- napětí baterie // proměnné pro obnovení obrazovky bez použití zpoždění bez znaménka dlouhé předchozíMillis = 0; // uloží se při poslední aktualizaci obrazovky // konstanty se nezmění: konst dlouhý interval = 250; // interval, ve kterém se obnovuje obrazovka (milisekundy) void setup (void) {Serial.begin (9600); u8g2.begin (); ads.begin (); } void loop (void) {int16_t adc0; // 16 bitů čtení ADC vstupu A0 adc0 = ads.readADC_SingleEnded (0); napětí = ((adc0 + kalibrace) * 0,1875)/1000; unsigned long currentMillis = millis (); vbat = napětí/Radjust; // Zabrání zobrazení záporného napětí při odpojení baterie, pokud (vbat = interval) {previousMillis = currentMillis; u8g2.clearBuffer (); // vymazat interní menory // Zobrazení napětí balení - Písma na této stránce: https://github.com/olikraus/u8g2/wiki/fntlistall //u8g2.setFont(u8g2_font_fub20_tr); // 20px písmo u8g2.setFont (u8g2_font_fub35_tr); // 35px písmo u8g2.setCursor (1, 42); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // 10 px písmo u8g2.setCursor (1, 60); u8g2.print („Volty“); } u8g2.sendBuffer (); // přenos interní paměti na zpoždění zobrazení (1); }

Krok 3: Krok 3: Vyzkoušíme to

Krok 3: Vyzkoušíme to!
Krok 3: Vyzkoušíme to!

K testování tohoto voltmetru jsem použil 10x 9v baterie, které jsem dostal v místním obchodě. Tentokrát jsem mohl naměřit až 97 voltů! Plánuji použít tento voltmetr k měření napětí na bateriových soupravách mých elektrických jízdních kol (mají napětí v rozmezí od 24 do 60 V s příležitostnými 72 V).

Jakmile je elektronika zabalena do desky plošných spojů a malé krabice, bude to pěkný a přenosný měřič baterií. Grafiku a písma na OLED lze přizpůsobit vašim potřebám (např. Větší písmo pro snadné čtení). Mým cílem bylo odečíst napětí na měřiči Oled/Arduino ne příliš daleko od mého digitálního multimetru. Mířil jsem na +/- 0, 3v max delta.

Jak vidíte z videa na začátku Instructable, dokázal jsem to archivovat! Většina měření byla na místě!

Doufám, že se vám tento Instructable líbil a dáte mi vědět své myšlenky!

Doporučuje: