Სარჩევი:
- ნაბიჯი 1: საჭირო აპარატურა:
- ნაბიჯი 2: აპარატურის დაკავშირება:
- ნაბიჯი 3: დაჩქარების გაზომვის კოდი:
- ნაბიჯი 4: პროგრამები:
ვიდეო: დაჩქარების გაზომვა ADXL345 და Arduino Nano გამოყენებით: 4 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
ADXL345 არის პატარა, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები ფორმატირებულია, როგორც 16 ბიტიანი ორეული და არის ხელმისაწვდომი I2 C ციფრული ინტერფეისის საშუალებით. იგი ზომავს სიმძიმის სტატიკურ აჩქარებას დახრის მგრძნობიარე პროგრამებში, ასევე მოძრაობის ან დარტყმის შედეგად წარმოქმნილ დინამიურ აჩქარებას. მისი მაღალი გარჩევადობა (3.9 მგ/LSB) საშუალებას გაძლევთ გაზომოთ დახრილობის ცვლილებები 1.0 ° -ზე ნაკლები.
ამ სახელმძღვანელოში ასახულია ADXL345 სენსორული მოდულის ინტერფეისი არდუინო ნანოსთან. აჩქარების მნიშვნელობების წასაკითხად, ჩვენ გამოვიყენეთ arduino I2c ადაპტერით. ეს I2C ადაპტერი სენსორულ მოდულთან კავშირს ხდის ადვილი და საიმედო.
ნაბიჯი 1: საჭირო აპარატურა:
მასალები, რომლებიც ჩვენ გვჭირდება ჩვენი მიზნის მისაღწევად, მოიცავს შემდეგ ტექნიკურ კომპონენტებს:
1. ADXL345
2. არდუინო ნანო
3. I2C კაბელი
4. I2C ფარი არდუინო ნანოსთვის
ნაბიჯი 2: აპარატურის დაკავშირება:
აპარატურის დაკავშირების განყოფილება ძირითადად განმარტავს გაყვანილობის კავშირებს სენსორსა და არდუინო ნანოს შორის. სწორი კავშირების უზრუნველყოფა არის ძირითადი აუცილებლობა ნებისმიერ სისტემაზე მუშაობისას სასურველი გამომუშავებისთვის. ამრიგად, საჭირო კავშირები შემდეგია:
ADXL345 იმუშავებს I2C– ზე. აქ არის გაყვანილობის დიაგრამა, რომელიც აჩვენებს, თუ როგორ უნდა დააკავშიროთ სენსორის თითოეული ინტერფეისი.
ყუთის გარეშე, დაფა კონფიგურირებულია I2C ინტერფეისისთვის, ამიტომ ჩვენ გირჩევთ გამოიყენოთ ეს კავშირი, თუ სხვაგვარად ხართ აგნოსტიკოსი.
ყველაფერი რაც თქვენ გჭირდებათ არის ოთხი მავთული! მხოლოდ ოთხი კავშირია საჭირო Vcc, Gnd, SCL და SDA ქინძისთავები და ეს დაკავშირებულია I2C კაბელის დახმარებით.
ეს კავშირები ნაჩვენებია ზემოთ მოცემულ სურათებში.
ნაბიჯი 3: დაჩქარების გაზომვის კოდი:
დავიწყოთ არდუინოს კოდით ახლავე.
სენსორული მოდულის arduino– ს გამოყენებისას ჩვენ ვრთავთ Wire.h ბიბლიოთეკას. "მავთულის" ბიბლიოთეკა შეიცავს ფუნქციებს, რომლებიც ხელს უწყობს სენსორსა და არდუინოს დაფას შორის i2c კომუნიკაციას.
მთელი arduino კოდი მოცემულია მომხმარებლის მოხერხებულობისთვის ქვემოთ:
#ჩართეთ
// ADXL345 I2C მისამართი არის 0x53 (83)
#განსაზღვრეთ Addr 0x53
ბათილად დაყენება ()
{
// I2C კომუნიკაციის ინიციალიზაცია, როგორც MASTER
Wire.begin ();
// სერიული კომუნიკაციის ინიციალიზაცია, დაყენებული baud rate = 9600
სერიული.დაწყება (9600);
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// გამტარუნარიანობის მაჩვენებლის რეგისტრაცია
Wire.write (0x2C);
// ნორმალური რეჟიმი, მონაცემების გამოყვანის სიჩქარე = 100 ჰც
Wire.write (0x0A);
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// დენის კონტროლის რეგისტრის არჩევა
Wire.write (0x2D);
// ავტომატური ძილის გამორთვა
Wire.write (0x08);
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// მონაცემთა ფორმატის რეგისტრაციის არჩევა
Wire.write (0x31);
// თვითტესტილი გამორთულია, 4 მავთულის ინტერფეისი, სრული გარჩევადობა, დიაპაზონი = +/- 2 გ
Wire.write (0x08);
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
დაგვიანება (300);
}
ბათილი მარყუჟი ()
{
ხელმოუწერელი int მონაცემები [6];
for (int i = 0; i <6; i ++)
{
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// მონაცემთა რეგისტრაციის არჩევა
Wire.write ((50 + i));
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
// მოითხოვეთ მონაცემების 1 ბაიტი
მავთული. მოთხოვნა (Addr, 1);
// წაიკითხეთ მონაცემების 6 ბაიტი
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
თუ (Wire.available () == 1)
{
მონაცემები = Wire.read ();
}
}
// გადააკეთეთ მონაცემები 10 ბიტად
int xAccl = (((მონაცემები [1] & 0x03) * 256) + მონაცემები [0]);
თუ (xAccl> 511)
{
xAccl -= 1024;
}
int yAccl = (((მონაცემები [3] & 0x03) * 256) + მონაცემები [2]);
თუ (yAccl> 511)
{
yAccl -= 1024;
}
int zAccl = (((მონაცემები [5] & 0x03) * 256) + მონაცემები [4]);
if (zAccl> 511)
{
zAccl -= 1024;
}
// სერიული მონიტორის მონაცემების გამოტანა
Serial.print ("დაჩქარება X- ღერძში არის:");
Serial.println (xAccl);
Serial.print ("აჩქარება Y- ღერძში არის:");
Serial.println (yAccl);
Serial.print ("აჩქარება Z- ღერძში არის:");
Serial.println (zAccl);
დაგვიანება (300);
}
მავთულის ბიბლიოთეკაში Wire.write () და Wire.read () გამოიყენება ბრძანებების დასაწერად და სენსორის გამომავალი წაკითხვისთვის.
Serial.print () და Serial.println () გამოიყენება Arduino IDE– ის სერიულ მონიტორზე სენსორის გამომუშავების საჩვენებლად.
სენსორის გამოსავალი ნაჩვენებია ზემოთ მოცემულ სურათზე.
ნაბიჯი 4: პროგრამები:
ADXL345 არის პატარა, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი, რომელიც შეიძლება გამოყენებულ იქნას ტელეფონებში, სამედიცინო აპარატურაში და ა.შ.
გირჩევთ:
აჩქარების გაზომვა ADXL345 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი
ADXL345 და ნაწილაკების ფოტონის გამოყენებით აჩქარების გაზომვა: ADXL345 არის პატარა, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები ფორმატირებულია, როგორც 16 ბიტიანი ორეული და არის ხელმისაწვდომი I2 C ციფრული ინტერფეისის საშუალებით. ზომავს
დაჩქარების გაზომვა ADXL345 და ჟოლოს Pi გამოყენებით: 4 ნაბიჯი
ADXL345 და Raspberry Pi გამოყენებით დაჩქარების გაზომვა: ADXL345 არის პატარა, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები ფორმატირებულია, როგორც 16 ბიტიანი ორეული და არის ხელმისაწვდომი I2 C ციფრული ინტერფეისის საშუალებით. ზომავს
დაჩქარების გაზომვა BMA250 და არდუინო ნანოს გამოყენებით: 4 ნაბიჯი
დაჩქარების გაზომვა BMA250 და Arduino Nano– ს გამოყენებით: BMA250 არის პატარა, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები არის ფორმატირებული, როგორც 16 ბიტიანი ორეული და ხელმისაწვდომია I2C ციფრული ინტერფეისის საშუალებით. ზომავს სტატიკურ
დაჩქარების გაზომვა BMA250 და ჟოლოს Pi გამოყენებით: 4 ნაბიჯი
დაჩქარების გაზომვა BMA250 და Raspberry Pi გამოყენებით: BMA250 არის პატარა, თხელი, ულტრაწონიანი, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13-ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები არის ფორმატირებული, როგორც 16 ბიტიანი ორეული და ხელმისაწვდომია I2C ციფრული ინტერფეისის საშუალებით. ზომავს სტატიკურ
დაჩქარების გაზომვა BMA250 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი
დაჩქარების გაზომვა BMA250 და ნაწილაკების ფოტონის გამოყენებით: BMA250 არის მცირე, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები არის ფორმატირებული, როგორც 16 ბიტიანი ორეული და ხელმისაწვდომია I2C ციფრული ინტერფეისის საშუალებით. ზომავს სტატიკურ