在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何利用HMC5883L實現三軸磁力計的設計

科技觀察員 ? 來源:Ejshea ? 作者:Ejshea ? 2022-06-10 16:24 ? 次閱讀

在中,你可以使用 HMC5883L 三軸力計測量這個地球磁場的大小和方向。

介紹

在這個中,我們的 HMC5883L 3 項目設備可以測量地球將磁力計連接到 Arduino 方向。 Uno。它是一種以低軸設備中的設備,可以在手機或導航中,找到提供準確的您航還可以使用它們來檢測含鐵(含鐵)金屬,因為金屬中的鐵在靠近傳感器的時候會改變磁場。

別迷路,讓我們開始吧!

204像素LCD

與16x2 LCD相比,20x4 LCD每行增加了兩行。與我們在之前的項目中使用的16x2類似,204LCD使用日立x,因此命令和接口也是一樣的。具有相同的 16 針接頭,允許您在不更改任何接線的情況下拔下 16x2 LCD 并插入 20x4。我們列唯一需要的是一行代碼 lcd.begin(20, 4),它指定 LCD 的(第一個個)和行(第二個參數)。20x4 LCD 的圖像如下所示:

pYYBAGKi_1OAQ0stAAUCmjAfNoM049.png

HMC5883L 三軸磁力計

HMC5883L 3軸磁力計可以精確測量地球在x、y、z的大小和方向。是一款外形類似的低調設備,可以讓您將其插入到幾乎任何需要指南的項目中。下面提供了一些不同的規格

pYYBAGKi_0-AJzC1AAEims2U_eQ391.png

設備 HMC 的 5 分 DR 板和 5 分 DR 的數據線組成: VIN、DY、SCL 組成的數據線(如圖所示)該模塊在 2.7V 至 6.5V 的電壓工作,但我們無法讓磁力計在 5V 電壓下工作,因此我們建議使用 3Vdc 范圍內的連接模塊。電壓。

為了使用與部署設備通信的方式,我們使用 CL 和 S 的 I2C 來配置設備上的交付模式和輸出模式),并獲取 X Y 和 Z 。該0x1 0x1 設備進行7 次編排,因此在IE2C 處設備上進行多個。

DR(但您的數據)用于傳輸(Uno X、Y和Z向主設備的數據已發送)17月7日。DR DY DY,可以通過使用頻率到達目的地。您可以訪問可以在這個目的地連接到這個目的地,但不能在這個目的地中使用有效的地權。

poYBAGKi_0uAWoweAAK1V46bPiU493.png

該設備在其這些 3 個軸的每個軸上裝有一個電阻器,用于測量下磁場變化。在磁場存在的情況下,元件的電阻會發生變化,從而導致輸出電壓發生變化。器件的 12 位 ADC 在每個軸上測量,然后將測量結果寫入相應的 X、Y 和 Z 8 位數據。

下面這張表要顯示屏幕顯示我們的屏幕顯示價值。在屏幕上的屏幕顯示我們的屏幕。 IC的數據表:

pYYBAGKi_0aAHIgFAAKV65015Nk554.png

當您必須圍繞 X、Y 和 Z 軸旋轉設備時,各個軸的結構發生變化,使之如圖所示。

poYBAGKi_0OAWTr_AAILOOTqA2s595.png

將磁力計安裝到您的圖標。您將需要一個 M2 角支架、M2 螺栓和 M2 允許以六角支架來安裝它。這個 XY 平面與提供垂直方向,并保持Adapticon您可以使用正確的計算盤航向您的燃料罐,因此可以向您使用準確的計算盤。確保有色金屬磁安裝的硬件圍繞著 Z 軸顯示。

我們將把 12 英寸跨接線連接到上面,我們就可以在左右方向連接設備這樣自由。

poYBAGKi_z-AWsJfAAUcxwiEZRk869.png

無焊面包板

您如果使用的是無焊面包板,請使用下面的示意圖為 16×2 LCD 進行必要的連接。磁力計通過 12 英寸 F/M 跳線直接連接到 Uno。我們使用 Uno 的3V電源,是Fuel的3V而不是3能夠實現。因為公頭針的0.1英寸間距太近,將測試夾線電纜安裝

注:16×4液晶顯示,但需要2×4液晶顯示與中圖。

pYYBAGKi_zuACyBYAAI0CamHGdU109.png

如果您連接

到 Fuel Can 的懸空制作,請繼續操作。您需要的天線和兩個接地板為您提供測試使用接線夾,+5個接地線的接地線。用于為 LCD 供電。

計算機,USB的A端插入USB1型,使用,將B端未連接型插入USB1型連接的端頭。 6‘A A型連接器 - 外部連接器插入(即主機)。 AC-DC 電源為 FuelCan 供電。

函數首先必須從setOperatingMode

()和設備通信中使用setOperatingMode()和設備通信,因此請在我們的設備上使用setOperatingMode()進行配置,以將數據操作模式設置為連續,將每個測量輸出的平均樣本數設置為 8 個。其他所有內容都將保留默認值。

現在已經配置好了,我們可以開始使用函數getXYZ()獲取原始X、Y和Z數據。這個函數獲取X、Y和Z的每一個16位數據。getXYZ()中的Wire.requestFrom()函數用于請求 6 個字節的數據。

X、 和 Z 的值,為了使用 Y 函數convert(用于測量我們轉換為高的單位)。必須進行轉換,必須使用 IC 數據表格的原始值表 9(用于使用 1090 的大小,我們可以用一個簡單的縮放比例,將我們的每一個鏡頭都以高標準的比例分配給我們。

在我們將數據輸出到設備之前,可以用它來計算出設備的最后一個方向。 () 完成。了解切是在 (X, Y) 點和 x 軸之間計算的,如下圖所示。我們的原因是能夠計算出所有象限的使用情況。

poYBAGKi_zaAJWZ3AACObu9iAE0815.png

atan2弧度角度,因此我們可以將其轉換為度數。 360我們可以刪除360。并且航向數據已經歸化,我們可以通過現在已經展示給它計算。

//將 HMC5883L 3 軸數字羅盤連接到 Arduino Uno

/*Copyright (c) 2019, ProteShea LLC

保留所有權利。 如果滿足以下條件,則允許

以源代碼和二進制形式重新分發和使用,無論是否修改: 1. 重新分發源代碼必須保留上述版權 聲明、此條件列表和以下免責聲明。 2. 二進制形式的再分發必須在 隨分發提供的文檔和/或其他材料中復制上述版權 聲明、此條件列表和以下免責聲明。 3. 既不是版權持有人的姓名,也不是

未經事先書面許可,其貢獻者的姓名可用于認可或推廣

源自本軟件的產品。

本軟件由版權持有人“按原樣”提供,

不提供任何明示或默示的保證,包括但不限于對

適銷性和特定用途適用性的默示保證

。在任何情況下,版權所有者均不對任何

直接、間接、偶然、特殊、懲戒性或后果性損害

(包括但不限于采購替代商品或服務;

使用、數據或利潤或業務損失)負責中斷)無論是由何種原因造成的,

以及基于任何責任理論,無論是合同、嚴格責任或侵權

(包括疏忽或其他原因)以任何方式因使用本

軟件而引起的,即使已被告知存在此類損害的可能性。

*/

#include
//寄存器地址映射
#define configA 0x00
#define configB 0x01
#define mode 0x02
#define dataOutX_U 0x03
#define dataOutX_L 0x04
#define dataOutZ_L 0x05
#define dataOutZ_L 0x06
#define dataOutY_L 0x07
#define dataOutY_L 0x08
#define statusReg 0x09
//工作模式發送到模式寄存器(0x02)
#define Continuous 0x00
#define single 0x01
#define idle 0x02
#define i2c_addr 0x1E
#define gain 1090
int16_t x = 0;
int16_t y = 0;
int16_t z = 0;
浮動航向;
浮動高斯X;
浮動高斯Y;
浮動高斯Z;
void setup() {
Wire.begin();
序列號.開始(9600);
設置操作模式(連續);
集合樣本();
}
無效循環() {
getXYZ();
轉換(x,y,z);
獲取航向(高斯X,高斯Y,高斯Z);
Serial.print("X:");
Serial.print(gaussX);
Serial.print("Y:");
串行打?。ǜ咚筜);
Serial.print("Z:");
Serial.println(gaussZ);
Serial.print("標題:");
Serial.println(標題);
延遲(500);
}
//將原始X、Y、Z計數轉換為高斯
void convert(int16_t rawX, int16_t rawY, int16_t rawZ){
gaussX = (float)rawX/gain;
gaussY = (float)rawY/gain;
gaussZ = (float)rawZ/增益;
}
//考慮磁偏角(取決于位置的磁場誤差)
void getHeading(float X, float Y, float Z){
heading = (atan2(Y,X) - 0.1) * 180 / PI;
如果 (標題 < 0) 標題 += 360;
如果(標題> 360)標題-= 360;
}
void setSamples(void){
Wire.beginTransmission(i2c_addr);
Wire.write(configA);//寫入配置A寄存器
Wire.write(0x70);//8個樣本平均,15Hz輸出速率,正常測量
Wire.endTransmission();
延遲(10);
}
void setOperatingMode(uint8_t addr){
Wire.beginTransmission(i2c_addr);
Wire.write(模式);//寫入模式寄存器
Wire.write(addr);//設置測量模式
Wire.endTransmission();
延遲(10);
}
//從寄存器 0x??03 到 0x08 獲取 X、Y、Z 的原始計數
void getXYZ(void){
Wire.beginTransmission(i2c_addr);
Wire.write(0x03);
Wire.endTransmission();
Wire.requestFrom(i2c_addr, 6);
if (Wire.available() >= 6){
int16_t temp = Wire.read();//讀取X的高字節
x = temp << 8;
temp = Wire.read();//讀取X的低字節
x = x |溫度;
temp = Wire.read();//讀取 Z 的高字節
z = temp << 8;
temp = Wire.read();//讀取 Z 的低字節
z = z |溫度;
temp = Wire.read();//讀取 Y 的高字節
y = temp << 8;
temp = Wire.read();//讀取 Y 的低字節
y = y |溫度;
}
}

