Obsah:

Merač napätia Arduino (0-100V DC) - verzia 2 (lepšia): 3 kroky
Merač napätia Arduino (0-100V DC) - verzia 2 (lepšia): 3 kroky

Video: Merač napätia Arduino (0-100V DC) - verzia 2 (lepšia): 3 kroky

Video: Merač napätia Arduino (0-100V DC) - verzia 2 (lepšia): 3 kroky
Video: Обзор измерителя постоянного тока YB5140 50A с шунтирующим резистором 75 мВ 2024, November
Anonim
Image
Image
Krok 1: Schémy
Krok 1: Schémy

V tomto návode som postavil voltmetr na meranie vysokého napätia DC (0-100v) s relatívnou presnosťou a presnosťou pomocou Arduino Nano a ADS 1115 ADC.

Toto je druhá verzia voltmetra, ktorá bola použitá v mojom predchádzajúcom návode tu:

Testovacie merania, ktoré som vykonal, boli presné, väčšinou v rozmedzí 0,1 V od skutočného napätia nameraného štandardným voltmetrom (použil som Astro AI DM6000AR).

To je podľa mňa oveľa lepšie a jednoduchšie ako používať referenciu na externé napätie na Arduine.

Zásoby

1 x Arduino Nano - odkaz

1 x Oled Display (SSD 1306) - Link

1 x ADS 1115 - 16 bitový ADC - odkaz

1 x 1/4W (odporúčam však použiť 1W rezistory) 1% rezistory - 220 k ohm - odkaz

1 x 1/4W (odporúčam však použiť odpory 1W) 1% rezistory - 10 kOhm - odkaz

Breadboard a drôty - odkaz

Astro AI DM6000AR - odkaz

USB power banka - prepojenie

9V batérie - prepojenie

CanadianWinters je účastníkom programu Amazon Services LLC Associates Program, programu pridruženej reklamy, ktorého cieľom je poskytovať webom prostriedky na získavanie poplatkov prepojením na Amazon.com a pridružené stránky. Použitím týchto odkazov ako Amazon Associate zarobím na kvalifikovaných nákupoch, aj keď si kúpite niečo iné-a nič vás to nebude stáť.

Krok 1: Krok 1: Schémy

Krok 1: Schémy
Krok 1: Schémy

Pripojil som všetky diely podľa vyššie uvedených schém.

Pripevnil som kolík ADDR ADC1115 k zemi. Adresa ADC sa nastaví 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

Rovnako ako v predchádzajúcom návode, myšlienka obvodu je, že jednosmerné napätie, ktoré sa má merať, prechádza napäťovým odporom. Zmenšené napätie a potom sa dostane do analógového kolíka prevodníka ADC, ktorý sa má načítať, potom sa odovzdá Arduinu cez I2C a potom sa znova upraví mierka a zobrazí sa na OLed displeji.

V tomto prípade som v kóde nepoužil žiadne priemerovanie ani vyhladzovanie, pretože hodnoty sa zdajú byť celkom presné a presné. Na zníženie šumu možno budete chcieť pridať malý kondenzátor medzi A0 (na ADC) a zem. Pri mojom teste to však nebolo potrebné.

Jedna vec, ktorú som si všimol, bol trochu hluk, keď nebola pripojená žiadna batéria (0 voltov). Sériový monitor Arduina som použil na zobrazenie hodnoty ADC a opravu/úpravu pomocou kódu.

Rovnako ako v predchádzajúcom návode som vytvoril tabuľku, ktorá automatizuje výpočty v prípade, že chcete v rozdeľovači napätia použiť rôzne hodnoty odporu: Odkaz na tabuľku Google

Tu je kód, ktorý som použil pre tento projekt:

#zahrnúť

#include #include #include Adafruit_ADS1115 reklamy (0x48); // Adresa ADC U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (otáčanie, [reset]) int calib = 7; // Hodnota kalibrácie ADS1115 na zníženie chybového plávajúceho napätia = 0; // slúži na ukladanie hodnoty napätia float Radjust = 0,043421905; // činiteľ deliča napätia (R2 / R1+R2) float vbat = 0; // konečné napätie po výpočtoch- napätie batérie // premenné na obnovenie obrazovky bez použitia oneskorenia bez znamienka dlhé predchádzajúceMillis = 0; // uloží sa pri poslednej aktualizácii obrazovky // konštanty sa nezmenia: const dlhý interval = 250; // interval, v ktorom sa obnovuje obrazovka (milisekundy) void setup (void) {Serial.begin (9600); u8g2.begin (); ads.begin (); } prázdna slučka (prázdna) {int16_t adc0; // 16 bitové čítanie ADC vstupu A0 adc0 = ads.readADC_SingleEnded (0); napätie = ((adc0 + kalibrácia) * 0,1875)/1000; nepodpísaný dlhý prúd Millis = millis (); vbat = napätie/Radjust; // Zabráni zobrazovaniu záporného napätia pri odpojení batérie, ak (vbat = interval) {previousMillis = currentMillis; u8g2.clearBuffer (); // vymažte vnútornú menu // Zobrazenie napätia balenia - písma na tejto stránke: https://github.com/olikraus/u8g2/wiki/fntlistall //u8g2.setFont(u8g2_font_fub20_tr); // 20px font u8g2.setFont (u8g2_font_fub35_tr); // 35px font u8g2.setCursor (1, 42); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // 10 px font u8g2.setCursor (1, 60); u8g2.print („volty“); } u8g2.sendBuffer (); // prenos internej pamäte na oneskorenie zobrazenia (1); }

Krok 3: Krok 3: Vyskúšajme to

Krok 3: Vyskúšajme to!
Krok 3: Vyskúšajme to!

Na testovanie tohto voltmetra som použil 10x 9v batérie, ktoré som dostal v miestnom obchode. Tentokrát som mohol namerať až 97 voltov! Plánujem použiť tento voltmetr na meranie napätia na batériách mojich elektrických bicyklov (majú napätie od 24 do 60 V s príležitostnými 72 V).

Akonáhle je elektronika zabalená do dosky plošných spojov a malej škatule, bude to pekný a prenosný merač batériových zdrojov. Grafiku a písma na OLED je možné prispôsobiť tak, aby vyhovovali vašim potrebám (napr. Väčšie písmo pre ľahké čítanie). Mojím cieľom bolo odčítať napätie na merači Oled/Arduino nie príliš ďaleko od môjho digitálneho multimetra. Mieril som na +/- 0, 3v max delta.

Ako vidíte z videa na začiatku Instructable, dokázal som to archivovať! Väčšina čítaní bola na mieste!

Dúfam, že sa vám tento návod páčil a dajte mi vedieť svoje myšlienky!

Odporúča: