Talaan ng mga Nilalaman:

Arduino Volt Meter (0-100V DC) - Bersyon 2 (mas mahusay): 3 Mga Hakbang
Arduino Volt Meter (0-100V DC) - Bersyon 2 (mas mahusay): 3 Mga Hakbang

Video: Arduino Volt Meter (0-100V DC) - Bersyon 2 (mas mahusay): 3 Mga Hakbang

Video: Arduino Volt Meter (0-100V DC) - Bersyon 2 (mas mahusay): 3 Mga Hakbang
Video: как сделать цифровой вольтметр на ардуино 2024, Hunyo
Anonim
Image
Image
Hakbang 1: ang Mga Skema
Hakbang 1: ang Mga Skema

Sa itinuturo na ito, nagtayo ako ng isang voltmeter upang masukat ang mataas na voltages DC (0-100v) na may katumpakan at kawastuhan gamit ang isang Arduino Nano at isang ADS 1115 ADC.

Ito ay isang pangalawang bersyon ng voltmeter na ginamit ang dati kong itinuturo dito:

Ang mga sukat sa pagsubok na kinuha ko ay tumpak, karamihan sa loob ng 0.1v ng aktwal na boltahe na sinusukat sa isang karaniwang voltmeter (Gumamit ako ng isang Astro AI DM6000AR).

Ito ay mas mahusay, at mas madali sa aking opinyon kaysa sa paggamit ng isang panlabas na sanggunian ng boltahe sa Arduino.

Mga gamit

1 x Arduino Nano - Link

1 x Oled Display (SSD 1306) - Link

1 x ADS 1115 - 16 bit ADC - Link

1 x 1 / 4W (Iminumungkahi kong gumamit ng 1W resistors) 1% Resistors - 220k ohm - Link

1 x 1 / 4W (Iminumungkahi kong gumamit ng 1W resistors) 1% Resistors - 10k ohm - Link

Breadboard at wires - Link

Astro AI DM6000AR - Link

USB Power Bank - Link

9V Baterya - Link

Ang CanadianWinters ay isang kalahok sa Amazon Services LLC Associates Program, isang kaakibat na programa sa advertising na idinisenyo upang magbigay ng isang paraan para sa mga site upang kumita ng mga bayarin sa pamamagitan ng pag-link sa Amazon.com at mga kaakibat na site. Sa pamamagitan ng paggamit ng mga link na ito, bilang isang Associate sa Amazon kumikita ako mula sa mga kwalipikadong pagbili, kahit na bumili ka ng iba pa - at hindi ka gastos sa anumang bagay.

Hakbang 1: Hakbang 1: ang Mga Skema

Hakbang 1: ang Mga Skema
Hakbang 1: ang Mga Skema

Ikinonekta ko ang lahat ng mga bahagi ayon sa mga eskematiko sa itaas.

Tinali ko ang ADDR pin ng ADC1115 sa lupa. Itinatakda nito ang address ng ADC sa 0x48.

Hakbang 2: Hakbang 2: ang Mga Pagkalkula sa Code at Resistor

Hakbang 2: ang Mga Pagkalkula sa Code at Resistor
Hakbang 2: ang Mga Pagkalkula sa Code at Resistor

Tulad ng nakaraang itinuro, ang ideya ng circuit ay ang DC boltahe upang masukat ay dumadaan sa isang boltahe risistor. Ang na-scale na boltahe at pagkatapos ay papunta sa analog pin ng ADC converter upang mabasa, pagkatapos ay ipinasa sa Arduino sa pamamagitan ng I2C at pagkatapos ay muling na-scale at ipinakita sa display na OLed.

Hindi ako gumamit ng anumang pag-average o pag-aayos ng code sa kasong ito, dahil ang mga pagbasa ay tila tumpak na tumpak. Upang mabawasan ang ingay, baka gusto mong magdagdag ng isang maliit na capacitor sa pagitan ng A0 (sa ADC) at sa lupa. Gayunpaman, hindi ito kinakailangan para sa aking pagsubok.

Ang isang bagay na napansin ko, ay isang maliit na ingay nang walang nakakabit na baterya (0 volts). Ginamit ko ang serial monitor ng Arduino upang ipakita ang halaga ng ADC at iwasto / ayusin ito sa pamamagitan ng code.

Tulad ng nakaraang itinuro, gumawa ako ng isang spreadsheet na awtomatiko ang mga kalkulasyon kung sakaling nais mong gumamit ng iba't ibang mga halaga ng risistor sa divider ng boltahe: Mag-link sa Google Sheet

Narito ang code na ginamit ko para sa proyektong ito:

# isama

#include #include #include Adafruit_ADS1115 ads (0x48); // Adress of the ADC U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (rotation, [reset]) int calib = 7; // Halaga ng pagkakalibrate ng ADS1115 upang mabawasan ang error float voltage = 0; // ginamit upang mag-imbak ng halaga ng boltahe float Radjust = 0.043421905; // Voltage divider factor (R2 / R1 + R2) float vbat = 0; // final boltahe pagkatapos ng calcs- boltahe ng baterya // variable para sa pag-refresh ng screen nang hindi gumagamit ng pagkaantala na hindi naka-sign matagal na nakaraangMillis = 0; // mag-iimbak ng huling oras na na-refresh ang screen // hindi magbabago ang mga Constant: const long interval = 250; // interval kung saan i-refresh ang screen (milliseconds) walang bisa ang pag-setup (walang bisa) {Serial.begin (9600); u8g2.begin (); ads.begin (); } void loop (void) {int16_t adc0; // 16 bits ADC read of input A0 adc0 = ads.readADC_SingleEnded (0); boltahe = ((adc0 + calib) * 0.1875) / 1000; unsigned long currentMillis = millis (); vbat = boltahe / Radjust; // Pigilan ang pagpapakita ng negatibong boltahe kapag ang baterya ay nakakabit kung (vbat = agwat) {nakaraangMillis = currentMillis; u8g2.clearBuffer (); // clear the internal menory // Pack Voltage display - Mga font sa pahinang ito: 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 ("Volts"); } u8g2.sendBuffer (); // transfer internal memory sa pagkaantala sa pagpapakita (1); }

Hakbang 3: Hakbang 3: Subukan Natin Ito

Hakbang 3: Subukan Natin Ito!
Hakbang 3: Subukan Natin Ito!

Upang subukan ang voltmeter na ito gumamit ako ng 10x 9v na baterya na nakuha ko sa isang lokal na tindahan. Sa oras na ito maaari kong sukatin ang hanggang sa 97 volts! Plano kong gamitin ang voltmeter na ito upang masukat ang boltahe sa aking mga de-koryenteng baterya na mga pack ng baterya (mayroon silang mga voltages na mula 24-60v na may mga paminsan-minsang 72v na mga bago).

Kapag ang electronics ay nakabalot sa isang pcb at isang maliit na kahon, gagawa ito ng isang maganda at portable na pack pack ng baterya. Ang mga graphics at font sa OLED ay maaaring ipasadya upang magkasya sa iyong mga pangangailangan (hal. Mas malaking font para sa madaling pagbabasa). Ang aking layunin ay magkaroon ng isang pagbasa ng boltahe sa Oled / Arduino meter na hindi masyadong malayo mula sa aking Digital Multi Meter. Nilalayon ko ang +/- 0, 3v max delta.

Tulad ng nakikita mo mula sa video sa simula ng Instructable, nagawa kong i-archive ito! Karamihan sa mga pagbasa ay spot on!

Inaasahan kong nasiyahan ka sa Ituturo na ito at ipaalam sa akin ang iyong mga saloobin!

Inirerekumendang: