Orodha ya maudhui:

Arduino Sahihi & Sahihi Volt mita (0-90V DC): 3 Hatua
Arduino Sahihi & Sahihi Volt mita (0-90V DC): 3 Hatua

Video: Arduino Sahihi & Sahihi Volt mita (0-90V DC): 3 Hatua

Video: Arduino Sahihi & Sahihi Volt mita (0-90V DC): 3 Hatua
Video: Как измерить любое напряжение постоянного тока с Arduino ARDVC-01 2024, Novemba
Anonim

Katika hii inayoweza kufundishwa, nimejenga voltmeter kupima voltages za juu DC (0-90v) kwa usahihi na usahihi wa kutumia Arduino Nano.

Vipimo vya jaribio nilivyochukua vilikuwa vya kutosha vya kutosha, haswa ndani ya 0.3v ya voltage halisi iliyopimwa na voltmeter ya kawaida (nilitumia Astro AI DM6000AR). Hii ni karibu kutosha kwa matumizi yangu yaliyokusudiwa ya kifaa.

Kuhifadhi kumbukumbu hii nilitumia kumbukumbu ya voltage (4.096v) na mgawanyiko wa voltage.

Kwa upande wa nambari, nilitumia, kwa kweli, chaguo la "kumbukumbu ya nje" ya Arduino Nano na mfano wa "Laini" katika mafunzo ya Arduino.

Vifaa

1 x Arduino Nano - Kiungo

1 x Oled Onyesha (SSD 1306) - Kiungo

1 x 1 / 4W 1% Resistors - 1k ohm - Kiungo

1 x 1 / 4W 1% Resistors - 220k ohm - Kiungo

1 x 1 / 4W 1% Resistors - 10k ohm - Kiungo

1 x 4.096v LM4040DIZ-4.1 Rejea ya Voltage - 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: Skematiki

Skimatiki
Skimatiki
Skimatiki
Skimatiki

Niliunganisha sehemu zote kulingana na skimu hapo juu. Hasa nilichagua rejea ya voltage ya 4.096 kukaa karibu iwezekanavyo kwa alama ya 5v ili kuepuka kupuuza azimio.

Kufuatia data ya data, nilichagua kipimaji cha 1K ohm kwa kumbukumbu ya voltage ingawa thamani tofauti inaweza kutumika. Voltage ya kumbukumbu hutolewa kutoka kwa pini ya Nano 5v.

Wazo la mzunguko ni kwamba voltage ya DC inayopimwa hupitia kontena la voltage. Voltage iliyopunguzwa na kisha inaingia kwenye pini ya analog ya Arduino ili kuchujwa, kulainishwa, kupunguzwa tena na kuonyeshwa kwenye onyesho la OLed.

Nilijaribu kuweka mambo rahisi:)

Hatua ya 2: Kanuni na Mahesabu ya Resistor

Maadili ya vipinga yalichaguliwa kama inashauriwa (ikiwa sikosei hii iko kwenye data ya Arduino / Atmega) kuweka impedance chini ya 10k ohm.

Ili kurahisisha mambo, nilitengeneza lahajedwali ambalo hubadilisha mahesabu ikiwa unataka kutumia maadili tofauti ya kontena: Unganisha kwa Karatasi ya Google

Hapa kuna nambari niliyotumia kwa mradi huu:

# pamoja

# pamoja na U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (mzunguko, [weka upya]) voltage ya kuelea = 0; // kutumika kuhifadhi kuelea thamani ya voltage Radjust = 0.043459459; // Sababu ya mgawanyiko wa Voltage (R2 / R1 + R2) kuelea vbat = 0; // voltage ya mwisho baada ya calcs- voltage ya kuelea kwa betri Vref = 4.113; // Rejea ya Voltage - thamani halisi iliyopimwa. Thamani ya majina 4.096v const int numReadings = 50; // idadi ya sampuli za kusoma - ongeza kwa laini zaidi. Pungua kwa kusoma haraka. usomaji wa ndani [hesabu]; // masomo kutoka kwa pembejeo ya analog int readIndex = 0; // faharisi ya usomaji wa sasa usiosainiwa jumla ya muda mrefu = 0; // jumla ya kukimbia int wastani = 0; // vigeugeu vya kuburudisha skrini bila kutumia ucheleweshaji uliosainiwa kwa muda mrefu uliopitaMillis = 0; // itahifadhi mara ya mwisho skrini iliposasishwa // vizuizi havitabadilika: muda wa muda mrefu = 50; // kipindi cha kuburudisha skrini (milliseconds) usanidi batili (batili) {analogReference (NJE); // tumia AREF kwa voltage ya kumbukumbu 4.096. Voltage yangu halisi ya kumbukumbu ni 4.113v u8g2. Kuanza (); for (int thisReading = 0; thisReading = numReadings) {//… funga mpaka mwanzo: readIndex = 0; } // mahesabu wastani: wastani = (jumla / hesabu za kusoma); voltage = wastani * (Vref / 1023.0); //4.113 ni Vref vbat = voltage / Radjust; // Kuweka kucheleweshwa kwa onyesho la skrini kutumia Millis ikiwa (currentMillis - previousMillis> = interval) {// kuokoa mara ya mwisho skrini ilisasishwa uliopitaMillis = currentMillis; u8g2. clearBuffer (); // futa orodha ya ndani // Onyesho la Voltage u8g2.setFont (u8g2_font_fub20_tr); // fonti 20px u8g2.setCursor (1, 20); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // fonti ya px 10 u8g2.setCursor (76, 20); u8g2.print ("Volts"); u8g2.setCursor (1, 40); u8g2.print ("CanadaWinters '"); u8g2.setCursor (1, 60); u8g2.print ("Voltage Sahihi"); } u8g2.sendBuffer (); // kuhamisha kumbukumbu ya ndani kwa ucheleweshaji wa onyesho (1); }

Tafadhali kumbuka mimi nina kutu kidogo na uandishi wa Arduino, kwa hivyo ikiwa unapata kosa lolote au njia ya kuboresha nambari, niko wazi kwa maoni:)

Hatua ya 3: Wacha tuijaribu

Wacha tuijaribu!
Wacha tuijaribu!
Wacha tuijaribu!
Wacha tuijaribu!
Wacha tuijaribu!
Wacha tuijaribu!

Ili kujaribu voltmeter hii nilitumia betri 8x 9v ambazo nilipata kwenye duka la karibu. 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 niliweza kuweka kumbukumbu hii isipokuwa mwisho wa juu wa vipimo.

Natumai ulifurahiya hii inayoweza kufundishwa na unijulishe mawazo yako!

Ilipendekeza: