İçindekiler:
- Adım 1: Donanım Gerekli:
- Adım 2: Donanım Bağlantısı:
- Adım 3: Manyetik Alan Yoğunluğunu Ölçmek İçin Kod:
- Adım 4: Uygulamalar:
Video: HMC5883 ve Parçacık Fotonu Kullanarak Manyetik Alan Ölçümü: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
HMC5883, düşük alanlı manyetik algılama için tasarlanmış dijital bir pusuladır. Bu cihaz, +/-8 Oe geniş bir manyetik alan aralığına ve 160 Hz çıkış hızına sahiptir. HMC5883 sensörü, otomatik manyetiklik giderme kayış sürücüleri, ofset iptali ve 1° ila 2° pusula yönü doğruluğu sağlayan 12 bitlik bir ADC içerir. Tüm I²C Mini Modülleri 5VDC'de çalışacak şekilde tasarlanmıştır.
Bu derste, HMC5883'ün parçacık fotonu ile detaylı çalışmasını açıklayacağız. Parçacık fotonu, Nesnelerin İnterneti'nin (IoT) en temel özelliğini destekleyen, web sitesinden veri gönderip almayı kolaylaştıran bir panodur.
Adım 1: Donanım Gerekli:
Hedefimizi gerçekleştirmek için ihtiyaç duyduğumuz malzemeler aşağıdaki donanım bileşenlerini içerir:
1. HMC5883
2. Parçacık Fotonu
3. I2C Kablosu
4. Parçacık Fotonu için I2C Kalkanı
Adım 2: Donanım Bağlantısı:
Donanım bağlantısı bölümü temel olarak sensör ve parçacık fotonu arasında gerekli olan kablo bağlantılarını açıklar. İstenilen çıktı için herhangi bir sistem üzerinde çalışırken doğru bağlantıların sağlanması temel zorunluluktur. Yani, gerekli bağlantılar aşağıdaki gibidir:
HMC5883, I2C üzerinden çalışacaktır. Sensörün her bir arayüzünün nasıl bağlanacağını gösteren örnek kablo şeması buradadır.
Kutudan çıktığı gibi, kart bir I2C arayüzü için yapılandırılmıştır, bu nedenle, aksi takdirde agnostik iseniz bu bağlantıyı kullanmanızı öneririz. Tek ihtiyacınız olan dört tel!
Vcc, Gnd, SCL ve SDA pinlerinden sadece dört bağlantı gereklidir ve bunlar I2C kablosu yardımıyla bağlanır.
Bu bağlantılar yukarıdaki resimlerde gösterilmiştir.
Adım 3: Manyetik Alan Yoğunluğunu Ölçmek İçin Kod:
Şimdi parçacık koduyla başlayalım.
Arduino ile sensör modülünü kullanırken application.h ve spark_wiring_i2c.h kütüphanesini dahil ediyoruz. "application.h" ve spark_wiring_i2c.h kitaplığı, sensör ve parçacık arasındaki i2c iletişimini kolaylaştıran işlevleri içerir.
Parçacık kodunun tamamı, kullanıcının rahatlığı için aşağıda verilmiştir:
#Dahil etmek
#Dahil etmek
// HMC5883 I2C adresi 0x1E(30)
#define Addr 0x1E
int xMag = 0, yMag = 0, zMag = 0;
geçersiz kurulum()
{
// Değişken ayarla
Particle.variable("i2ccihaz", "HMC5883");
Particle.variable("xMag", xMag);
Particle.variable("yMag", yMag);
Particle.variable("zMag", zMag);
// I2C iletişimini MASTER olarak başlat
Wire.begin();
// Seri İletişimi Başlat, baud hızını ayarla = 9600
Seri.başla(9600);
// I2C İletimini Başlat
Wire.beginTransmission(Adr);
// yapılandırma kaydı A'yı seçin
Wire.write(0x00);
// Normal ölçüm konfigürasyonunu ayarla, veri çıkış hızı = 0.75Hz
Wire.write(0x60);
// I2C İletimini Durdur
Wire.endTransmission();
// I2C İletimini Başlat
Wire.beginTransmission(Adr);
// Mod kaydını seç
Wire.write(0x02);
// Sürekli ölçümü ayarla
Wire.write(0x00);
// I2C İletimini Durdur
Wire.endTransmission();
gecikme(300);
}
boşluk döngüsü()
{
imzasız int veri[6];
// I2C İletimini Başlat
Wire.beginTransmission(Adr);
// Veri kaydını seç
Wire.write(0x03);
// I2C İletimini Durdur
Wire.endTransmission();
// 6 bayt veri iste
Wire.requestFrom(Adr, 6);
// 6 bayt veri oku
// 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();
veri[3] = Wire.read();
veri[4] = Wire.read();
veri[5] = Wire.read();
}
gecikme(300);
// Verileri dönüştür
xMag = ((veri[0] * 256) + veri[1]);
if(xMag > 32767)
{
xMag -= 65536;
}
zMag = ((veri[2] * 256) + veri[3]);
if(zMag > 32767)
{
zMag -= 65536;
}
yMag = ((veri[4] * 256) + veri[5]);
if(yMag > 32767)
{
yMag -= 65536;
}
// Gösterge tablosuna veri çıkışı
Particle.publish("X Ekseninde Manyetik Alan: ", String(xMag));
gecikme(1000);
Particle.publish("Y Ekseninde Manyetik Alan: ", String(yMag));
gecikme(1000);
Particle.publish("Z Ekseninde Manyetik Alan: ", String(zMag));
gecikme(1000);
}
Particle.variable() işlevi, sensörün çıktısını depolamak için değişkenleri oluşturur ve Particle.publish() işlevi, çıktıyı sitenin panosunda görüntüler.
Sensör çıkışı, referansınız için yukarıdaki resimde gösterilmektedir.
Adım 4: Uygulamalar:
HMC5883, düşük maliyetli pusula ve manyetometri gibi uygulamalar için dijital bir arayüze sahip düşük alanlı manyetik algılama için tasarlanmış yüzeye monte, çok çipli bir modüldür. Bir ila iki derecelik yüksek düzeyde doğruluk ve hassasiyet, Yaya Navigasyonu ve LBS Uygulamalarına olanak tanır.
Önerilen:
ADXL345 ve Parçacık Fotonu Kullanarak İvme Ölçümü: 4 Adım
ADXL345 ve Parçacık Fotonu Kullanarak Hızlanma Ölçümü: ADXL345, ±16 g'a kadar yüksek çözünürlüklü (13 bit) ölçüme sahip küçük, ince, ultra düşük güçlü, 3 eksenli bir ivmeölçerdir. Dijital çıkış verileri, 16 bitlik ikili tamamlayıcı olarak biçimlendirilir ve I2 C dijital arabirimi aracılığıyla erişilebilir. Bunu ölçer
HMC5883 ve Raspberry Pi Kullanarak Manyetik Alan Ölçümü: 4 Adım
HMC5883 ve Raspberry Pi Kullanarak Manyetik Alan Ölçümü: HMC5883, düşük alanlı manyetik algılama için tasarlanmış bir dijital pusuladır. Bu cihaz, +/-8 Oe geniş bir manyetik alan aralığına ve 160 Hz çıkış hızına sahiptir. HMC5883 sensörü, otomatik manyetiklik giderme kayış sürücüleri, ofset iptali ve bir
HMC5883 ve Arduino Nano Kullanarak Manyetik Alan Ölçümü: 4 Adım
HMC5883 ve Arduino Nano Kullanarak Manyetik Alan Ölçümü: HMC5883, düşük alan manyetik algılama için tasarlanmış dijital bir pusuladır. Bu cihaz, +/-8 Oe geniş bir manyetik alan aralığına ve 160 Hz çıkış hızına sahiptir. HMC5883 sensörü, otomatik manyetiklik giderme kayış sürücüleri, ofset iptali ve bir
HYT939 ve Parçacık Fotonu Kullanarak Nem Ölçümü: 4 Adım
HYT939 ve Particle Photon Kullanılarak Nem Ölçümü: HYT939, I2C haberleşme protokolü ile çalışan dijital bir nem sensörüdür. Tıbbi sistemler ve laboratuvarlar söz konusu olduğunda nem çok önemli bir parametredir, bu nedenle bu hedeflere ulaşmak için HYT939'u ahududu pi ile arayüzlemeye çalıştık. BEN
H3LIS331DL ve Parçacık Fotonu Kullanarak Hızlanma Ölçümü: 4 Adım
H3LIS331DL ve Parçacık Fotonu Kullanarak İvme Ölçümü: H3LIS331DL, dijital I²C seri arayüzlü, “nano” ailesine ait, düşük güçlü, yüksek performanslı, 3 eksenli bir doğrusal ivmeölçerdir. H3LIS331DL, kullanıcı tarafından seçilebilen ±100g/±200g/±400g tam skalaya sahiptir ve hızlanmaları ölçebilir