Სარჩევი:

მაგნიტური ველის გაზომვა HMC5883 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი
მაგნიტური ველის გაზომვა HMC5883 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი

ვიდეო: მაგნიტური ველის გაზომვა HMC5883 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი

ვიდეო: მაგნიტური ველის გაზომვა HMC5883 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი
ვიდეო: დათო ქურიძის საჯარო ლექცია: „მაგნიტური ველის გაზომვა მზის კორონალურ მარყუჟებში“ 2024, ნოემბერი
Anonim
Image
Image

HMC5883 არის ციფრული კომპასი, რომელიც შექმნილია დაბალი ველის მაგნიტური აღქმისთვის. ამ მოწყობილობას აქვს მაგნიტური ველის ფართო დიაპაზონი +/- 8 Oe და გამომავალი სიჩქარე 160 ჰც. HMC5883 სენსორი მოიცავს სამაგრების ავტომატური გათიშვის დრაივერებს, ოფსეტური გაუქმებით და 12 ბიტიანი ADC, რომელიც კომპასის სათაურის სიზუსტეს 1 ° -დან 2 ° -მდე იძლევა. ყველა I²C მინი მოდული შექმნილია 5VDC- ზე მუშაობისთვის.

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

ნაბიჯი 1: საჭირო აპარატურა:

საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა

მასალები, რომლებიც ჩვენ გვჭირდება ჩვენი მიზნის მისაღწევად, მოიცავს შემდეგ ტექნიკურ კომპონენტებს:

1. HMC5883

2. ნაწილაკების ფოტონი

3. I2C კაბელი

4. ნაწილაკების ფოტონის I2C ფარი

ნაბიჯი 2: აპარატურის დაკავშირება:

აპარატურის დაკავშირება
აპარატურის დაკავშირება
აპარატურის დაკავშირება
აპარატურის დაკავშირება

აპარატურის დაკავშირების განყოფილება ძირითადად განმარტავს გაყვანილობის კავშირებს სენსორსა და ნაწილაკ ფოტონს შორის. სწორი კავშირების უზრუნველყოფა არის ძირითადი აუცილებლობა ნებისმიერ სისტემაზე მუშაობისას სასურველი გამომუშავებისთვის. ამრიგად, საჭირო კავშირები შემდეგია:

HMC5883 იმუშავებს I2C– ზე. აქ არის გაყვანილობის დიაგრამა, რომელიც აჩვენებს, თუ როგორ უნდა დააკავშიროთ სენსორის თითოეული ინტერფეისი.

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

მხოლოდ ოთხი კავშირია საჭირო Vcc, Gnd, SCL და SDA ქინძისთავები და ეს დაკავშირებულია I2C კაბელის დახმარებით.

ეს კავშირები ნაჩვენებია ზემოთ მოცემულ სურათებში.

ნაბიჯი 3: კოდი მაგნიტური ველის ინტენსივობის გასაზომად:

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

დავიწყოთ ნაწილაკების კოდით ახლა.

Arduino– სთან ერთად სენსორული მოდულის გამოყენებისას ჩვენ ვიყენებთ application.h და spark_wiring_i2c.h ბიბლიოთეკას. "application.h" და spark_wiring_i2c.h ბიბლიოთეკა შეიცავს ფუნქციებს, რომლებიც ხელს უწყობს სენსორსა და ნაწილაკს შორის i2c კომუნიკაციას.

მომხმარებლის ნაწილის მოხერხებულობისთვის ქვემოთ მოცემულია ნაწილაკების მთელი კოდი:

#ჩართეთ

#ჩართეთ

// HMC5883 I2C მისამართი არის 0x1E (30)

#განსაზღვრეთ Addr 0x1E

int xMag = 0, yMag = 0, zMag = 0;

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

{

// ცვლადის დაყენება

ნაწილაკი. ცვლადი ("i2cdevice", "HMC5883");

ნაწილაკი. ცვლადი ("xMag", xMag);

ნაწილაკი. ცვლადი ("yMag", yMag);

ნაწილაკი. ცვლადი ("zMag", zMag);

// I2C კომუნიკაციის ინიციალიზაცია, როგორც MASTER

Wire.begin ();

// სერიული კომუნიკაციის ინიციალიზაცია, დაყენებული baud განაკვეთი = 9600

სერიული.დაწყება (9600);

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// აირჩიეთ კონფიგურაციის რეგისტრი A

Wire.write (0x00);

// ნორმალური გაზომვის კონფიგურაციის დაყენება, მონაცემთა გამომავალი სიჩქარე = 0.75 ჰც

Wire.write (0x60);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// აირჩიეთ რეგისტრაციის რეჟიმი

Wire.write (0x02);

// უწყვეტი გაზომვის დაყენება

Wire.write (0x00);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

დაგვიანება (300);

}

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

{

ხელმოუწერელი int მონაცემები [6];

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// მონაცემთა რეგისტრაციის არჩევა

Wire.write (0x03);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

// მოითხოვეთ მონაცემების 6 ბაიტი

მავთული. მოთხოვნა (Addr, 6);

// წაიკითხეთ მონაცემების 6 ბაიტი

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

თუ (Wire. Available () == 6)

{

მონაცემები [0] = Wire.read ();

მონაცემები [1] = Wire.read ();

მონაცემები [2] = Wire.read ();

მონაცემები [3] = Wire.read ();

მონაცემები [4] = Wire.read ();

მონაცემები [5] = Wire.read ();

}

დაგვიანება (300);

// მონაცემების კონვერტაცია

xMag = ((მონაცემები [0] * 256) + მონაცემები [1]);

თუ (xMag> 32767)

{

xMag -= 65536;

}

zMag = ((მონაცემები [2] * 256) + მონაცემები [3]);

if (zMag> 32767)

{

zMag -= 65536;

}

yMag = ((მონაცემები [4] * 256) + მონაცემები [5]);

if (yMag> 32767)

{

yMag -= 65536;

}

// მონაცემების გამოტანა საინფორმაციო დაფაზე

Particle.publish ("მაგნიტური ველი X- ღერძში:", სიმებიანი (xMag));

დაგვიანება (1000);

Particle.publish ("მაგნიტური ველი Y- ღერძში:", სიმებიანი (yMag));

დაგვიანება (1000);

Particle.publish ("მაგნიტური ველი Z- ღერძში:", სიმებიანი (zMag));

დაგვიანება (1000);

}

Particle.variable () ფუნქცია ქმნის ცვლადებს სენსორის გამომუშავების შესანახად და Particle.publish () ფუნქცია აჩვენებს გამომავალს საიტის დაფაზე.

სენსორის გამომავალი ნაჩვენებია ზემოთ მოცემულ სურათზე თქვენი მითითებისთვის.

ნაბიჯი 4: პროგრამები:

პროგრამები
პროგრამები

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

გირჩევთ: