Orodha ya maudhui:

Sehemu ya Aredu ya Arduino: Hatua 6
Sehemu ya Aredu ya Arduino: Hatua 6

Video: Sehemu ya Aredu ya Arduino: Hatua 6

Video: Sehemu ya Aredu ya Arduino: Hatua 6
Video: Lesson 06: Arduino Variables Data Types | Robojax Arduino Step By Step Course 2024, Novemba
Anonim
Sehemu ya Arduino AREF
Sehemu ya Arduino AREF

Katika mafunzo haya tutaangalia jinsi unaweza kupima voltages ndogo kwa usahihi zaidi ukitumia pini za kuingiza analog kwenye Arduino yako au bodi inayoendana kwa kushirikiana na pini ya AREF. Walakini kwanza tutafanya marekebisho ili kukupa kasi zaidi. Tafadhali soma chapisho hili kabisa kabla ya kufanya kazi na AREF mara ya kwanza.

Hatua ya 1: Marekebisho

Marudio!
Marudio!

Unaweza kukumbuka kuwa unaweza kutumia kazi ya Arduino AnalogRead () kupima voltage ya umeme wa sasa kutoka kwa sensorer na kadhalika kutumia moja ya pini za kuingiza analog. Thamani iliyorudishwa kutoka kwa AnalogRead () itakuwa kati ya sifuri 1023, na sifuri inayowakilisha volts sifuri na 1023 inayowakilisha voltage ya uendeshaji wa bodi ya Arduino inayotumika.

Na tunaposema voltage ya kufanya kazi - hii ni voltage inayopatikana kwa Arduino baada ya mzunguko wa usambazaji wa umeme. Kwa mfano, ikiwa una bodi ya kawaida ya Arduino Uno na uitumie kutoka kwa tundu la USB - hakika, kuna 5V inayopatikana kwa bodi kutoka kwa tundu la USB kwenye kompyuta yako au kitovu - lakini voltage imepunguzwa kidogo kama upepo wa sasa unaozunguka mzunguko kwa microcontroller - au chanzo cha USB sio tu kuanza.

Hii inaweza kuonyeshwa kwa urahisi kwa kuunganisha Arduino Uno na USB na kuweka seti ya multimeter kupima voltage kwenye pini za 5V na GND. Bodi zingine zitarudi chini kama 4.8 V, zingine juu lakini bado chini ya 5V. Kwa hivyo ikiwa unapiga risasi kwa usahihi, weka bodi yako kutoka kwa usambazaji wa umeme wa nje kupitia tundu la DC au pini ya Vin - kama 9V DC. Halafu baada ya hapo kupitia mzunguko wa mdhibiti wa nguvu utakuwa na 5V nzuri, kwa mfano picha.

Hii ni muhimu kwani usahihi wa maadili yoyote ya AnalogRead () yataathiriwa na kutokuwa na 5 V ya kweli. Ikiwa huna chaguo lolote, unaweza kutumia hesabu kadhaa kwenye mchoro wako kufidia kushuka kwa voltage. Kwa mfano, ikiwa voltage yako ni 4.8V - AnalogRead () anuwai ya 0 ~ 1023 itahusiana na 0 ~ 4.8V na sio 0 ~ 5V. Hii inaweza kusikika kuwa ya maana, hata hivyo ikiwa unatumia kihisi kinachorudisha thamani kama voltage (k.v sensor ya joto ya TMP36) - thamani iliyohesabiwa itakuwa mbaya. Kwa hivyo kwa masilahi ya usahihi, tumia umeme wa nje.

Hatua ya 2: Kwa nini AnalogRead () Inarejesha Thamani kati ya 0 na 1023?

Kwa nini AnalogRead () Inarejesha Thamani kati ya 0 na 1023?
Kwa nini AnalogRead () Inarejesha Thamani kati ya 0 na 1023?

