Orodha ya maudhui:

Mita ya Arduino Volt (0-100V DC) - Toleo la 2 (bora): 3 Hatua
Mita ya Arduino Volt (0-100V DC) - Toleo la 2 (bora): 3 Hatua

Video: Mita ya Arduino Volt (0-100V DC) - Toleo la 2 (bora): 3 Hatua

Video: Mita ya Arduino Volt (0-100V DC) - Toleo la 2 (bora): 3 Hatua
Video: Как измерить любое напряжение постоянного тока с Arduino ARDVC-01 2024, Juni
Anonim
Image
Image
Hatua ya 1: Skematiki
Hatua ya 1: Skematiki

Katika hii inayoweza kufundishwa, nimejenga voltmeter kupima voltages kubwa DC (0-100v) kwa usahihi na usahihi wa kutumia Arduino Nano na ADS 1115 ADC.

Hii ni toleo la pili la voltmeter iliyotumiwa kufundisha kwangu hapo awali hapa:

Vipimo vya jaribio nilivyochukua vilikuwa sahihi, haswa ndani ya 0.1v ya voltage halisi iliyopimwa na voltmeter ya kawaida (nilitumia Astro AI DM6000AR).

Hii ni bora zaidi, na ni rahisi kwa maoni yangu kuliko kutumia rejea ya nje ya voltage kwenye Arduino.

Vifaa

1 x Arduino Nano - Kiungo

1 x Oled Onyesha (SSD 1306) - Kiungo

1 x ADS 1115 - 16 kidogo ADC - Kiungo

1 x 1 / 4W (Ninashauri kutumia vipingaji 1W ingawa) 1% Resistors - 220k ohm - Kiungo

1 x 1 / 4W (Ninashauri kutumia vipingaji 1W ingawa) Resistors 1% - 10k ohm - Kiungo

Bodi ya mkate na waya - Kiungo

Astro AI DM6000AR - Kiungo

USB Power Bank - Kiungo

Betri za 9V - Kiungo

CanadianWinters ni mshiriki wa Programu ya Washirika wa Huduma za Amazon, mpango wa matangazo ya ushirika iliyoundwa kutoa njia ya tovuti kupata ada kwa kuunganisha kwa Amazon.com na tovuti zilizounganishwa. Kwa kutumia viungo hivi, kama Mshirika wa Amazon ninapata kutoka kwa ununuzi unaostahili, hata ukinunua kitu kingine - na haitagharimu chochote.

Hatua ya 1: Hatua ya 1: Skematiki

Hatua ya 1: Skematiki
Hatua ya 1: Skematiki

Niliunganisha sehemu zote kulingana na skimu hapo juu.

Nilifunga pini ya ADDR ya ADC1115 chini. Hii inaweka anwani ya ADC hadi 0x48.

Hatua ya 2: Hatua ya 2: Mahesabu ya Kanuni na Resistor

Hatua ya 2: Mahesabu ya Kanuni na Resistor
Hatua ya 2: Mahesabu ya Kanuni na Resistor

Kama ilivyoagizwa hapo awali, wazo la mzunguko ni kwamba voltage ya DC inayopimwa hupitia kontena la voltage. Voltage iliyopunguzwa na kisha inaingia kwenye pini ya analog ya kibadilishaji cha ADC ili isomwe, kisha ipitishwe kwa Arduino kupitia I2C halafu ikapunguzwa tena na kuonyeshwa kwenye onyesho la OLed.

Sikutumia wastani au laini katika kificho katika kesi hii, kwani usomaji unaonekana kuwa sahihi kabisa. Ili kupunguza kelele, unaweza kutaka kuongeza kiboreshaji kidogo kati ya A0 (kwenye ADC) na ardhini. Haikuhitajika kwa mtihani wangu ingawa.

Jambo moja nililogundua, ilikuwa kelele kidogo wakati hakukuwa na betri iliyoambatishwa (volts 0). Nilitumia mfuatiliaji wa serial wa Arduino kuonyesha dhamana ya ADC na kurekebisha / kurekebisha kupitia nambari.

