Სარჩევი:

Arduino AREF პინი: 6 ნაბიჯი
Arduino AREF პინი: 6 ნაბიჯი

ვიდეო: Arduino AREF პინი: 6 ნაბიჯი

ვიდეო: Arduino AREF პინი: 6 ნაბიჯი
ვიდეო: Arduino Dersleri 6 : Arduino Nedir, Arduino Digital ve Analog Giriş Çıkış Pinleri 2024, ივლისი
Anonim
Arduino AREF პინი
Arduino AREF პინი

ამ გაკვეთილში ჩვენ შევხედავთ, თუ როგორ შეგიძლიათ გაზომოთ მცირე ძაბვები უფრო დიდი სიზუსტით თქვენი Arduino- ს ან თავსებადი დაფის ანალოგური პინების გამოყენებით AREF პინთან ერთად. თუმცა, პირველ რიგში, ჩვენ გავაკეთებთ გადახედვას, რომ გაზარდოთ სიჩქარე. გთხოვთ, წაიკითხოთ ეს პოსტი მთლიანად AREF– თან პირველად მუშაობის დაწყებამდე.

ნაბიჯი 1: გადახედვა

გადასინჯვა!
გადასინჯვა!

შეიძლება გახსოვდეთ, რომ თქვენ შეგიძლიათ გამოიყენოთ Arduino analogRead () ფუნქცია სენსორებიდან ელექტრული დენის ძაბვის გასაზომად და ასე შემდეგ ანალოგური შეყვანის ერთ -ერთი ქინძისთავის გამოყენებით. AnalogRead () - დან დაბრუნებული მნიშვნელობა იქნება ნულიდან 1023 -მდე, ნული წარმოადგენს ნულოვან ვოლტს და 1023 წარმოადგენს Arduino დაფის მუშა ძაბვას.

და როდესაც ჩვენ ვამბობთ საოპერაციო ძაბვას - ეს არის ძაბვა, რომელიც ხელმისაწვდომია არდუინოსთვის კვების ბლოკის შემდეგ. მაგალითად, თუ თქვენ გაქვთ ტიპიური Arduino Uno დაფა და გაუშვით იგი USB ბუდედან - რა თქმა უნდა, თქვენს კომპიუტერში ან კვანძში USB სოკეტიდან დაფაზე ხელმისაწვდომია 5 ვ - მაგრამ ძაბვა ოდნავ მცირდება, რადგან ახლანდელი ქარი მიკროკონტროლერთან დაკავშირება - ან USB წყარო უბრალოდ არ არის ნაკაწრი.

ამის მარტივად დემონსტრირება შესაძლებელია Arduino Uno– ს USB– თან დაკავშირებით და მულტიმეტრის დაყენებით ძაბვის გასაზომად 5V და GND ქინძისთავებზე. ზოგიერთი დაფა დაუბრუნდება 4.8 ვ -მდე, ზოგი უფრო მაღალი, მაგრამ მაინც 5 ვ -ზე დაბლა. ასე რომ, თუ თქვენ სიზუსტეს ისურვებთ, გამორთეთ დაფა გარე კვების ბლოკიდან DC ბუდეში ან Vin pin- ის საშუალებით, როგორიცაა 9V DC. ამის შემდეგ გადის დენის მარეგულირებელი წრე თქვენ გექნებათ ლამაზი 5V, მაგალითად სურათი.

ეს მნიშვნელოვანია, რადგან ნებისმიერი analogRead () მნიშვნელობის სიზუსტეზე გავლენას მოახდენს ნამდვილი 5 ვ. მაგალითად, თუ თქვენი ძაბვაა 4.8V - analogRead () დიაპაზონი 0 ~ 1023 იქნება 0 ~ 4.8V და არა 0 ~ 5V. ეს შეიძლება ტრივიალურად ჟღერდეს, თუმცა თუ თქვენ იყენებთ სენსორს, რომელიც დააბრუნებს მნიშვნელობას ძაბვის სახით (მაგ. TMP36 ტემპერატურის სენსორი) - გამოთვლილი მნიშვნელობა არასწორი იქნება. ასე რომ, სიზუსტის ინტერესებიდან გამომდინარე, გამოიყენეთ გარე კვების წყარო.

ნაბიჯი 2: რატომ ანაზღაურებს AnalogRead () მნიშვნელობას 0 -დან 1023 -მდე?

რატომ აბრუნებს AnalogRead () მნიშვნელობას 0 -დან 1023 -მდე?
რატომ აბრუნებს AnalogRead () მნიშვნელობას 0 -დან 1023 -მდე?