Hii ni kutokana na azimio la ADC. Azimio (la kifungu hiki) ni kiwango ambacho kitu kinaweza kuwakilishwa kwa nambari. Azimio kubwa zaidi, usahihi zaidi ambao kitu kinaweza kuwakilishwa. Tunapima azimio kwa suala la idadi ya bits ya azimio.

Kwa mfano, azimio la 1-bit lingeruhusu tu mbili (mbili kwa nguvu ya moja) maadili - sifuri na moja. Azimio la 2-bit litaruhusu nne (mbili kwa nguvu ya mbili) maadili - sifuri, moja, mbili na tatu. Ikiwa tungejaribu kupima anuwai ya volt tano na azimio la kidogo-kidogo, na voltage iliyopimwa ilikuwa volts nne, ADC yetu ingerejesha nambari ya nambari ya 3 - kama volts nne zinaanguka kati ya 3.75 na 5V. Ni rahisi kufikiria hii na picha.

Kwa hivyo na mfano wetu ADC na azimio la 2-bit, inaweza tu kuwakilisha voltage na maadili manne yanayoweza kusababisha. Ikiwa voltage ya pembejeo iko kati ya 0 na 1.25, ADC inarudi nambari 0; ikiwa voltage iko kati ya 1.25 na 2.5, ADC inarudi nambari ya nambari ya 1. Na kadhalika. Na safu yetu ya ADC ya Arduino ya 0 ~ 1023 - tuna maadili 1024 - au 2 kwa nguvu ya 10. Kwa hivyo Arduinos zetu zina ADC na azimio la 10-bit.

Hatua ya 3: Kwa hivyo ni nini AREF?

Ili kukata hadithi ndefu fupi, wakati Arduino yako inachukua usomaji wa analojia, inalinganisha voltage inayopimwa kwenye pini ya analogi inayotumika dhidi ya ile inayojulikana kama voltage ya kumbukumbu. Katika analog ya kawaida Soma matumizi, voltage ya kumbukumbu ni voltage ya uendeshaji wa bodi.

Kwa bodi maarufu zaidi za Arduino kama bodi za Uno, Mega, Duemilanove na Leonardo / Yún, voltage ya uendeshaji ya 5V. Ikiwa una bodi ya Arduino Kutokana, voltage ya uendeshaji ni 3.3V. Ikiwa una kitu kingine - angalia ukurasa wa bidhaa wa Arduino au uulize muuzaji wako wa bodi.

Kwa hivyo ikiwa una voltage ya kumbukumbu ya 5V, kila kitengo kilichorudishwa na AnalogRead () kinathaminiwa 0.00488 V. (Hii imehesabiwa kwa kugawanya 1024 kuwa 5V). Je! Ikiwa tunataka kupima voltages kati ya 0 na 2, au 0 na 4.6? Je! ADC ingejuaje ni nini 100% ya safu yetu ya voltage?

Na ndani yake kuna sababu ya pini ya AREF. AREF inamaanisha Rejea ya Analog. Inaturuhusu kulisha Arduino voltage ya kumbukumbu kutoka kwa usambazaji wa umeme wa nje. Kwa mfano, ikiwa tunataka kupima voltages na kiwango cha juu cha 3.3V, tutalisha 3.3V nzuri kwenye pini ya AREF - labda kutoka kwa mdhibiti wa voltage IC.

Halafu kila hatua ya ADC ingewakilisha karibu milimita 3.22 (gawanya 1024 hadi 3.3). Kumbuka kuwa voltage ya chini kabisa ambayo unaweza kuwa nayo ni 1.1V. Kuna aina mbili za AREF - ndani na nje, kwa hivyo hebu tuangalie.

Hatua ya 4: AREF ya nje

