Mündəricat:
- Addım 1: Lazım olan avadanlıq:
- Addım 2: Hardware Bağlantısı:
- Addım 3: Maqnit sahəsinin intensivliyini ölçmək üçün Arduino Kodu:
- Addım 4: Tətbiqlər:
Video: HMC5883 və Arduino Nano istifadə edərək Maqnit Sahəsinin Ölçülməsi: 4 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
HMC5883, aşağı sahə maqnit algılaması üçün hazırlanmış rəqəmsal bir kompasdır. Bu cihaz +/- 8 Oe geniş bir maqnit sahəsinə və 160 Hz çıxış sürətinə malikdir. HMC5883 sensoru, avtomatik degaussing kəmər sürücülərini, ofset ləğvini və 1 ° -dən 2 ° -ə qədər kompas başlığı dəqiqliyini təmin edən 12-bit ADC-ni ehtiva edir. Bütün I²C Mini Modulları 5VDC -də işləmək üçün nəzərdə tutulmuşdur.
Bu təlimatda, HMC5883 -ün Arduino nano ilə ətraflı işini izah edəcəyik.
Addım 1: Lazım olan avadanlıq:
Məqsədimizə çatmaq üçün ehtiyacımız olan materiallar aşağıdakı aparat komponentlərindən ibarətdir:
1. HMC5883
2. Arduino Nano
3. I2C Kabeli
4. Arduino Nano üçün I2C Shield
Addım 2: Hardware Bağlantısı:
Donanım bağlama bölməsi əsasən sensor və arduino nano arasında lazım olan naqillərin əlaqələrini izah edir. İstənilən çıxış üçün hər hansı bir sistem üzərində işləyərkən düzgün əlaqələrin təmin edilməsi əsas zərurətdir. Beləliklə, zəruri əlaqələr aşağıdakılardır:
HMC5883 I2C üzərində işləyəcək. Sensorun hər bir interfeysini necə bağlayacağınızı göstərən nümunə naqillər diaqramı.
Qutudan kənarda, lövhə I2C interfeysi üçün konfiqurasiya olunmuşdur, buna görə də başqa cür agnostiksinizsə bu əlaqəni istifadə etməyi məsləhət görürük. Lazım olan tək şey dörd teldir!
Vcc, Gnd, SCL və SDA pinləri üçün yalnız dörd əlaqə lazımdır və bunlar I2C kabelinin köməyi ilə bağlanır.
Bu əlaqələr yuxarıdakı şəkillərdə göstərilmişdir.
Addım 3: Maqnit sahəsinin intensivliyini ölçmək üçün Arduino Kodu:
İndi Arduino kodu ilə başlayaq.
Sensor modulunu Arduino ilə birlikdə istifadə edərkən Wire.h kitabxanasına daxil oluruq. "Tel" kitabxanası, sensor və Arduino lövhəsi arasındakı i2c əlaqəsini asanlaşdıran funksiyaları ehtiva edir.
İstifadəçinin rahatlığı üçün bütün Arduino kodu aşağıda verilmişdir:
#daxil edin
// HMC5883 I2C ünvanı 0x1E (30)
#təyin Edr 0x1E
boş quraşdırma ()
{
// I2C ünsiyyətini MASTER olaraq başladın
Wire.begin ();
// Serial Rabitəni Başlatın, baud dərəcəsini = 9600 olaraq təyin edin
Serial.begin (9600);
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// A qeydiyyat reyestrini seçin
Wire.write (0x00);
// Normal ölçü konfiqurasiyasını təyin edin, məlumatların çıxış sürəti = 0.75Hz
Wire.write (0x60);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Mode qeydiyyatı seçin
Wire.write (0x02);
// Davamlı ölçmə qurun
Wire.write (0x00);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
gecikmə (300);
}
boşluq döngəsi ()
{
imzasız int məlumatları [6];
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Məlumat qeydini seçin
Wire.write (0x03);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
// 6 bayt məlumat tələb edin
Wire.requestFrom (Addr, 6);
// 6 bayt məlumat oxuyun
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
əgər (Tel.available () == 6)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
data [4] = Wire.read ();
data [5] = Wire.read ();
}
gecikmə (300);
// Məlumatları çevirin
int xMag = ((data [0] * 256) + data [1]);
int zMag = ((məlumat [2] * 256) + məlumat [3]);
int yMag = ((məlumat [4] * 256) + məlumat [5]);
// Məlumatların serial monitora çıxarılması
Serial.print ("X-Axisdə Maqnit Sahəsi:");
Serial.println (xMag);
Serial.print ("Y Eksenində Maqnit Sahəsi:");
Serial.println (yMag);
Serial.print ("Z oxunda maqnit sahəsi:");
Serial.println (zMag);
gecikmə (300);
}
Tel kitabxanasında Wire.write () və Wire.read () əmrləri yazmaq və sensor çıxışını oxumaq üçün istifadə olunur. Kodun aşağıdakı hissəsi sensor çıxışının oxunmasını göstərir.
// 6 bayt məlumat oxuyun // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb if (Wire.available () == 6) {data [0] = Wire.read (); data [1] = Wire.read (); data [2] = Wire.read (); data [3] = Wire.read (); data [4] = Wire.read (); data [5] = Wire.read (); }
Sensorun çıxışını Arduino IDE -nin serial monitorunda göstərmək üçün Serial.print () və Serial.println () istifadə olunur.
Sensorun çıxışı yuxarıdakı şəkildə göstərilmişdir.
Addım 4: Tətbiqlər:
HMC5883, aşağı qiymətli kompas və maqnitometriya kimi tətbiqlər üçün rəqəmsal interfeysi olan aşağı sahə maqnit algılaması üçün nəzərdə tutulmuş səthə monte edilmiş, çox çipli bir moduldur. Bir -iki dərəcə yüksək səviyyəli dəqiqlik və dəqiqlik Piyada Naviqasiyası və LBS Tətbiqlərini təmin edir.
Tövsiyə:
HMC5883 və Raspberry Pi istifadə edərək maqnit sahəsinin ölçülməsi: 4 addım
HMC5883 və Raspberry Pi istifadə edərək maqnit sahəsinin ölçülməsi: HMC5883, aşağı sahə maqnit algılaması üçün hazırlanmış rəqəmsal bir kompasdır. Bu cihaz +/- 8 Oe geniş bir maqnit sahəsinə və 160 Hz çıxış sürətinə malikdir. HMC5883 sensoru avtomatik degaussing kəmər sürücüləri, ofset ləğvi və
HMC5883 və hissəcik fotonundan istifadə edərək maqnit sahəsinin ölçülməsi: 4 addım
HMC5883 və Particle Photon istifadə edərək Maqnit Sahəsinin Ölçülməsi: HMC5883, aşağı sahə maqnit algılaması üçün hazırlanmış rəqəmsal bir kompasdır. Bu cihaz +/- 8 Oe geniş bir maqnit sahəsinə və 160 Hz çıxış sürətinə malikdir. HMC5883 sensoru avtomatik degaussing kəmər sürücüləri, ofset ləğvi və
CPS120 və Arduino Nano istifadə edərək təzyiq ölçülməsi: 4 addım
CPS120 və Arduino Nano istifadə edərək təzyiq ölçülməsi: CPS120, tam kompensasiya edilmiş çıxışı olan yüksək keyfiyyətli və aşağı qiymətli kapasitiv mütləq təzyiq sensoru. Çox az enerji sərf edir və təzyiqin ölçülməsi üçün ultra kiçik Mikroelektromekanik Sensordan (MEMS) ibarətdir. Sigma-delta əsaslı
STS21 və Arduino Nano istifadə edərək temperatur ölçülməsi: 4 addım
STS21 və Arduino Nano istifadə edərək İstilik Ölçmə: STS21 Rəqəmsal Temperatur Sensoru üstün performans və yer qənaət edən ayaq izi təqdim edir. Rəqəmsal, I2C formatında kalibrlənmiş, xətti siqnallar verir. Bu sensorun istehsalı CMOSens texnologiyasına əsaslanaraq üstün xüsusiyyətlərə malikdir
H3LIS331DL və Arduino Nano istifadə edərək sürətlənmənin ölçülməsi: 4 addım
H3LIS331DL və Arduino Nano-dan istifadə edərək sürətlənmənin ölçülməsi: H3LIS331DL, rəqəmsal I²C seriyalı interfeysi olan "nano" ailəsinə aid olan aşağı güclü yüksək performanslı 3 oxlu xətti sürətləndiricidir. H3LIS331DL, istifadəçilər tərəfindən ± 100g/± 200g/± 400g seçilə bilən tam tərəzilərə malikdir və sürətləri ölçmək qabiliyyətinə malikdir