下一個示例通過調用函數writeLCD()在20×4 LCD上顯示數據。

poYBAGKi_yuAP1c6AATm1DmoIzA039.png

//將 HMC5883L 3 軸數字羅盤連接到 Arduino Uno 并

在 20x4 LCD 上顯示 //數據

/*版權 (c) 2019,ProteShea LLC

保留所有權利。 如果滿足以下條件,則允許

以源代碼和二進制形式重新分發和使用,無論是否修改: 1. 重新分發源代碼必須保留上述版權 聲明、此條件列表和以下免責聲明。 2. 二進制形式的再分發必須在 隨分發提供的文檔和/或其他材料中復制上述版權 聲明、此條件列表和以下免責聲明。 3. 既不是版權持有人的姓名,也不是

未經事先書面許可,其貢獻者的姓名可用于認可或推廣

源自本軟件的產品。

本軟件由版權持有人“按原樣”提供,

不提供任何明示或默示的保證,包括但不限于對

適銷性和特定用途適用性的默示保證

。在任何情況下,版權所有者均不對任何

直接、間接、偶然、特殊、懲戒性或后果性損害

(包括但不限于采購替代商品或服務;

使用、數據或利潤或業務損失)負責中斷)無論是由何種原因造成的,

以及基于任何責任理論,無論是合同、嚴格責任或侵權

(包括疏忽或其他原因)以任何方式因使用本

軟件而引起的,即使已被告知存在此類損害的可能性。

*/