ეს გამოწვეულია ADC– ის რეზოლუციით. რეზოლუცია (ამ სტატიისათვის) არის ის ხარისხი, თუ რამდენად შეიძლება რაღაცის რიცხობრივად წარმოდგენა. რაც უფრო მაღალია რეზოლუცია, მით უფრო დიდი სიზუსტეა შესაძლებელი რაღაცის წარმოდგენა. ჩვენ ვზომავთ რეზოლუციას რეზოლუციის ბიტების რაოდენობის მიხედვით.

მაგალითად, 1-ბიტიანი გარჩევადობა მხოლოდ ორ (ერთს ერთის სიმძლავრის) მნიშვნელობას მისცემს-ნულს და ერთს. 2-ბიტიანი გარჩევადობა საშუალებას მისცემს ოთხს (ორი სიმძლავრის ორი) მნიშვნელობას-ნულს, ერთს, ორს და სამს. თუ ჩვენ ვცდილობთ გავზომოთ ხუთ ვოლტიანი დიაპაზონი ორ ბიტიანი გარჩევადობით და გაზომილი ძაბვა იყო ოთხი ვოლტი, ჩვენი ADC დააბრუნებდა რიცხვით 3-ს-რადგან ოთხი ვოლტი 3.75-დან 5V- მდეა. უფრო ადვილია ამის წარმოდგენა გამოსახულებით.

ასე რომ, ჩვენი მაგალითით ADC 2-ბიტიანი გარჩევადობით, მას შეუძლია წარმოაჩინოს ძაბვა მხოლოდ ოთხი შესაძლო მნიშვნელობით. თუ შეყვანის ძაბვა 0 -დან 1.25 -მდეა, ADC აბრუნებს რიცხვით 0 -ს; თუ ძაბვა ვარდება 1.25 -დან 2.5 -მდე, ADC აბრუნებს რიცხობრივ მნიშვნელობას 1. და ასე შემდეგ. ჩვენი Arduino– ს ADC დიაპაზონით 0 ~ 1023-ჩვენ გვაქვს 1024 შესაძლო მნიშვნელობა-ან 2 სიმძლავრის 10 – ზე. ასე რომ, ჩვენს Arduinos– ს აქვს ADC 10 – ბიტიანი გარჩევადობით.

ნაბიჯი 3: მაშ რა არის AREF?

მოკლედ რომ ვთქვათ, როდესაც თქვენი Arduino იღებს ანალოგურ კითხვას, ის ადარებს ძაბვას, რომელიც იზომება ანალოგურ ქინძისთავთან და გამოიყენება იმას, რაც ცნობილია როგორც საცნობარო ძაბვა. ნორმალურ ანალოგიურ რეჟიმში წაკითხვისას საცნობარო ძაბვა არის დაფის სამუშაო ძაბვა.

უფრო პოპულარული Arduino დაფებისთვის, როგორიცაა Uno, Mega, Duemilanove და Leonardo/Yún დაფები, საოპერაციო ძაბვა 5V. თუ თქვენ გაქვთ Arduino Due დაფა, სამუშაო ძაბვა არის 3.3V. თუ თქვენ გაქვთ რაიმე სხვა - შეამოწმეთ Arduino პროდუქტის გვერდი ან ჰკითხეთ თქვენი დაფის მიმწოდებელს.

ასე რომ, თუ თქვენ გაქვთ საცნობარო ძაბვა 5V, analogRead () - ით დაბრუნებული თითოეული ერთეული შეფასებულია 0.00488 ვ. (ეს გამოითვლება 1024 -ის 5V- ზე გაყოფით). რა მოხდება, თუ გვსურს გავზომოთ ძაბვები 0 -დან 2 -მდე, ან 0 -დან 4.6 -მდე? როგორ უნდა იცოდეს ADC რა არის ჩვენი ძაბვის დიაპაზონის 100%?

და ამაში მდგომარეობს AREF პინის მიზეზი. AREF ნიშნავს ანალოგიურ მითითებას. ის გვაძლევს საშუალებას არდუინოს მივაწოდოთ საცნობარო ძაბვა გარე კვების ბლოკიდან. მაგალითად, თუ ჩვენ გვინდა გავზომოთ ძაბვები მაქსიმალური დიაპაზონით 3.3V, ჩვენ შესანახი ლამაზი გლუვი 3.3V შევიდა AREF pin - ალბათ ძაბვის მარეგულირებელი IC.

შემდეგ ADC– ის თითოეული საფეხური წარმოადგენდა დაახლოებით 3,22 მილივოლტს (გაყავით 1024 – დან 3,3 – ზე). გაითვალისწინეთ, რომ ყველაზე დაბალი საცნობარო ძაბვა, რაც შეიძლება გქონდეთ არის 1.1 ვ. AREF– ის ორი ფორმა არსებობს - შიდა და გარე, ამიტომ მოდით შევამოწმოთ ისინი.

ნაბიჯი 4: გარე AREF

გარე AREF არის ადგილი, სადაც თქვენ მიაწოდებთ გარე საცნობარო ძაბვას არდუინოს დაფაზე. ეს შეიძლება მოდიოდეს რეგულირებადი კვების წყაროდან, ან თუ გჭირდებათ 3.3V, შეგიძლიათ მიიღოთ Arduino– ს 3.3V პინიდან. თუ თქვენ იყენებთ გარე კვების ბლოკს, აუცილებლად დააკავშირეთ GND Arduino– ს GND პინთან. ან თუ იყენებთ არდუნოს 3.3 ვ წყაროს - უბრალოდ აწარმოეთ მხტუნავი 3.3 ვ პინიდან AREF პინზე.

გარე AREF- ის გასააქტიურებლად გამოიყენეთ შემდეგი ბათილად დაყენებისას ():

analogReference (EXTERNAL); // გამოიყენეთ AREF საცნობარო ძაბვისთვის

ეს ადგენს მითითებულ ძაბვას რასაც თქვენ დაუკავშირდით AREF პინს - რომელსაც, რა თქმა უნდა, ექნება ძაბვა 1.1V და გამგეობის ძაბვას შორის. ძალიან მნიშვნელოვანი შენიშვნა - გარე ძაბვის მითითების გამოყენებისას, თქვენ უნდა დააყენოთ ანალოგური მითითება EXTERNAL analogRead () - ის გამოყენებამდე. ეს ხელს შეუშლის აქტიური შიდა საცნობარო ძაბვისა და AREF პინის შემცირებას, რამაც შეიძლება დააზიანოს დაფაზე არსებული მიკროკონტროლერი. საჭიროების შემთხვევაში თქვენი განაცხადისათვის, თქვენ შეგიძლიათ დაუბრუნდეთ დაფის სამუშაო ძაბვას AREF- ისთვის (ანუ - ნორმალურ რეჟიმში) შემდეგით

analogReference (DEFAULT);

ახლა ვაჩვენოთ გარე AREF სამსახურში. 3.3V AREF– ის გამოყენებით, ესკიზი ზომავს ძაბვას A0– დან და აჩვენებს მთლიანი AREF– ის პროცენტს და გამოთვლილ ძაბვას:

#მოიცავს "LiquidCrystal.h"

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

int analoginput = 0; // ჩვენი ანალოგური პინი

int analogamount = 0; // ინახავს შემომავალი მნიშვნელობის float პროცენტს = 0; // გამოიყენება ჩვენი პროცენტული მნიშვნელობის მცურავი ძაბვის შესანახად = 0; // გამოიყენება ძაბვის მნიშვნელობის შესანახად

ბათილად დაყენება ()

{lcd. დასაწყისი (16, 2); analogReference (EXTERNAL); // გამოიყენეთ AREF საცნობარო ძაბვისთვის}

ბათილი მარყუჟი ()

{lcd.clear (); analogamount = analogRead (analoginput); პროცენტი = (ანალოგი/1024.00)*100; ძაბვა = ანალოგური რაოდენობა*3.222; // მილივოლტებში lcd.setCursor (0, 0); lcd.print ("% AREF:"); lcd.print (პროცენტი, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (ძაბვა, 2); დაგვიანება (250); }

ესკიზის შედეგები ნაჩვენებია ვიდეოში.

ნაბიჯი 5: შიდა AREF

ჩვენს არდუინოს დაფებზე არსებულ მიკროკონტროლებს ასევე შეუძლიათ შექმნან შიდა საცნობარო ძაბვა 1.1 ვ და ჩვენ შეგვიძლია გამოვიყენოთ ეს AREF მუშაობისთვის. უბრალოდ გამოიყენეთ ხაზი:

analogReference (INTERNAL);

Arduino Mega დაფებისთვის გამოიყენეთ:

analogReference (INTERNAL1V1);

in void setup () და თქვენ გამორთული ხართ. თუ თქვენ გაქვთ Arduino Mega ასევე არსებობს 2.56V საცნობარო ძაბვა, რომელიც გააქტიურებულია:

analogReference (INTERNAL2V56);

და ბოლოს - სანამ გადაწყვეტთ თქვენს AREF პინზე მიღებულ შედეგებს, ყოველთვის შეაფასეთ კითხვები ცნობილი კარგი მულტიმეტრის მიხედვით.

დასკვნა

AREF ფუნქცია გაძლევთ მეტ მოქნილობას ანალოგური სიგნალების გაზომვით.

ეს პოსტი მოაქვს pmdway.com– ით - ყველაფერი მწარმოებლებისთვის და ელექტრონიკის მოყვარულთათვის, უფასო მიწოდებით მთელს მსოფლიოში.

გირჩევთ: