İç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 için Arduino Kodu:
- Adım 4: Uygulamalar:
Video: HMC5883 ve Arduino Nano 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 Arduino nano ile detaylı çalışmasını açıklayacağız.
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. Arduino Nano
3. I2C Kablosu
4. Arduino Nano 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 arduino nano 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 için Arduino Kodu:
Şimdi Arduino koduyla başlayalım.
Arduino ile sensör modülünü kullanırken Wire.h kütüphanesini dahil ediyoruz. "Wire" kütüphanesi, sensör ve Arduino kartı arasındaki i2c iletişimini kolaylaştıran fonksiyonları içerir.
Arduino kodunun tamamı, kullanıcının rahatlığı için aşağıda verilmiştir:
#Dahil etmek
// HMC5883 I2C adresi 0x1E(30)
#define Addr 0x1E
geçersiz kurulum()
{
// 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
int xMag = ((veri[0] * 256) + veri[1]);
int zMag = ((veri[2] * 256) + veri[3]);
int yMag = ((veri[4] * 256) + veri[5]);
// Verileri seri monitöre çıkar
Serial.print("X Ekseninde Manyetik Alan: ");
Serial.println(xMag);
Serial.print("Y Ekseninde Manyetik Alan: ");
Serial.println(yMag);
Serial.print("Z Ekseninde Manyetik Alan: ");
Serial.println(zMag);
gecikme(300);
}
Tel kitaplığında Wire.write() ve Wire.read() komutları yazmak ve sensör çıkışını okumak için kullanılır. Kodun aşağıdaki kısmı, sensör çıkışının okunmasını gösterir.
// 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(); }
Serial.print() ve Serial.println(), sensörün çıktısını Arduino IDE'nin seri monitöründe görüntülemek için kullanılır.
Sensörün çıkışı 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:
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 Parçacık Fotonu Kullanarak Manyetik Alan Ölçümü: 4 Adım
HMC5883 ve Parçacık Fotonu 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
CPS120 ve Arduino Nano Kullanarak Basınç Ölçümü: 4 Adım
CPS120 ve Arduino Nano Kullanarak Basınç Ölçümü: CPS120, tam kompanzasyonlu çıkışa sahip, yüksek kaliteli ve düşük maliyetli bir kapasitif mutlak basınç sensörüdür. Çok daha az güç tüketir ve basınç ölçümü için ultra küçük bir Mikro-Elektro-Mekanik Sensörden (MEMS) oluşur. Sigma-delta tabanlı
STS21 ve Arduino Nano Kullanarak Sıcaklık Ölçümü: 4 Adım
STS21 ve Arduino Nano Kullanarak Sıcaklık Ölçümü: STS21 Dijital Sıcaklık Sensörü, üstün performans ve yerden tasarruf sağlayan bir ayak izi sunar. Dijital, I2C formatında kalibre edilmiş, doğrusallaştırılmış sinyaller sağlar. Bu sensörün üretimi, üstün özelliklere atfedilen CMOSens teknolojisine dayanmaktadır
3 Eksenli Manyetik Alan Sensörü: 10 Adım (Resimli)
3 Eksenli Manyetik Alan Sensörü: Kablosuz güç aktarım sistemleri, geleneksel kablolu şarjın yerini alma yolundadır. Minik biyomedikal implantlardan devasa elektrikli araçları kablosuz olarak şarj etmeye kadar. Kablosuz güç araştırmasının ayrılmaz bir parçası