#include
#include
//寄存器地址映射
#define configA 0x00
#define configB 0x01
#define mode 0x02
#define dataOutX_U 0x03
#define dataOutX_L 0x04
#define dataOutZ_L 0x05
#define dataOutZ_L 0x06
#define dataOutY_L 0x07
#define dataOutY_L 0x08
#define statusReg 0x09
//操作模式發送到模式寄存器(0x02)
#define Continuous 0x00
#define single 0x01
#define idle 0x02
#define i2c_addr 0x1E
#define gain 1090
const int RS = 2, EN = 3, D4 = 4, D5 = 5, D6 = 6, D7 = 7;
LiquidCrystal lcd(RS,EN,D4,D5,D6,D7);//設置連接到 LCD 的 Uno 引腳,4 位模式
int16_t x = 0;
int16_t y = 0;
int16_t z = 0;
浮動航向;
浮動高斯X;
浮動高斯Y;
浮動高斯Z;
void setup() {
Wire.begin();
lcd.開始(20,4);//設置20列4行20x4 LCD
setOperatingMode(continuous);
集合樣本();
}
無效循環() {
getXYZ();
轉換(x,y,z);
獲取航向(高斯X,高斯Y,高斯Z);
寫液晶顯示器();
延遲(500);
}
無效寫入液晶顯示器(無效){
lcd.clear();
lcd.print("X:");
lcd.print(高斯X);
lcd.setCursor(0,1);
lcd.print("Y:");
lcd.print(高斯);
lcd.setCursor(0,2);
lcd.print("Z:");
lcd.print(高斯Z);
lcd.setCursor(0,3);
lcd.print("標題:");
lcd.print(標題);
}
//將原始X、Y、Z計數轉換為高斯
void convert(int16_t rawX, int16_t rawY, int16_t rawZ){
gaussX = (float)rawX/gain;
gaussY = (float)rawY/gain;
gaussZ = (float)rawZ/增益;
}
//考慮磁偏角(取決于位置的磁場誤差)
void getHeading(float X, float Y, float Z){
航向 = (atan2(Y,X) - 0.1) * 180 / PI;
如果 (標題 < 0) 標題 += 360;
如果(標題> 360)標題-= 360;
}
void setSamples(void){
Wire.beginTransmission(i2c_addr);
Wire.write(configA);//寫入配置A寄存器
Wire.write(0x70);//8 個樣本平均,15Hz 輸出速率,正常測量
Wire.endTransmission();
延遲(10);
}
void setOperatingMode(uint8_t addr){
Wire.beginTransmission(i2c_addr);
Wire.write(模式);//寫入模式寄存器
Wire.write(addr);//設置測量模式
Wire.endTransmission();
延遲(10);
}
//從寄存器 0x??03 到 0x08 獲取 X、Y、Z 的原始計數
void getXYZ(void){
Wire.beginTransmission(i2c_addr);
Wire.write(0x03);
Wire.endTransmission();
Wire.requestFrom(i2c_addr, 6);
if (Wire.available() >= 6){
int16_t temp = Wire.read();//讀取X的高字節
x = temp << 8;
temp = Wire.read();//讀取X的低字節
x = x |溫度;
temp = Wire.read();//讀取 Z 的高字節
z = temp << 8;
temp = Wire.read();//讀取 Z 的低字節
z = z |溫度;
temp = Wire.read();//讀取 Y 的高字節
y = temp << 8;
temp = Wire.read();//讀取 Y 的低字節
y = y |溫度;
}
}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 三軸磁力計
    +關注

    關注

    0

    文章

    7

    瀏覽量

    8419
  • HMC5883L
    +關注

    關注

    0

    文章

    25

    瀏覽量

    15085
