Სარჩევი:
- ნაბიჯი 1: საჭირო აპარატურა:
- ნაბიჯი 2: აპარატურის დაკავშირება:
- ნაბიჯი 3: დაჩქარების გაზომვის კოდი:
- ნაბიჯი 4: პროგრამები:
ვიდეო: აჩქარების გაზომვა ADXL345 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:15
ADXL345 არის პატარა, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები ფორმატირებულია, როგორც 16 ბიტიანი ორეული და არის ხელმისაწვდომი I2 C ციფრული ინტერფეისის საშუალებით. იგი ზომავს სიმძიმის სტატიკურ აჩქარებას დახრის მგრძნობიარე პროგრამებში, ასევე მოძრაობის ან დარტყმის შედეგად წარმოქმნილ დინამიურ აჩქარებას. მისი მაღალი გარჩევადობა (3.9 მგ/LSB) საშუალებას გაძლევთ გაზომოთ დახრილობის ცვლილებები 1.0 ° -ზე ნაკლები.
ამ სახელმძღვანელოში ასახულია ADXL345 სენსორული მოდულის ინტერფეისი ნაწილაკების ფოტონთან. აჩქარების მნიშვნელობების წასაკითხად, ჩვენ გამოვიყენეთ ნაწილაკი I2c ადაპტერით. ეს I2C ადაპტერი სენსორულ მოდულთან კავშირს ხდის მარტივსა და საიმედოს.
ნაბიჯი 1: საჭირო აპარატურა:
მასალები, რომლებიც ჩვენ გვჭირდება ჩვენი მიზნის მისაღწევად, მოიცავს შემდეგ ტექნიკურ კომპონენტებს:
1. ADXL345
2. ნაწილაკების ფოტონი
3. I2C კაბელი
4. I2C ფარი ნაწილაკების ფოტონისთვის
ნაბიჯი 2: აპარატურის დაკავშირება:
აპარატურის დაკავშირების განყოფილება ძირითადად განმარტავს გაყვანილობის კავშირებს სენსორსა და ნაწილაკ ფოტონს შორის. სწორი კავშირების უზრუნველყოფა არის ძირითადი აუცილებლობა ნებისმიერ სისტემაზე მუშაობისას სასურველი გამომუშავებისთვის. ამრიგად, საჭირო კავშირები შემდეგია:
ADXL345 იმუშავებს I2C– ზე. აქ არის გაყვანილობის დიაგრამა, რომელიც აჩვენებს, თუ როგორ უნდა დააკავშიროთ სენსორის თითოეული ინტერფეისი.
ყუთის გარეშე, დაფა კონფიგურირებულია I2C ინტერფეისისთვის, ამიტომ ჩვენ გირჩევთ გამოიყენოთ ეს კავშირი, თუ სხვაგვარად ხართ აგნოსტიკოსი.
ყველაფერი რაც თქვენ გჭირდებათ არის ოთხი მავთული! მხოლოდ ოთხი კავშირია საჭირო Vcc, Gnd, SCL და SDA ქინძისთავები და ეს დაკავშირებულია I2C კაბელის დახმარებით.
ეს კავშირები ნაჩვენებია ზემოთ მოცემულ სურათებში.
ნაბიჯი 3: დაჩქარების გაზომვის კოდი:
დავიწყოთ ნაწილაკების კოდით ახლა.
ნაწილაკთან ერთად სენსორული მოდულის გამოყენებისას ჩვენ ვიყენებთ application.h და spark_wiring_i2c.h ბიბლიოთეკას. "application.h" და spark_wiring_i2c.h ბიბლიოთეკა შეიცავს ფუნქციებს, რომლებიც ხელს უწყობს სენსორსა და ნაწილაკს შორის i2c კომუნიკაციას.
მომხმარებლის ნაწილის მოხერხებულობისთვის ქვემოთ მოცემულია ნაწილაკების მთელი კოდი:
#ჩართეთ
#ჩართეთ
// ADXL345 I2C მისამართი არის 0x53 (83)
#განსაზღვრეთ Addr 0x53
int xAccl = 0, yAccl = 0, zAccl = 0;
ბათილად დაყენება ()
{
// ცვლადის დაყენება
ნაწილაკი. ცვლადი ("i2cdevice", "ADXL345");
ნაწილაკი. ცვლადი ("xAccl", xAccl);
ნაწილაკი. ცვლადი ("yAccl", yAccl);
ნაწილაკი. ცვლადი ("zAccl", zAccl);
// 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);
// აირჩიეთ სრული გარჩევადობა, +/- 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 ();
}
დაგვიანება (300);
}
// გადააკეთეთ მონაცემები 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;
}
// მონაცემების გამოტანა საინფორმაციო დაფაზე
Particle.publish ("დაჩქარება X- ღერძში არის:", სიმებიანი (xAccl));
Particle.publish ("აჩქარება Y- ღერძში არის:", სიმებიანი (yAccl));
Particle.publish ("აჩქარება Z- ღერძში არის:", სიმებიანი (zAccl));
}
Particle.variable () ფუნქცია ქმნის ცვლადებს სენსორის გამომუშავების შესანახად და Particle.publish () ფუნქცია აჩვენებს გამომავალს საიტის დაფაზე.
სენსორის გამომავალი ნაჩვენებია ზემოთ მოცემულ სურათზე თქვენი მითითებისთვის.
ნაბიჯი 4: პროგრამები:
ADXL345 არის პატარა, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი, რომელიც შეიძლება გამოყენებულ იქნას ტელეფონებში, სამედიცინო აპარატურაში და ა.შ.
გირჩევთ:
მაგნიტური ველის გაზომვა HMC5883 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი
მაგნიტური ველის გაზომვა HMC5883 და ნაწილაკების ფოტონის გამოყენებით: HMC5883 არის ციფრული კომპასი, რომელიც შექმნილია დაბალი ველის მაგნიტური ზონდირებისათვის. ამ მოწყობილობას აქვს მაგნიტური ველის ფართო დიაპაზონი +/- 8 Oe და გამომავალი სიჩქარე 160 ჰც. HMC5883 სენსორი მოიცავს სამაგრების ავტომატური მოხსნას დრაივერებზე, ოფსეტური გაუქმებით და
ტენიანობის გაზომვა HYT939 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი
ტენიანობის გაზომვა HYT939 და ნაწილაკების ფოტონის გამოყენებით: HYT939 არის ციფრული ტენიანობის სენსორი, რომელიც მუშაობს I2C საკომუნიკაციო პროტოკოლზე. ტენიანობა არის გადამწყვეტი პარამეტრი, როდესაც საქმე ეხება სამედიცინო სისტემებსა და ლაბორატორიებს, ამიტომ ამ მიზნების მისაღწევად ჩვენ შევეცადეთ HYT939 დავამყაროთ ჟოლოს პითან. ᲛᲔ
აჩქარების გაზომვა H3LIS331DL და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი
H3LIS331DL და ნაწილაკების ფოტონის გამოყენებით დაჩქარების გაზომვა: H3LIS331DL არის დაბალი სიმძლავრის მაღალი სიმძლავრის 3 ღერძიანი ხაზოვანი ამაჩქარებელი, რომელიც მიეკუთვნება "ნანოს" ოჯახს, ციფრული I²C სერიული ინტერფეისით. H3LIS331DL– ს აქვს მომხმარებლის მიერ შერჩეული სრული სასწორი ± 100 გ/± 200 გ/g 400 გ და მას შეუძლია გაზომოს აჩქარებები
ტემპერატურის გაზომვა MCP9803 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი
ტემპერატურის გაზომვა MCP9803 და ნაწილაკების ფოტონის გამოყენებით: MCP9803 არის 2 მავთულის მაღალი სიზუსტის ტემპერატურის სენსორი. ისინი განასახიერებენ მომხმარებლის მიერ პროგრამირებადი რეგისტრებით, რომლებიც ხელს უწყობენ ტემპერატურის მგრძნობიარე პროგრამებს. ეს სენსორი შეეფერება უაღრესად დახვეწილ მრავალზონიანი ტემპერატურის მონიტორინგის სისტემას. ამ
დაჩქარების გაზომვა BMA250 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი
დაჩქარების გაზომვა BMA250 და ნაწილაკების ფოტონის გამოყენებით: BMA250 არის მცირე, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები არის ფორმატირებული, როგორც 16 ბიტიანი ორეული და ხელმისაწვდომია I2C ციფრული ინტერფეისის საშუალებით. ზომავს სტატიკურ