Სარჩევი:
- ნაბიჯი 1: კომპონენტები
- ნაბიჯი 2: პრინციპი
- ნაბიჯი 3: პროცედურები
- ნაბიჯი 4: კოდი
- ნაბიჯი 5: კოდის ანალიზი
ვიდეო: ADXL345 Arduino Uno R3– ის გამოყენებით: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
ამ გაკვეთილზე ჩვენ ვისწავლით თუ როგორ გამოვიყენოთ აჩქარების სენსორი ADXL345.
ნაბიჯი 1: კომპონენტები
- Arduino Uno დაფა * 1
- USB კაბელი * 1
- ADXL345 *1
- პურის დაფა * 1
- ჯუმბერის მავთულები
ნაბიჯი 2: პრინციპი
ამაჩქარებელი გამოიყენება აჩქარების დროს წარმოქმნილი ძალის გასაზომად. ყველაზე ფუნდამენტური არის საყოველთაოდ ცნობილი გრავიტაციის აჩქარება, რომელიც არის 1 გ.
გრავიტაციით გამოწვეული აჩქარების გაზომვით შეგიძლიათ გამოთვალოთ მოწყობილობის დახრის კუთხე დონის ზედაპირზე. დინამიური აჩქარების გაანალიზებით, თქვენ შეგიძლიათ გითხრათ, როგორ მოძრაობს მოწყობილობა. მაგალითად, თვითბალანსირების დაფა ან ჰოვერბორდი იყენებს აჩქარების სენსორს და გიროსკოპს კალმანის ფილტრისა და პოზის კორექციისათვის.
ADXL345
ADXL345 არის პატარა, თხელი, დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები ფორმატირებულია როგორც 16 ბიტიანი ორის დამატება და მისაწვდომია SPI (3 ან 4 მავთულის) ან I2C ციფრული ინტერფეისის საშუალებით. ამ ექსპერიმენტში გამოიყენება I2C ციფრული ინტერფეისი.
ეს კარგად შეეფერება სიმძიმის სტატიკური აჩქარების გაზომვას დახრის მგრძნობიარე პროგრამებში, ასევე მოძრაობის ან შოკის შედეგად წარმოქმნილ დინამიურ აჩქარებას. მისი მაღალი გარჩევადობა (4 მგ/LSB) იძლევა დახრის ცვლილების გაზომვას 1.0 ° -ზე ნაკლები. და შესანიშნავი მგრძნობელობა (3.9 მგ/LSB @2 გ) უზრუნველყოფს მაღალი სიზუსტის გამომუშავებას ± 16 გ-მდე.
როგორ მუშაობს ADXL345
ADXL345 აფიქსირებს აჩქარებას წინა მხარეს მგრძნობიარე კომპონენტით, შემდეგ კი ელექტრო სიგნალის შემმოწმებელი კომპონენტი ცვლის მას ელექტრო სიგნალად, რომელიც არის ანალოგი. შემდეგი, მოდულზე ინტეგრირებული AD ადაპტერი გარდაქმნის ანალოგურ სიგნალს ციფრულში.
X_OUT, Y_OUT და Z_OUT არის მნიშვნელობები შესაბამისად X, Y და Z ღერძზე. მოათავსეთ მოდული ზევით: Z_OUT შეუძლია მიაღწიოს +1 გ -ს, მინიმალური X_OUT არის -1 გ აქსის მიმართულებით, ხოლო მინიმალური Y_OUT არის -1 გ Ay მიმართულებით. მეორეს მხრივ, გადააქციეთ მოდული თავდაყირა: მინიმალური Z_OUT არის -1 გ, მაქსიმალური X_OUT არის +1 გ აქსის მიმართულებით, ხოლო მაქსიმალური Y_OUT არის +1 გ Ay მიმართულებით., როგორც ქვემოთაა ნაჩვენები. გადაატრიალეთ ADXL345 მოდული და დაინახავთ სამი მნიშვნელობის ცვლილებას.
როდესაც არხი A იცვლება მაღალი დონიდან დაბალ დონეზე, თუ არხი B მაღალი დონეა, ეს მიუთითებს მბრუნავი კოდირების ტრიალებს საათის ისრის მიმართულებით (CW); თუ იმ მომენტში არხი B დაბალი დონეა, ეს ნიშნავს რომ ის ტრიალებს საათის ისრის საწინააღმდეგოდ (CCW). ასე რომ, თუ ჩვენ ვკითხულობთ B არხის მნიშვნელობას, როდესაც A არხი დაბალი დონეა, ჩვენ შეგვიძლია ვიცოდეთ, რა მიმართულებით ბრუნავს მბრუნავი კოდირება.
პრინციპი: იხილეთ Rotary Encoder მოდულის სქემატური დიაგრამა ქვემოთ. მისგან ჩვენ ვხედავთ, რომ მბრუნავი კოდირების პინ 3, კერძოდ CLK მოდულზე, არის არხი B. Pin 5, რომელიც არის DT, არის არხი A. იმისათვის, რომ იცოდეთ ჩამწერის ბრუნვის მიმართულება, უბრალოდ წაიკითხეთ CLK და DT
მიკროსქემში არის 3.3 ვ ძაბვის მარეგულირებელი ჩიპი, ასე რომ თქვენ შეგიძლიათ ჩართოთ მოდული 5V ან 3.3V.
მას შემდეგ, რაც SDO დაკავშირებულია GND– თან, ADXL345– ის I2C მისამართი არის 0x53, 0xA6 წერისთვის, 0xA7 წასაკითხად
ADXL345 მოდულის Pin ფუნქცია.
ნაბიჯი 3: პროცედურები
ნაბიჯი 1. ააშენეთ წრე.
ნაბიჯი 2:
ჩამოტვირთეთ კოდი https://github.com/primerobotics/Arduino– დან
ნაბიჯი 3:
ატვირთეთ ესკიზი Arduino Uno დაფაზე
დააწკაპუნეთ ატვირთვის ხატულაზე, რომ ატვირთოთ კოდი საკონტროლო დაფაზე.
თუ "შესრულებულია ატვირთვა" გამოჩნდება ფანჯრის ბოლოში, ეს ნიშნავს, რომ ესკიზი წარმატებით აიტვირთა.
ატვირთვის შემდეგ გახსენით სერიული მონიტორი, სადაც ნახავთ მონაცემებს. როდესაც მოდულის აჩქარება იცვლება, ფიგურა შესაბამისად შეიცვლება ფანჯარაში.
ნაბიჯი 4: კოდი
// ADXL335
/********************************
ADXL335
შენიშვნა: vcc5v, მაგრამ ADXL335 Vs არის 3.3V
წრე:
5V: VCC
ანალოგი 0: x ღერძი
ანალოგი 1: y ღერძი
ანალოგი 2: z ღერძი
დაწვის შემდეგ
პროგრამა, გახსენით სერიული მონიტორის გამართვის ფანჯარა, სადაც შეგიძლიათ ნახოთ გამოვლენილი მონაცემების ჩვენება. როდესაც აჩქარება იცვლება, ფიგურაც შესაბამისად იცვლება.
*********************************
/ელფოსტა:
// ვებგვერდი: www.primerobotics.in
const int xpin =
A0; // აქსელერომეტრის x ღერძი
const int ypin =
A1; // y ღერძი
const int zpin =
A2; // z ღერძი (მხოლოდ 3 ღერძიან მოდელებზე)
ბათილად დაყენება ()
{
// სერიული კომუნიკაციების ინიციალიზაცია:
სერიული.დაწყება (9600);
}
ბათილი მარყუჟი ()
{
int x = analogRead (xpin); // წაიკითხეთ xpin– დან
დაგვიანება (1); //
int y = analogRead (ypin); // წაიკითხეთ ypin– დან
დაგვიანება (1);
int z = analogRead (zpin); // წაიკითხეთ zpin– დან
float zero_G = 338.0; // ელექტრომომარაგება ADXL335
Vs 3.3V: 3.3V/5V*1024 = 676/2 = 338
// სერიული. ბეჭდვა (x);
//Serial.print("\t ");
// სერიული. ბეჭდვა (ი);
//Serial.print("\t ");
//Serial.print(z);
//Serial.print("\n ");
ათწილადი
zero_Gx = 331.5; // x ღერძის zero_G გამომავალი: (x_max + x_min)/2
ათწილადი
zero_Gy = 329.5; // y ღერძის zero_G გამომავალი: (y_max + y_min)/2
float zero_Gz = 340.0; // the
z ღერძის zero_G გამომავალი: (z_max + z_min)/2
მცურავი მასშტაბი =
67.6; // დენის წყარო Vs 3.3V: 3.3v/5v *1024/3.3v *330mv/g = 67.6g
float scale_x =
65; // x ღერძის მასშტაბი: x_max/3.3v*330mv/g
float scale_y =
68.5; // y ღერძის მასშტაბი: y_max/3.3v*330mv/g
float scale_z =
68; // z ღერძის მასშტაბი: z_max/3.3v*330mv/g
სერიული. ბეჭდვა (((float) x
- zero_Gx)/scale_x); // დაბეჭდე x მნიშვნელობა სერიულ მონიტორზე
Serial.print ("\ t");
სერიული. ბეჭდვა (((float) y
- zero_Gy)/scale_y); // ბეჭდვა y მნიშვნელობა სერიულ მონიტორზე
Serial.print ("\ t");
Serial.print (((float) z
- zero_Gz)/scale_z); // დაბეჭდე z მნიშვნელობა სერიულ მონიტორზე
Serial.print ("\ n");
დაგვიანება (1000); // დაელოდეთ 1 წამს
}
ნაბიჯი 5: კოდის ანალიზი
ADXL345 ექსპერიმენტის კოდი მოიცავს 3 ნაწილს: თითოეული პორტის და მოწყობილობის ინიციალიზაცია, სენსორებიდან გამოგზავნილი მონაცემების მოპოვება და შენახვა და მონაცემების გარდაქმნა.
გირჩევთ:
წვრილმანი -- როგორ შევქმნათ ობობა რობოტი, რომლის კონტროლიც შესაძლებელია სმარტფონის გამოყენებით Arduino Uno– ს გამოყენებით: 6 ნაბიჯი
წვრილმანი || როგორ შევქმნათ ობობა რობოტი, რომლის კონტროლიც შესაძლებელია სმარტფონის გამოყენებით Arduino Uno– ს საშუალებით: ობობის რობოტის შექმნისას, თქვენ შეგიძლიათ გაიგოთ ბევრი რამ რობოტიკის შესახებ. რობოტების დამზადების მსგავსად არის გასართობი და რთული. ამ ვიდეოში ჩვენ ვაჩვენებთ თუ როგორ უნდა გავაკეთოთ ობობა რობოტი, რომლის გამოყენებაც ჩვენ შეგვიძლია ჩვენი სმარტფონის გამოყენებით (ანდროი
აჩქარების გაზომვა ADXL345 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი
ADXL345 და ნაწილაკების ფოტონის გამოყენებით აჩქარების გაზომვა: ADXL345 არის პატარა, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები ფორმატირებულია, როგორც 16 ბიტიანი ორეული და არის ხელმისაწვდომი I2 C ციფრული ინტერფეისის საშუალებით. ზომავს
დაჩქარების გაზომვა ADXL345 და Arduino Nano გამოყენებით: 4 ნაბიჯი
ADXL345 და Arduino Nano გამოყენებით დაჩქარების გაზომვა: ADXL345 არის პატარა, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები ფორმატირებულია, როგორც 16 ბიტიანი ორეული და არის ხელმისაწვდომი I2 C ციფრული ინტერფეისის საშუალებით. ზომავს
3-ღერძიანი აქსელერომეტრი, ADXL345 ჟოლოს პიტონის გამოყენებით პითონის გამოყენებით: 6 ნაბიჯი
3-ღერძიანი ამაჩქარებელი, ADXL345 ჟოლოს პიტონის გამოყენებით: ფიქრი გაჯეტზე, რომელსაც შეუძლია შეამოწმოს ის წერტილი, რომლისკენაც თქვენი Offroader გადახრილია. არ იქნება ეს სასიამოვნო იმ შემთხვევაში, როდესაც ვიღაც მორგებულია, როდესაც არსებობს გადატრიალების შესაძლებლობა? ცხადია დიახ. მართალი იქნებოდა
როგორ გავაკეთოთ დრონი Arduino UNO– ს გამოყენებით გააკეთეთ ოთხკუთხედი მიკროკონტროლის გამოყენებით: 8 ნაბიჯი (სურათებით)
როგორ გავაკეთოთ დრონი Arduino UNO– ს გამოყენებით გააკეთეთ ოთხკუთხედი მიკროკონტროლერის გამოყენებით: შესავალი ეწვიეთ ჩემს Youtube არხს A თვითმფრინავი არის ძალიან ძვირი გაჯეტი (პროდუქტი) შესაძენად. ამ პოსტში მე ვაპირებ განხილვას, როგორ გავაკეთო ეს იაფად ?? და როგორ შეგიძლია გააკეთო ასეთი იაფად … ინდოეთში ყველა მასალა (ძრავა, ესკ