收藏 人收藏

    評論

    相關推薦

    求助啊 為什么我的HMC5883L讀出的原始數據中Y一直都是-4096

    =-4096z=-476x=-137y=-4096z=-476這是hmc5883l代碼# include "hmc5883l.h"http://磁力計初始化void HMC5883L
    發表于 02-22 23:04

    HMC5883L

    HMC5883L 是一種表面貼裝的高集成模塊,并帶有數字接口的弱磁傳感器芯片,應用于低成本羅盤和磁場檢測領域。HMC5883L 包括最先進的高分辨率HMC118X系列磁阻傳感器,并附帶集成電路包括
    發表于 04-16 09:04

    請問MPU6050+HMC5883L的數據融合磁力計如何加入算出YAW的準確角度?

    最近一直在研究四,讀完6050后,加入磁力計對YAW角度進行校準,磁力計選用HMC5883L,讀取完數據后,按照網上說法,用互補濾波的方法進行數據融合。融合完后發現我實際旋轉的角度與
    發表于 06-06 04:36

    如何處理磁力計HMC5883L獲取的數據?

    HMC5883L來矯正陀螺儀使用四元數法來求偏航角,想問問如何處理磁力計HMC5883L獲取的數據?
    發表于 07-25 19:44

    請問MPU6050,HMC5883L,ADXL345之間我該選擇哪個?

    我想測量一個物體的自身旋轉角度(應該是相當于自身的偏航角yaw),最近一段時間一直在看相關的資料和一些程序。MPU6050是 3軸角度+3加速度,HMC5883L磁力計,ADXL345是加速度
    發表于 07-31 04:36

    如何使用這款QMC5883L磁力計

    QMC5883L磁力計介紹QMC5883L是一款國產磁力計,與HMC5993 pin to pin 兼容,軟件上只要少許改動,便可達到相同效
    發表于 02-11 07:26

    GY-273 HMC5883L電子指南針羅盤

    【Realplay】GY-273 HMC5883L電子指南針羅盤模塊 磁場傳感器
    發表于 11-10 10:44 ?82次下載

    HMC5883L中文數據手冊

    霍尼韋爾公司出品,地磁傳感器HMC5883的升級版HMC5883L,用于地磁車輛檢測,智能交通系統,停車誘導系統等等。
    發表于 02-29 16:58 ?117次下載

    HMC5883L中文

    HMC5883L中文
    發表于 12-13 17:15 ?13次下載

    數字羅盤集成電路hmc5883l

    的應用包括手機、筆記本電腦、消費電子、汽車導航系統、個人導航設備。 利用霍尼韋爾的HMC5883L的各向異性磁阻(A
    發表于 12-07 15:15 ?8次下載

    hmc5883l電子羅盤傳感器連接arduino

    本文開始對HMC5883L進行了介紹,其中包括了HMC5883L的主要技術參數、工作原理、應用領域及尺寸說明,然后闡述了hmc5883l
    的頭像 發表于 03-08 08:46 ?1.9w次閱讀

    hmc5883l的特點及優點_HMC5883L磁力計校準方法

     霍尼韋爾 HMC5883L 是一種表面貼裝的高集成模塊,并帶有數字接口的弱磁傳感器芯片,應用于低成本羅盤和磁場檢測領域。HMC5883L 包括最先進的高分辨率HMC118X系列磁阻傳感器,并附帶霍
    發表于 03-08 10:32 ?1.6w次閱讀

    HMC5883L應用說明

     霍尼韋爾 HMC5883L 是一種表面貼裝的高集成模塊,并帶有數字接口的弱磁傳感器芯片,應用于低成本羅盤和磁場檢測領域。HMC5883L 包括最先進的高分辨率HMC118X系列磁阻傳感器,并附帶霍
    發表于 03-08 10:49 ?2.8w次閱讀

    QMC5883L磁力計介紹(硬件+軟件)(附STM32程序~~~)

    QMC5883L磁力計介紹(硬件+軟件)(附STM32程序~~~)
    發表于 12-08 10:51 ?84次下載
    QMC<b class='flag-5'>5883L</b><b class='flag-5'>磁力計</b>介紹(硬件+軟件)(附STM32程序~~~)

    磁力計HMC5883L傳感器特性

    霍尼韋爾 HMC5883L 是一種表面貼裝的高集成模塊,并帶有數字接口的弱磁傳感器芯片,應用于低成本羅盤和磁場檢測領域(指南針、GPS)。 HMC5883L 包括最先進的高分辨率 HMC
    的頭像 發表于 07-20 10:40 ?1503次閱讀
    主站蜘蛛池模板: 黄色毛片免费网站 | 一区二区三区视频免费观看 | 日本www色视频成人免费网站 | 亚色网站 | 午夜精品久久久久久影视riav | 美女又黄又免费的视频 | 午夜影视啪啪免费体验区入口 | 激情综合丝袜美女一区二区 | 国产精品久久自在自2021 | 91aaa免费观看在线观看资源 | xxxxxx性| 国产大乳美女挤奶视频 | 全免费一级毛片在线播放 | 毛片高清一区二区三区 | 亚洲精品美女在线观看 | 四虎永久在线精品国产免费 | 一级做a爱免费观看视频 | 亚洲成片在线观看12345ba | 日本成人资源 | 在线黄视频 | 午夜免费啪 | 精品一精品国产一级毛片 | 黄色网在线播放 | 天天视频观看 | 久久精品高清 | 人与牲动交bbbbxxxx | 1024手机在线看片 | 成人免费黄色 | 国产福利资源在线 | 美女操网站 | 成人久久网 | 亚洲春色www | 激情五月综合网 | 国产三级在线视频观看 | 窝窝午夜看片 | 成人夜夜| 日本亚洲欧美国产日韩ay高清 | 日本在线不卡免 | 午夜啪啪网站 | 四虎最新网址入口 | 成人性欧美丨区二区三区 |