INHOUDSOPGAWE:
- Voorrade
- Stap 1: Stap 1: die skemas
- Stap 2: Stap 2: die kode- en weerstandberekeninge
- Stap 3: Stap 3: Kom ons toets dit
Video: Arduino Volt Meter (0-100V DC) - Weergawe 2 (beter): 3 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
In hierdie instruksies het ek 'n voltmeter gebou om hoë spanning DC (0-100v) relatief akkuraat en akkuraat te meet met behulp van 'n Arduino Nano en 'n ADS 1115 ADC.
Dit is 'n tweede weergawe van die voltmeter wat my vorige instruksies hier gebruik het:
Die toetsmetings wat ek geneem het, was akkuraat, meestal binne 0.1v van die werklike spanning wat met 'n standaard voltmeter gemeet is (ek het 'n Astro AI DM6000AR gebruik).
Dit is na my mening baie beter en makliker as om 'n eksterne spanningsverwysing op die Arduino te gebruik.
Voorrade
1 x Arduino Nano - skakel
1 x Oled -skerm (SSD 1306) - skakel
1 x ADS 1115 - 16 bit ADC - skakel
1 x 1/4W (ek stel voor dat u 1W -weerstande gebruik) 1% weerstande - 220k ohm - skakel
1 x 1/4W (ek stel voor dat u 1W -weerstande gebruik) 1% weerstande - 10k ohm - skakel
Broodbord en drade - Skakel
Astro AI DM6000AR - Skakel
USB Power Bank - skakel
9V -batterye - skakel
CanadianWinters is 'n deelnemer aan die Amazon Services LLC Associates Program, 'n geaffilieerde advertensieprogram wat ontwerp is om webwerwe 'n manier te bied om fooie te verdien deur te skakel na Amazon.com en aangeslote webwerwe. Deur hierdie skakels te gebruik, verdien ek as Amazon-medewerker uit kwalifiserende aankope, selfs al koop u iets anders-en dit kos u niks.
Stap 1: Stap 1: die skemas
Ek het al die dele verbind volgens die skemas hierbo.
Ek het die ADDR -pen van die ADC1115 aan die grond vasgemaak. Dit stel die adres van die ADC op 0x48.
Stap 2: Stap 2: die kode- en weerstandberekeninge
Soos in die vorige instruksies, is die idee van die stroombaan dat die DC -spanning wat gemeet moet word, deur 'n spanningsweerstand gaan. Die afgeskaalde spanning kom dan in die analoog pen van die ADC-omskakelaar om gelees te word, word dan via I2C aan die Arduino oorgedra en dan weer opskaal en op die OLed-skerm vertoon.
Ek het in hierdie geval geen gemiddelde of gladde gebruik van die kode gebruik nie, aangesien die lesings baie akkuraat en akkuraat lyk. Om die geraas te verminder, wil u 'n klein kapasitor tussen A0 (op die ADC) en die grond byvoeg. Dit was egter nie nodig vir my toets nie.
Een ding wat ek opgemerk het, was 'n bietjie geraas wanneer daar geen battery (0 volt) aangeheg was nie. Ek het die seriële monitor van die Arduino gebruik om die ADC -waarde te vertoon en dit reg te stel/aan te pas via kode.
Soos in die vorige instruksies, het ek 'n sigblad gemaak wat die berekeninge outomatiseer indien u verskillende weerstandswaardes in die spanningsverdeler wil gebruik: skakel na Google Sheet
Hier is die kode wat ek vir hierdie projek gebruik het:
#insluit
#include #include #include Adafruit_ADS1115 ads (0x48); // Adres van die ADC U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (rotasie, [reset]) int calib = 7; // Waarde van kalibrasie van ADS1115 om foutvlotspanning te verminder = 0; // gebruik om die spanningswaarde vlot op te slaan Radjust = 0.043421905; // Spanningsverdelingsfaktor (R2 / R1+R2) dryf vbat = 0; // eindspanning na berekeninge- spanning van die battery // veranderlikes om die skerm te verfris sonder om vertraging te gebruik ongetekende lang vorigeMillis = 0; // sal die laaste keer stoor dat die skerm verfris is // konstantes sal nie verander nie: const lang interval = 250; // interval waarop die skerm (millisekondes) die opstel van die leemte (leegte) {Serial.begin (9600) moet verfris; u8g2.begin (); ads.begin (); } leemte lus (leeg) {int16_t adc0; // 16 bisse ADC lees van invoer A0 adc0 = ads.readADC_SingleEnded (0); spanning = ((adc0 + kalib) * 0,1875)/1000; ongetekende lang stroomMillis = millis (); vbat = spanning/Radjust; // Voorkom dat negatiewe spanning vertoon word wanneer die battery ontkoppel word as (vbat = interval) {previousMillis = currentMillis; u8g2.clearBuffer (); // maak die interne opvatting skoon // Pak spanning -skerm - lettertipes op hierdie bladsy: https://github.com/olikraus/u8g2/wiki/fntlistall //u8g2.setFont(u8g2_font_fub20_tr); // 20px lettertipe u8g2.setFont (u8g2_font_fub35_tr); // 35px lettertipe u8g2.setCursor (1, 42); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // 10 px lettertipe u8g2.setCursor (1, 60); u8g2.print ("Volt"); } u8g2.sendBuffer (); // dra interne geheue oor na die vertraging van die vertoning (1); }
Stap 3: Stap 3: Kom ons toets dit
Om hierdie voltmeter te toets, gebruik ek 10x 9v -batterye wat ek by 'n plaaslike winkel gekry het. Hierdie keer kon ek tot 97 volt meet! Ek is van plan om hierdie voltmeter te gebruik om die spanning op my elektriese fietse se batterypakke te meet (hulle het spannings wat wissel van 24-60v met soms 72v).
Sodra die elektronika in 'n PCB en 'n klein boks verpak is, sal dit 'n mooi en draagbare batterymeter wees. Die grafika en lettertipes op die OLED kan aangepas word om aan u behoeftes te voldoen (bv. Groter lettertipe om maklik te lees). My doel was om 'n spanningslesing op die Oled/Arduino -meter te hê, nie te ver van my Digital Multi Meter nie. Ek het gemik op +/- 0, 3v max delta.
Soos u kan sien uit die video aan die begin van die Instructable, kon ek dit argiveer! Die meeste lesings was in die kol!
Ek hoop dat u hierdie instruksies geniet het en laat my u gedagtes weet!
Aanbeveel:
Beter Alligator -knipsels: 3 stappe (met foto's)
Beter Alligator -knipsels: Toe ek 'n seuntjie was, was die krokodille -knipsels swaar en het hulle goed laat werk. Hulle is gemaak van swaarder staal met skroefaansluitings en goeie vere. Nou is krokodilleknippies anemiese klein dingetjies met 'n klein nuttelose kaakopening. Ek wou 'n beter alligator -kl kry
Hoe om 'n beter DAC te maak en te toets met ESP32: 5 stappe
Hoe om 'n beter DAC te maak en te toets met ESP32: Die ESP32 het 2 8-bis digitale na analoge omsetters (DAC's). Met hierdie DAC's kan ons arbitrêre spannings binne 'n sekere reeks (0-3.3V) produseer met 8 bisse resolusie. In hierdie instruksies sal ek jou wys hoe om 'n DAC te bou en die p
Beter projekte met PCB's: 6 stappe
Beter projekte met PCB's: as u tyd spandeer het met elektroniese projekte, weet u hoe lekker en opwindend dit kan wees. Niks is meer opwindend as om te sien hoe jou kring reg voor jou oë tot lewe kom nie. Dit word nog meer opwindend as u projek verander in 'n
Narrow Band IoT: Slim beligting en meting bied 'n beter en gesonder ekosisteem: 3 stappe
Narrow Band IoT: Smart Lighting & Metering baan weg na 'n beter en gesonder ekosisteem: outomatisering het sy weg gevind in byna elke sektor. Van produksie tot gesondheidsorg, vervoer en verskaffingsketting, het outomatisering die lig gesien. Al hierdie dinge is ongetwyfeld aantreklik, maar daar is een wat lyk
Beter manier om lêers op instruksies te sien/dokumenteer: 4 stappe
Beter manier om lêers op instruksies te bekyk/dokumenteer: Mense bevat dikwels lêers vir projekte via Instructables -oplaaie. Dikwels is dit sagteware -bronlêers wat selfs die kloppende hart van die instruksies kan wees. Maar Instructables gee die leser nie 'n maklike manier om die kode te lees en te hersien nie. (