Kama ilivyoagizwa hapo awali, nilitengeneza lahajedwali ambalo hutengeneza mahesabu ikiwa unataka kutumia maadili tofauti ya kipinga katika mgawanyiko wa voltage: Unganisha kwa Karatasi ya Google

Hapa kuna nambari niliyotumia kwa mradi huu:

# pamoja

#jumuisha # pamoja na # pamoja na Adafruit_ADS1115 matangazo (0x48); // Anwani ya ADC U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (mzunguko, [upya] int calib = 7; // Thamani ya upimaji wa ADS1115 kupunguza voltage ya kuelea kwa makosa = 0; // kutumika kuhifadhi kuelea thamani ya voltage Radjust = 0.043421905; // Sababu ya mgawanyiko wa Voltage (R2 / R1 + R2) kuelea vbat = 0; // voltage ya mwisho baada ya calcs- voltage ya betri // anuwai ya kuburudisha skrini bila kutumia ucheleweshaji uliosainiwa muda mrefu uliopitaMillis = 0; // itahifadhi wakati wa mwisho skrini iliburudishwa // vipindi havitabadilika: muda wa muda mrefu = 250; // muda ambao unaweza kuonyesha upya skrini (milliseconds) usanidi batili (batili) {Serial.begin (9600); u8g2. kuanza (); anza (); } kitanzi batili (batili) {int16_t adc0; // bits 16 ADC kusoma ya pembejeo A0 adc0 = ads.readADC_SingleEnded (0); voltage = ((adc0 + calib) * 0.1875) / 1000; unsigned long longMillis = millis (); vbat = voltage / Rekebisha; // Kuzuia kuonyesha voltage hasi wakati betri imekatika ikiwa (vbat = interval) {previousMillis = currentMillis; u8g2. clearBuffer (); // safisha orodha ya ndani // Onyesho la Voltage Voltage - Fonti katika ukurasa huu: https://github.com/olikraus/u8g2/wiki/fntlistall //u8g2.setFont(u8g2_font_fub20_tr); // fonti 20px u8g2.setFont (u8g2_font_fub35_tr); // fonti 35px u8g2.setCursor (1, 42); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // fonti ya px 10 u8g2.setCursor (1, 60); u8g2.print ("Volts"); } u8g2.sendBuffer (); // kuhamisha kumbukumbu ya ndani kwa ucheleweshaji wa onyesho (1); }

Hatua ya 3: Hatua ya 3: Wacha tuijaribu

Hatua ya 3: Wacha tuijaribu!
Hatua ya 3: Wacha tuijaribu!

Ili kujaribu voltmeter hii nilitumia betri 10x 9v ambazo nilipata kwenye duka la karibu. Wakati huu ningeweza kupima hadi volts 97! Ninapanga kutumia voltmeter hii kupima voltage kwenye vifurushi vyangu vya baiskeli za umeme (zina voltages kutoka 24-60v na zile za mara kwa mara 72v).

Mara tu umeme unapofungwa kwenye pcb na sanduku kidogo, hii itafanya mita nzuri ya kubeba na inayoweza kubeba. Picha na fonti kwenye OLED zinaweza kuboreshwa kutoshea mahitaji yako (kwa mfano fonti kubwa kwa usomaji rahisi). Lengo langu lilikuwa kuwa na usomaji wa voltage kwenye mita ya Oled / Arduino sio mbali sana kutoka kwa Mita yangu ya Dijiti. Nilikuwa nalenga +/- 0, 3v max delta.

Kama unavyoona kutoka kwa video mwanzoni mwa Inayoweza kufundishwa, niliweza kuweka kumbukumbu hii! Masomo mengi yalikuwa wazi!

Natumai ulifurahiya hii inayoweza kufundishwa na unijulishe mawazo yako!

Ilipendekeza: