როგორ დააკავშირებს აქსელერომეტრი Arduino- ს

Სარჩევი:

როგორ დააკავშირებს აქსელერომეტრი Arduino- ს
როგორ დააკავშირებს აქსელერომეტრი Arduino- ს

ვიდეო: როგორ დააკავშირებს აქსელერომეტრი Arduino- ს

ვიდეო: როგორ დააკავშირებს აქსელერომეტრი Arduino- ს
ვიდეო: როგორ გამოვიყენოთ MAX6675 თერმოდაწყვილებული k ტიპი Arduino– ს საშუალებით 2024, ნოემბერი
Anonim

ამჯერად საქმე გვაქვს ADXL335 ანალოგური სამკუთხა აქსელერომეტრის Arduino- სთან დაკავშირებაზე.

ანალოგური აქსელერომეტრი ADXL335
ანალოგური აქსელერომეტრი ADXL335

აუცილებელია

  • - არდუინო;
  • - აქსელერომეტრი ADXL335;
  • - პერსონალური კომპიუტერი Arduino IDE განვითარების გარემოთი.

ინსტრუქციები

Ნაბიჯი 1

აჩქარების ვექტორის დასადგენად გამოიყენება აქსელერომეტრები. ADXL335 აქსელერომეტრს აქვს სამი ღერძი და ამის წყალობით მას შეუძლია განსაზღვროს აჩქარების ვექტორი სამგანზომილებიან სივრცეში. იმის გამო, რომ მიზიდულობის ძალა ასევე არის ვექტორი, ამაჩქარებელს შეუძლია განსაზღვროს საკუთარი ორიენტაცია სამგანზომილებიან სივრცეში დედამიწის ცენტრთან შედარებით.

ილუსტრაცია გვიჩვენებს სურათებს პასპორტიდან (https://www.analog.com/static/imported-files/data_sheets/ADXL335.pdf) ADXL335 ამაჩქარებლისთვის. აქ ნაჩვენებია აქსელერომეტრის მგრძნობელობის კოორდინატული ღერძი სივრცეში მოწყობილობის სხეულის გეომეტრიულ განლაგებასთან მიმართებაში, ასევე 3 აქსელერომეტრიანი არხიდან ძაბვის მნიშვნელობების ცხრილი, რაც დამოკიდებულია სივრცეში მისი ორიენტაციის მიხედვით. ცხრილში მოცემულია მონაცემები დანარჩენი სენსორისთვის.

მოდი, უფრო ახლოს გავეცნოთ იმას, თუ რას გვაჩვენებს ამაჩქარებელი. დაე, სენსორი ჰორიზონტალურად იწოს, მაგალითად, მაგიდაზე. მაშინ დაჩქარების ვექტორის პროექცია ტოლია 1 გ Z ღერძის გასწვრივ, ან Zout = 1g. დანარჩენ ორ ღერძს ექნება ნულები: Xout = 0 და Yout = 0. როდესაც სენსორი აღმოჩნდება "ზურგზე", ის მიმართული იქნება სიმძიმის ვექტორთან მიმართებით, საპირისპირო მიმართულებით, ე.ი. Zout = -1 გ. ანალოგიურად, გაზომვები ხორციელდება სამივე ღერძზე. აშკარაა, რომ ამაჩქარებელი შეიძლება განლაგდეს როგორც სასურველია სივრცეში, ამიტომ ჩვენ სამივე არხიდან ნულის გარდა სხვა მაჩვენებლებს ავიღებთ.

თუ ზონდი ძლიერად შეირყა ვერტიკალური Z- ღერძის გასწვრივ, Zout- ის მნიშვნელობა იქნება "1 გ" -ზე მეტი. მაქსიმალური გაზომვადი აჩქარება არის "3 გ" თითოეულ ღერძში ნებისმიერი მიმართულებით (ანუ ორივე "პლუსთან" და "მინუსთან" ერთად).

აქსელერომეტრის მგრძნობელობის ღერძი და გამომავალი მნიშვნელობების ცხრილი
აქსელერომეტრის მგრძნობელობის ღერძი და გამომავალი მნიშვნელობების ცხრილი

ნაბიჯი 2

ვფიქრობ, ჩვენ გავერკვიეთ აქსელერომეტრის მუშაობის პრინციპი. ახლა გადავხედოთ კავშირის სქემას.

ADXL335 ანალოგური აქსელერომეტრის ჩიპი საკმაოდ მცირე ზომისაა და მოთავსებულია BGA პაკეტში, ხოლო სახლში დაფაზე მისი დამონტაჟება რთულია. ამიტომ გამოვიყენებ მზა GY-61 მოდულს ADXL335 აქსელემეტრით. ჩინეთის ონლაინ მაღაზიებში ასეთი მოდულები თითქმის პენი ღირს.

აქსელერომეტრის ენერგიის მისაღებად საჭიროა მოდულის VCC პინს მიაწოდოთ ძაბვა +3, 3 V. სენსორის საზომი არხები უკავშირდება Arduino- ს ანალოგურ პინებს, მაგალითად, "A0", "A1" და " A2 ". ეს არის მთელი წრე:)

ADXL335 აქსელერომეტრის გაყვანილობის სქემა არდუნოსკენ
ADXL335 აქსელერომეტრის გაყვანილობის სქემა არდუნოსკენ

ნაბიჯი 3

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

Arduino– ს აქვს 10 ბიტიანი ADC, ხოლო მაქსიმალური დასაშვები პინ ძაბვაა 5 ვოლტი. გაზომილი ძაბვები დაშიფრულია ბიტებით, რომლებსაც მხოლოდ 2 მნიშვნელობის აღება შეუძლიათ - 0 ან 1. ეს ნიშნავს, რომ გაზომვის მთელი დიაპაზონი იყოფა (1 + 1) მე -10 ხარისხზე, 1024 თანაბარ სეგმენტზე.

კითხვების ვოლტებში გადასაკეთებლად, ანალოგურ შესასვლელზე გაზომილი თითოეული მნიშვნელობა უნდა გაყოთ 1024-ზე (სეგმენტები), შემდეგ გავამრავლოთ 5-ზე (ვოლტებზე).

ვნახოთ, რა მოდის ამაჩქარებლისგან Z- ღერძის მაგალითზე (ბოლო სვეტი). როდესაც სენსორი ჰორიზონტალურად არის განლაგებული და მაღლა იყურება, ციფრები მოდის (2.03 +/- 0.01). ასე რომ, ეს უნდა შეესაბამებოდეს აჩქარებას "+ 1 გ" Z ღერძის გასწვრივ და 0 გრადუსიანი კუთხე. გადაატრიალეთ სენსორი. ციფრები ჩამოდის (1, 69 +/- 0, 01), რომელიც უნდა შეესაბამებოდეს "-1 გ" -ს და 180 გრადუსის კუთხეს.

აქსელერომეტრის კითხვის ესკიზი
აქსელერომეტრის კითხვის ესკიზი

ნაბიჯი 4

ავიღოთ აჩქარმეტრიდან მნიშვნელობები 90 და 270 გრადუსის კუთხით და შევიტანოთ ისინი ცხრილში. ცხრილში მოცემულია აქსელერომეტრის როტაციის კუთხეები (სვეტი "A") და შესაბამისი Zout მნიშვნელობები ვოლტებში (სვეტი "B").

სიცხადისთვის ნაჩვენებია ძაბვის ნაკვეთი Zout– ის გამოსასვლელთან ბრუნვის კუთხესთან შედარებით. ლურჯი ველი არის დიაპაზონი დანარჩენი მდგომარეობაში (1 გ აჩქარებით). გრაფიკზე ვარდისფერი ყუთი არის ზღვარი, ასე რომ ჩვენ შეგვიძლია გავზომოთ აჩქარება + 3 გ-მდე და -3 გ-მდე.

90 გრადუსიანი ბრუნვის დროს Z- ღერძს აქვს ნულოვანი აჩქარება. იმ მნიშვნელობა 1.67 ვოლტი არის პირობითი ნულოვანი Z Z ღერძისთვის. შემდეგ შეგიძლიათ იპოვოთ აჩქარება ასე:

g = Zout - Zo / მგრძნობელობა_z, აქ Zout არის გაზომული მნიშვნელობა მილივოლტებში, Zo არის მნიშვნელობა ნულოვანი აჩქარებით მილივოლტებში, მგრძნობელობა_z არის სენსორის მგრძნობელობა Z ღერძის გასწვრივ. დააკალიბეთ აქსელემეტრი და გამოთვალეთ მგრძნობელობის მნიშვნელობა სპეციალურად თქვენი სენსორი ფორმულის გამოყენებით:

მგრძნობელობა_ზ = [Z (0 გრადუსი) - Z (90 გრადუსი)] * 1000. ამ შემთხვევაში, აქსელერომეტრის მგრძნობელობა Z ღერძის გასწვრივ = (2, 03 - 1, 68) * 1000 = 350 მვ. ანალოგიურად, საჭიროა მგრძნობელობის გამოთვლა X და Y ღერძებისთვის.

ცხრილის სვეტი "C" გვიჩვენებს აჩქარებას, რომელიც გამოითვლება ხუთი კუთხით 350 მგრძნობიარობით. როგორც ხედავთ, ისინი პრაქტიკულად ემთხვევა სურათზე 1.

აქსელერომეტრის ბრუნვის კუთხეების შესაბამისობა კითხვასთან
აქსელერომეტრის ბრუნვის კუთხეების შესაბამისობა კითხვასთან

ნაბიჯი 5

გეომეტრიის ძირითადი კურსის დამახსოვრებით, ჩვენ ვიღებთ აქსელერომეტრის ბრუნვის კუთხეების გამოთვლის ფორმულას:

angle_X = arctg [sqrt (Gz ^ 2 + Gy ^ 2) / Gx].

მნიშვნელობები რადიანებშია. მათი გრადუსებად გადასაყვანად, გავყოთ Pi- ზე და გავამრავლოთ 180-ზე.

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

"Serial.print ()" პორტში გასვლისას, "\ t" სიმბოლო აღნიშნავს ჩანართის სიმბოლოს, ისე რომ სვეტები იყოს ლუწი და მნიშვნელობები განლაგდეს ერთმანეთის ქვეშ. "+" ნიშნავს სტრიქონების შეერთებას (შეერთებას). უფრო მეტიც, "String ()" ოპერატორი აშკარად ეუბნება შემდგენელს, რომ რიცხვითი მნიშვნელობა უნდა გადაიქცეს სტრიქონში. მრგვალი () ოპერატორი ამრგვალებს კუთხეს უახლოეს 1 გრადუსამდე.

ესკიზი, რომელიც ითვლის ამაჩქარებლის აჩქარებას და კუთხეებს
ესკიზი, რომელიც ითვლის ამაჩქარებლის აჩქარებას და კუთხეებს

ნაბიჯი 6

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

გირჩევთ: