Përmbajtje:
- Hapi 1: Rishikimi
- Hapi 2: Pse AnalogRead () kthen një vlerë midis 0 dhe 1023?
- Hapi 3: Pra, çfarë është AREF?
- Hapi 4: AREF i jashtëm
- Hapi 5: AREF i brendshëm
Video: Pin Arduino AREF: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:17
Në këtë tutorial ne do të shikojmë se si mund të matni tensione më të vogla me saktësi më të madhe duke përdorur kunjat analoge të hyrjes në Arduino ose bordin tuaj të pajtueshëm në lidhje me kunjat AREF. Sidoqoftë, së pari ne do të bëjmë një rishikim për t'ju sjellë shpejtësinë. Ju lutemi lexoni këtë postim plotësisht para se të punoni me AREF për herë të parë.
Hapi 1: Rishikimi
Ju mund të mbani mend se mund të përdorni funksionin Arduino analogRead () për të matur tensionin e një rryme elektrike nga sensorët dhe kështu me radhë duke përdorur një nga kunjat e hyrjes analoge. Vlera e kthyer nga analogRead () do të ishte midis zero dhe 1023, me zero që përfaqësonte zero volt dhe 1023 që përfaqësonte tensionin e funksionimit të bordit Arduino në përdorim.
Dhe kur themi tensionin e funksionimit - ky është tensioni i disponueshëm për Arduino pas qarkut të furnizimit me energji. Për shembull, nëse keni një bord tipik Arduino Uno dhe e përdorni atë nga priza USB - sigurisht, ka 5V të disponueshme në tabelë nga priza USB në kompjuterin ose shpërndarësin tuaj - por tensioni zvogëlohet pak ndërsa erërat aktuale rreth e rrotull qark te mikrokontrolluesi - ose burimi USB thjesht nuk është i gërvishtur.
Kjo mund të demonstrohet lehtësisht duke lidhur një Arduino Uno me USB dhe duke vendosur një grup multimetër për të matur tensionin në kunjat 5V dhe GND. Disa borde do të kthehen deri në 4.8 V, disa më të larta, por ende nën 5V. Pra, nëse jeni duke qëlluar për saktësi, fuqizoni bordin tuaj nga një furnizim me energji të jashtme përmes prizës DC ose kunjit Vin - siç është 9V DC. Pastaj pasi të kalojë nëpër qarkun e rregullatorit të energjisë do të keni një 5V të bukur, për shembull imazhin.
Kjo është e rëndësishme pasi saktësia e çdo vlere analogRead () do të ndikohet nga mungesa e një 5 V. të vërtetë Nëse nuk keni ndonjë mundësi, mund të përdorni disa matematikë në skicën tuaj për të kompensuar rënien e tensionit. Për shembull, nëse tensioni juaj është 4.8V - diapazoni analogRead () prej 0 ~ 1023 do të lidhet me 0 ~ 4.8V dhe jo 0 ~ 5V. Kjo mund të tingëllojë e parëndësishme, megjithatë nëse përdorni një sensor që kthen një vlerë si tension (p.sh. sensori i temperaturës TMP36) - vlera e llogaritur do të jetë e gabuar. Pra, në interes të saktësisë, përdorni një furnizim me energji të jashtme.
Hapi 2: Pse AnalogRead () kthen një vlerë midis 0 dhe 1023?
Kjo është për shkak të zgjidhjes së ADC. Rezoluta (për këtë artikull) është shkalla në të cilën diçka mund të përfaqësohet në mënyrë numerike. Sa më e lartë të jetë rezolucioni, aq më i madh është saktësia me të cilën diçka mund të përfaqësohet. Ne e masim rezolucionin në termat e numrit të pjesëve të rezolucionit.
Për shembull, një rezolutë 1-bit do të lejonte vetëm dy (dy në fuqinë e një) vlera-zero dhe një. Një rezolutë 2-bit do të lejojë katër (dy në fuqinë e dy) vlerave-zero, një, dy dhe tre. Nëse do të përpiqeshim të masnim një diapazon prej pesë voltësh me një rezolucion dy-bitësh, dhe tensioni i matur ishte katër volt, ADC-ja jonë do të kthente një vlerë numerike prej 3-pasi katër volt bie midis 3.75 dhe 5V. Easiershtë më e lehtë të imagjinohet kjo me imazhin.
Pra, me shembullin tonë ADC me rezolucion 2-bit, ai mund të përfaqësojë vetëm tensionin me katër vlera të mundshme që rezultojnë. Nëse tensioni i hyrjes bie midis 0 dhe 1.25, ADC kthen numrin 0; nëse voltazhi bie midis 1.25 dhe 2.5, ADC kthen një vlerë numerike prej 1. Dhe kështu me radhë. Me gamën ADC të Arduino-s tonë prej 0 ~ 1023-ne kemi 1024 vlera të mundshme-ose 2 në fuqinë 10. Pra, Arduinos tanë kanë një ADC me një rezolucion 10-bit.
Hapi 3: Pra, çfarë është AREF?
Për të shkurtuar një histori të gjatë, kur Arduino juaj merr një lexim analog, ai krahason tensionin e matur në kunjën analoge që përdoret me atë që njihet si tension referimi. Në përdorim normal analogRead, tensioni referues është tensioni i funksionimit të bordit.
Për bordet më të njohura Arduino siç janë bordet Uno, Mega, Duemilanove dhe Leonardo/Yún, tensioni i funksionimit është 5V. Nëse keni një bord Arduino Due, tensioni i funksionimit është 3.3V. Nëse keni diçka tjetër - kontrolloni faqen e produktit Arduino ose pyesni furnizuesin tuaj të bordit.
Pra, nëse keni një tension referimi prej 5V, çdo njësi e kthyer me analogRead () vlerësohet në 0.00488 V. (Kjo llogaritet duke e ndarë 1024 në 5V). Po sikur të duam të matim tensionet midis 0 dhe 2, ose 0 dhe 4.6? Si do ta dinte ADC se cila është 100% e diapazonit tonë të tensionit?
Dhe aty qëndron arsyeja për kunjin AREF. AREF do të thotë referencë analoge. Na lejon të ushqejmë Arduino me një tension referimi nga një furnizim me energji të jashtme. Për shembull, nëse duam të masim tensionet me një gamë maksimale prej 3.3V, ne do të ushqejmë një 3.3V të bukur të qetë në kunjin AREF - ndoshta nga një IC rregullator i tensionit.
Pastaj secili hap i ADC do të përfaqësonte rreth 3.22 milivolt (ndani 1024 në 3.3). Vini re se tensioni më i ulët i referencës që mund të keni është 1.1V. Ekzistojnë dy forma të AREF - të brendshme dhe të jashtme, kështu që le t'i shikojmë ato.
Hapi 4: AREF i jashtëm
Një AREF e jashtme është vendi ku ju furnizoni një tension të jashtëm referimi në bordin Arduino. Kjo mund të vijë nga një furnizim me energji të rregulluar, ose nëse keni nevojë për 3.3V mund ta merrni nga kunja 3.3V e Arduino. Nëse jeni duke përdorur një furnizim me energji të jashtme, sigurohuni që ta lidhni GND me kunjin GND të Arduino. Ose nëse përdorni burimin 3.3V të Arduno - thjesht drejtoni një kërcyes nga kunja 3.3V në kunjin AREF.
Për të aktivizuar AREF -in e jashtëm, përdorni sa vijon në void setup ():
analogReference (E JASHTME); // përdorni AREF për tensionin e referencës
Kjo vendos tensionin referues për çdo gjë që keni lidhur me kunjin AREF - e cila natyrisht do të ketë një tension midis 1.1V dhe tensionit të funksionimit të bordit. Shënim shumë i rëndësishëm - kur përdorni një referencë të tensionit të jashtëm, duhet të vendosni referencën analoge në EXTERNAL para se të përdorni analogRead (). Kjo do t'ju parandalojë nga shkurtimi i tensionit aktiv të referencës së brendshme dhe kunjit AREF, i cili mund të dëmtojë mikrokontrolluesin në tabelë. Nëse është e nevojshme për aplikimin tuaj, mund të ktheheni në tensionin e funksionimit të bordit për AREF (domethënë - përsëri në normale) me sa vijon
analogReference (DEFAULT);
Tani për të demonstruar AREF të jashtëm në punë. Duke përdorur një AREF 3.3V, skica e mëposhtme mat tensionin nga A0 dhe shfaq përqindjen e totalit të AREF dhe tensionin e llogaritur:
#përfshi "LiquidCrystal.h"
LiquidCrystal LCD (8, 9, 4, 5, 6, 7);
int analoginput = 0; // kunja jonë analoge
int analogamount = 0; // ruan vlerën hyrëse përqindjen notuese = 0; // përdoret për të ruajtur vlerën tonë përqindëse të tensionit të notimit = 0; // përdoret për të ruajtur vlerën e tensionit
void setup ()
{lcd.filloj (16, 2); analogReference (E JASHTME); // përdorni AREF për tensionin referues}
lak void ()
{lcd.qartë (); analogamount = analogRead (analoginput); përqindje = (shuma analoge/1024.00)*100; tension = shuma analoge*3.222; // në milivolt lcd.setCursor (0, 0); lcd.print ("% e AREF:"); lcd.print (përqindje, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (tension, 2); vonesë (250); }
Rezultatet e skicës së mësipërme janë treguar në video.
Hapi 5: AREF i brendshëm
Mikrokontrolluesit në bordet tona Arduino gjithashtu mund të gjenerojnë një tension të brendshëm reference prej 1.1V dhe ne mund ta përdorim këtë për punën AREF. Thjesht përdorni linjën:
analogReference (INTERNAL);
Për tabelat Arduino Mega, përdorni:
analogReference (INTERNAL1V1);
në void setup () dhe ju jeni jashtë. Nëse keni një Arduino Mega ekziston edhe një tension referimi 2.56V i cili aktivizohet me:
analogReference (INTERNAL2V56);
Së fundi - para se të vendosni në rezultatet nga kunja juaj AREF, gjithmonë kalibroni leximet kundrejt një multimetri të mirë të njohur.
Përfundim
Funksioni AREF ju jep më shumë fleksibilitet me matjen e sinjaleve analoge.
Ky postim ju është sjellë nga pmdway.com - gjithçka për prodhuesit dhe entuziastët e elektronikës, me shpërndarje falas në të gjithë botën.
Recommended:
Konektori ICSP për Arduino Nano pa kokë të bashkuar me Pin por Pogo Pin: 7 hapa
Lidhës ICSP për Arduino Nano pa kokë të ngjitur Pin por Pogo Pin: Bëni një lidhës ICSP për Arduino Nano pa kokë pin të bashkuar në tabelë, por Pogo Pin. Pjesë 3 × 2 Socket Pin x1 - APitch 2.54mm Dupont Line Wire Femra Pin Connector Housing Terminalet x6 -BP75-E2 (Koka konike 1.3 mm) Sonda e provës së pranverës Pogo Pin
DIY Arduino Pin Pointer Metal Detektor: 3 hapa
DIY Arduino Pin Pointer Metal Detector: Një detektor metalik tradicional mund të gjejë një send të gërryer dhe t'ju japë një vend të përafërt të objektit të vendosur në tokë Me Gjithashtu, mund të
AT Commands for Bluetooth Module (HC-05 W/ EN Pin dhe BUTTON) Duke përdorur Arduino Board!: 5 hapa
AT Commands for Bluetooth Module (HC-05 W/ EN Pin dhe BUTTON) Duke përdorur Arduino Bord! në lidhje me dërgimin e komandave AT në modul për ta konfiguruar/modifikuar atë (emri, çelësi i kalimit, baud ra
Metal -Detektor Pin -Pointer - Arduino: 6 hapa (me fotografi)
Metal -Detektor Pin -Pointer - Arduino: Nëse jeni një entuziast i Detektorit të Metalit ose thjesht kërkoni një mjet të dobishëm për punëtori, atëherë do t’ju pëlqejë ky tregues unik dore për ngushtimin e vendndodhjes specifike të një objektivi metalik. Përdorni katër spirale kërkimi të pavarura, të ftohta Ngjyrat LED për sig
ISP 6 Pin në 8 Pin Fole: 4 Hapa
ISP 6 Pin në 8 Pin Socket: Arsyeja pse e ndërtova kryesisht këtë projekt ishte të programoja ATTiny45, e cila ka një lidhje 8 pin, ndërsa USBtinyISP im (nga Ladyada) ka vetëm një lidhje 10 pin dhe 6 pin. Pasi hulumtova në internet për rreth 3-4 javë, nuk gjeta asgjë që