Satura rādītājs:

Arduino voltu mērītājs (0-100V DC) - 2. versija (labāka): 3 soļi
Arduino voltu mērītājs (0-100V DC) - 2. versija (labāka): 3 soļi

Video: Arduino voltu mērītājs (0-100V DC) - 2. versija (labāka): 3 soļi

Video: Arduino voltu mērītājs (0-100V DC) - 2. versija (labāka): 3 soļi
Video: инвертор 12в на 220в 2024, Jūnijs
Anonim
Image
Image
1. darbība: shēmas
1. darbība: shēmas

Šajā pamācībā esmu izveidojis voltmetru, lai relatīvi precīzi un precīzi mērītu augstspriegumu līdzstrāvu (0-100v), izmantojot Arduino Nano un ADS 1115 ADC.

Šī ir otrā voltmetra versija, ko izmantoju iepriekšējos norādījumus šeit:

Manis veiktie testa mērījumi bija precīzi, galvenokārt 0,1 V robežās no faktiskā sprieguma, kas izmērīts ar standarta voltmetru (es izmantoju Astro AI DM6000AR).

Manuprāt, tas ir daudz labāk un vieglāk nekā izmantot ārējo sprieguma atsauci Arduino.

Piegādes

1 x Arduino Nano - saite

1 x Oled displejs (SSD 1306) - saite

1 x ADS 1115 - 16 bitu ADC - saite

1 x 1/4 W (es tomēr iesaku izmantot 1W rezistorus) 1% rezistori - 220k omi - saite

1 x 1/4 W (es tomēr iesaku izmantot 1W rezistorus) 1% rezistori - 10k omi - saite

Maizes dēlis un vadi - saite

Astro AI DM6000AR - saite

USB barošanas banka - saite

9V baterijas - saite

CanadianWinters ir dalībnieks Amazon Services LLC Associates programmā - saistītajā reklāmas programmā, kuras mērķis ir nodrošināt vietnēm iespēju nopelnīt maksu, izveidojot saiti uz vietni Amazon.com un saistītajām vietnēm. Izmantojot šīs saites, es kā Amazon asociētais partneris nopelnu no kvalificētiem pirkumiem, pat ja jūs pērkat kaut ko citu-un tas jums neko nemaksās.

1. darbība: 1. darbība: shēmas

1. darbība: shēmas
1. darbība: shēmas

Es savienoju visas detaļas saskaņā ar iepriekš minēto shēmu.

Es piesēju ADC1115 ADDR tapu pie zemes. Tādējādi ADC adrese tiek iestatīta uz 0x48.

2. darbība: 2. darbība: koda un rezistoru aprēķini

2. solis: koda un rezistoru aprēķini
2. solis: koda un rezistoru aprēķini

Tāpat kā iepriekšējā instrukcijā, shēmas ideja ir tāda, ka mērāmais līdzstrāvas spriegums iet caur sprieguma rezistoru. Mērogotais spriegums un pēc tam nokļūst nolasāmā ADC pārveidotāja analogā tapā, pēc tam caur I2C tiek nodots Arduino un pēc tam tiek mērogots un parādīts OLed displejā.

Šajā gadījumā kodā neizmantoju nekādu vidējo vai izlīdzināšanu, jo rādījumi šķiet diezgan precīzi un precīzi. Lai samazinātu troksni, iespējams, vēlēsities pievienot nelielu kondensatoru starp A0 (ADC) un zemi. Tomēr manam testam tas nebija vajadzīgs.

Viena lieta, ko pamanīju, bija neliels troksnis, kad nebija pievienots akumulators (0 volti). Es izmantoju Arduino sērijas monitoru, lai parādītu ADC vērtību un labotu/pielāgotu to, izmantojot kodu.

Tāpat kā iepriekšējā instrukcijā, es izveidoju izklājlapu, kas automatizē aprēķinus, ja sprieguma dalītājā vēlaties izmantot dažādas rezistoru vērtības: Saite uz Google lapu

Šeit ir kods, ko izmantoju šim projektam:

#iekļaut

#include #include #include Adafruit_ADS1115 reklāmas (0x48); // ADC adrese U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (rotācija, [atiestatīšana]) int calib = 7; // ADS1115 kalibrēšanas vērtība, lai samazinātu kļūdu pludiņa spriegumu = 0; // izmanto sprieguma vērtības pludiņa saglabāšanai Radjust = 0.043421905; // Sprieguma dalītāja koeficients (R2 / R1+R2) pludiņš vbat = 0; // galīgais spriegums pēc kalciem- akumulatora spriegums // mainīgie ekrāna atsvaidzināšanai, neizmantojot kavēšanos unsigned long previousMillis = 0; // saglabās pēdējo reizi, kad ekrāns tika atsvaidzināts // konstantes nemainīsies: const long interval = 250; // intervāls, kurā atsvaidzināt ekrānu (milisekundes) void setup (void) {Serial.begin (9600); u8g2.begin (); ads.begin (); } void loop (void) {int16_t adc0; // ievades A0 16 bitu ADC lasījums adc0 = ads.readADC_SingleEnded (0); spriegums = ((adc0 + kalibrs) * 0,1875)/1000; neparakstīta garā strāvaMillis = millis (); vbat = spriegums/Radjust; // Novērst negatīva sprieguma parādīšanu, kad akumulators ir atvienots, ja (vbat = intervāls) {previousMillis = currentMillis; u8g2.clearBuffer (); // notīrīt iekšējo atmiņu // Pack Voltage display - Fonti šajā lapā: https://github.com/olikraus/u8g2/wiki/fntlistall //u8g2.setFont(u8g2_font_fub20_tr); // 20 pikseļu fonts u8g2.setFont (u8g2_font_fub35_tr); // 35 pikseļu fonts u8g2.setCursor (1, 42); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // 10 px fonts u8g2.setCursor (1, 60); u8g2.print ("Volti"); } u8g2.sendBuffer (); // pārsūtīt iekšējo atmiņu uz displeja aizkavi (1); }

3. darbība: 3. darbība: pārbaudīsim

3. darbība: pārbaudīsim!
3. darbība: pārbaudīsim!

Lai pārbaudītu šo voltmetru, es izmantoju 10x 9v baterijas, kuras es saņēmu vietējā veikalā. Šoreiz es varētu izmērīt līdz 97 voltiem! Es plānoju izmantot šo voltmetru, lai izmērītu spriegumu manos elektrisko velosipēdu akumulatoros (tiem ir spriegums no 24 līdz 60 V ar neregulāriem 72 V spriegumiem).

Kad elektronika ir iesaiņota PCB un nelielā kastē, tas padarīs jauku un pārnēsājamu akumulatora mērītāju. OLED grafiku un fontus var pielāgot jūsu vajadzībām (piemēram, lielāks fonts ērtai lasīšanai). Mans mērķis bija panākt sprieguma nolasīšanu Oled/Arduino skaitītājā, kas nav pārāk tālu no mana digitālā multimetra. Man bija mērķis +/- 0, 3v max delta.

Kā jūs varat redzēt no video Instructable sākumā, man izdevās to arhivēt! Lielākā daļa lasījumu bija uz vietas!

Es ceru, ka jums patika šī pamācība un dariet man zināmu savas domas!

Ieteicams: