霍尼韋爾的地磁傳感器的使用方法
利用地磁作為參考, 通過傳感器測量出與地磁線之間的夾角就可以得到方位角的數據,從而實現精確的方向控制。這裏就來討論壹下地磁傳感器(又稱為數字羅盤或電子羅盤) 及其使用方法。
常用的地磁傳感器主要有FreeScale(飛思卡爾)的MAG 系列和 Honeywell(霍尼韋爾)的HMC 系列,下面就以市場上常見的Honeywell 的 HMC5883 的地磁傳感器來進行討論。
HMC5883 是壹種表面貼裝的高集成度、帶有IIC 數字接口的弱磁傳感器芯 片。它內含有最先進的高分辨率HMC118X 系列磁阻傳感器,並附帶霍尼韋爾 專利的集成電路(包括有放大器、自動消磁驅動器和偏差校準等),具有12 位 模數轉換器能使羅盤精度控制在1°~2°之間。霍尼韋爾的磁傳感器在低磁場 傳感器行業中是靈敏度最高和可靠性最好的傳感器。其測量範圍能從毫高斯到 8 高斯(gauss)。
HMC5883 的工作電壓在2.16V~3.6V 之間,典型為3.3V。雖然工作電壓為 低電壓方式,但數據端口的電壓可通過VDDIO 口來指定,因此它與單片機的 接口有兩種方式,壹種是單片機為5V 方式,壹種是單片機為3.3V 方式,。
對於HMC5883 的電氣參數及特性請參看其管方的數據手冊,這裏只討論如何應用HMC5883 來獲取地磁數據。由於對模塊的控制壹般都是通過寫相應的寄存器來實現的,所以先來了解壹下HMC5883 的寄存器情況。在HMC5883 的內部壹***有12 組寄存器,其中用於存放X、Y 、Z三軸數據的寄存器有6 個,余下的6 個是控制類寄存器。
和所有的IIC 總線器件壹樣,HMC5883 也有壹個器件的固定地址,根據其數據手冊,出廠時默認HMC5883 的從機地址為 0x3C(寫入方向),或0x3D(讀出方向)。 同時,為了盡量減少與單片機之間的通信,HMC5883 可在無主機幹預下自動更新其地址指針。指針更新有兩條原則,壹是若訪問的地址是12(即識別寄存器C)或以上的地址時,指針會更新至地址00(即自動返回到開頭),二是若訪問的地址達到8(即Y 的LSB 寄存器)時,指針會回滾到地址03(即X 的MSB 寄存器)。這要做的好處顯而易見,因為地址03~0 8 存放的是要反復讀取的數據測量值,所以讀取時地址指針自動在此循環,就可減小大量的重新設定地址的代碼,提高訪問效率。 同其它IIC 器件壹樣,要讓地址指針移動到壹個指定的寄存器地址,首先要對該寄存器地址發出寫的指令,之後再跟壹個地址位。例如要讓地址指針指向寄存器10,發出的指令為0 x3C(寫入方向)0 x0A(即地址10 )。 配置寄存器A(地址 00)主要是用來設置輸出采樣平均數、輸出速率和測量配置位等相關參數,對於常規應用可取其默認值(采樣平均數8,輸出速率15Hz,正常測量配置),不用去改動它。若實在要改,可詳細參閱管方的數據手冊。 配置寄存器B(地址01 )主要是用來設置增益的,對於常規應用也可取其默認值,不用去改動它。若實在要改,可詳細參閱管方的數據手冊。 模式寄存器(地址0 2)是用來選擇HMC5883 的工作模式的,它壹***有三種工作模式,即連續測量模式(最後兩位為00)、單次測量模式(最後兩位為01)和空閑模式(最後兩位為1 0 或11)。默認是單次測量模式,壹般需要把它改為連續測量模式。更改時只需要把該寄存器的最後兩位改為 00 即可。 狀態寄存器(地址0 9)主要是用來提供器件當前的狀態。它只有最後兩位有效,最後壹位是準備就緒位,只有在準備就緒置位後才能對器件進行操作。倒數第二位是數據輸出寄存器鎖存位,當該位被置位時,任何的測量數據都不會被更新,直到測量數據被讀取。壹般常規應用可通過適當的延時來進行讀取, 而不必讀取該寄存器的狀態,除非在讀取的頻率很高時才考慮讀取此寄存器的狀態。 識別寄存器A(地址 10)到識別寄存器C(地址12)這裏用不到,就不討論了,需要的請自行閱讀數據手冊。 其時HMC5883 還有其它壹些實用的功能,比如能夠進行自我檢測,它自身配備了自測功能模塊,利用激勵傳感器偏移帶產生壹個待測的標稱磁場強度來進行自我檢測,以證明其好壞。此外還有比例因數的校準功能,它可以補償周圍磁場產生的幹擾,以得到精確的地磁測量值。 下面就以壹個例子來看壹下HMC5883 的具體應用。
例子:利用單片機讀取來自HMC5883 的地磁數據,並把它轉換為與正南方的夾角數據,通過LCD16 02 顯示出來。 單片機用ATMega16,與HMC5883 的接法采用5V 的方式。HMC5883 的SDA、SCL端分別接到ATMega16 的 TWI 端(PC1、PC0),LCD1602 的接法與前面的壹致。