Eneo la nje ndio unasambaza voltage ya kumbukumbu ya nje kwa bodi ya Arduino. Hii inaweza kutoka kwa usambazaji wa umeme uliodhibitiwa, au ikiwa unahitaji 3.3V unaweza kuipata kutoka kwa pini ya Arduino ya 3.3V. Ikiwa unatumia umeme wa nje, hakikisha unganisha GND na pini ya GND ya Arduino. Au ikiwa unatumia chanzo cha Arduno cha 3.3V - fanya tu jumper kutoka kwa pini ya 3.3V hadi pini ya AREF.

Ili kuwezesha AREF ya nje, tumia yafuatayo katika usanidi batili ():

Rejea ya Analog (KWA NJE); // tumia AREF kwa voltage ya kumbukumbu

Hii inaweka voltage ya kumbukumbu kwa kila kitu ambacho umeunganisha kwenye pini ya AREF - ambayo bila shaka itakuwa na voltage kati ya 1.1V na voltage ya utendaji wa bodi. Ujumbe muhimu sana - unapotumia rejeleo la voltage ya nje, lazima uweke rejeleo la analojia kwa NJE. kabla ya kutumia AnalogRead (). Hii itakuzuia kufupisha voltage inayotumika ya kumbukumbu ya ndani na pini ya AREF, ambayo inaweza kuharibu mdhibiti mdogo kwenye bodi. Ikiwa ni lazima kwa programu yako, unaweza kurudi kwenye voltage ya uendeshaji wa bodi kwa AREF (ambayo ni - kurudi kwa kawaida) na yafuatayo

Rejea ya Analog (DEFAULT);

Sasa kuonyesha AREF ya nje kazini. Kutumia AREF ya 3.3V, mchoro ufuatao hupima voltage kutoka A0 na inaonyesha asilimia ya jumla ya AREF na voltage iliyohesabiwa:

# pamoja na "LiquidCrystal.h"

LiquidCrystal LCD (8, 9, 4, 5, 6, 7);

pembejeo ya ndani = 0; // pini yetu ya analog

idadi sawa = 0; // huhifadhi asilimia inayoingia ya asilimia ya kuelea = 0; // kutumika kuhifadhi voltage yetu ya kuelea voltage = 0; // kutumika kuhifadhi thamani ya voltage

kuanzisha batili ()

{lcd. anza (16, 2); Rejea ya Analog (KWA NJE); // tumia AREF kwa voltage ya kumbukumbu}

kitanzi batili ()

{lcd.safi (); idadi sawa = AnalogSoma (analoginput); asilimia = (sawa sawa / 1024.00) * 100; voltage = kiasi sawa * 3.222; // katika millivolts lcd.setCursor (0, 0); lcd.print ("% ya AREF:"); lcd.print (asilimia, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (voltage, 2); kuchelewesha (250); }

Matokeo ya mchoro hapo juu yameonyeshwa kwenye video.

Hatua ya 5: AREF ya ndani

Watawala wadogo kwenye bodi zetu za Arduino wanaweza pia kutoa voltage ya kumbukumbu ya ndani ya 1.1V na tunaweza kutumia hii kwa kazi ya AREF. Tumia tu laini:

Rejea ya Analog (YA NDANI);

Kwa bodi za Mega za Arduino, tumia:

Rejea ya Analog (INTERNAL1V1);

katika usanidi batili () na umezima. Ikiwa unayo Mega ya Arduino pia kuna voltage ya kumbukumbu ya 2.56V inayopatikana ambayo imeamilishwa na:

Rejea ya Analog (INTERNAL2V56);

Mwishowe - kabla ya kukaa juu ya matokeo kutoka kwa pini yako ya AREF, rekebisha usomaji dhidi ya multimeter nzuri inayojulikana.

Hitimisho

Kazi ya AREF inakupa kubadilika zaidi na kupima ishara za analog.

Chapisho hili limeletwa kwako na pmdway.com - kila kitu kwa watengenezaji na wapenda umeme, na uwasilishaji wa bure ulimwenguni.

Ilipendekeza: