Arduino Uno + HMC5883L电子罗盘 实验
实现 HMC5883L 电子罗盘 简单的数据读取实验
实验效果
本实验,简单显示从HMC5883L 读取到的数据
BOM表
Arduino Uno * 1
HMC5883L(gy-273) * 1
跳线若干
接线图
Arduino Uno <----> HMC5883L
5v <----> VCC
GND <----> GND
A5(SCL) <----> SCL
A4(SDA) <----> SDA
开源程序
下载库文件 https://github.com/jarzebski/Arduino-HMC5883L
把文件夹保存在libraries 文件夹里
打开Arduino IDE --> 文件 --> 示例 --> Arduino-HMC5883L-master --> HMC5883L_simple
就会见到如下代码:
/*HMC5883L Triple Axis Digital Compass. Simple Example.Read more: http://www.jarzebski.pl/arduino/czujniki-i-sensory/3-osiowy-magnetometr-hmc5883l.htmlGIT: https://github.com/jarzebski/Arduino-HMC5883LWeb: http://www.jarzebski.pl(c) 2014 by Korneliusz Jarzebski
*/#include <Wire.h>
#include <HMC5883L.h>HMC5883L compass;void setup()
{Serial.begin(9600);// Initialize HMC5883LSerial.println("Initialize HMC5883L");while (!compass.begin()){Serial.println("Could not find a valid HMC5883L sensor, check wiring!");delay(500);}// Set measurement range// +/- 0.88 Ga: HMC5883L_RANGE_0_88GA// +/- 1.30 Ga: HMC5883L_RANGE_1_3GA (default)// +/- 1.90 Ga: HMC5883L_RANGE_1_9GA// +/- 2.50 Ga: HMC5883L_RANGE_2_5GA// +/- 4.00 Ga: HMC5883L_RANGE_4GA// +/- 4.70 Ga: HMC5883L_RANGE_4_7GA// +/- 5.60 Ga: HMC5883L_RANGE_5_6GA// +/- 8.10 Ga: HMC5883L_RANGE_8_1GAcompass.setRange(HMC5883L_RANGE_1_3GA);// Set measurement mode// Idle mode: HMC5883L_IDLE// Single-Measurement: HMC5883L_SINGLE// Continuous-Measurement: HMC5883L_CONTINOUS (default)compass.setMeasurementMode(HMC5883L_CONTINOUS);// Set data rate// 0.75Hz: HMC5883L_DATARATE_0_75HZ// 1.50Hz: HMC5883L_DATARATE_1_5HZ// 3.00Hz: HMC5883L_DATARATE_3HZ// 7.50Hz: HMC5883L_DATARATE_7_50HZ// 15.00Hz: HMC5883L_DATARATE_15HZ (default)// 30.00Hz: HMC5883L_DATARATE_30HZ// 75.00Hz: HMC5883L_DATARATE_75HZcompass.setDataRate(HMC5883L_DATARATE_15HZ);// Set number of samples averaged// 1 sample: HMC5883L_SAMPLES_1 (default)// 2 samples: HMC5883L_SAMPLES_2// 4 samples: HMC5883L_SAMPLES_4// 8 samples: HMC5883L_SAMPLES_8compass.setSamples(HMC5883L_SAMPLES_1);// Check settingscheckSettings();
}void checkSettings()
{Serial.print("Selected range: ");switch (compass.getRange()){case HMC5883L_RANGE_0_88GA: Serial.println("0.88 Ga"); break;case HMC5883L_RANGE_1_3GA: Serial.println("1.3 Ga"); break;case HMC5883L_RANGE_1_9GA: Serial.println("1.9 Ga"); break;case HMC5883L_RANGE_2_5GA: Serial.println("2.5 Ga"); break;case HMC5883L_RANGE_4GA: Serial.println("4 Ga"); break;case HMC5883L_RANGE_4_7GA: Serial.println("4.7 Ga"); break;case HMC5883L_RANGE_5_6GA: Serial.println("5.6 Ga"); break;case HMC5883L_RANGE_8_1GA: Serial.println("8.1 Ga"); break;default: Serial.println("Bad range!");}Serial.print("Selected Measurement Mode: ");switch (compass.getMeasurementMode()){ case HMC5883L_IDLE: Serial.println("Idle mode"); break;case HMC5883L_SINGLE: Serial.println("Single-Measurement"); break;case HMC5883L_CONTINOUS: Serial.println("Continuous-Measurement"); break;default: Serial.println("Bad mode!");}Serial.print("Selected Data Rate: ");switch (compass.getDataRate()){ case HMC5883L_DATARATE_0_75_HZ: Serial.println("0.75 Hz"); break;case HMC5883L_DATARATE_1_5HZ: Serial.println("1.5 Hz"); break;case HMC5883L_DATARATE_3HZ: Serial.println("3 Hz"); break;case HMC5883L_DATARATE_7_5HZ: Serial.println("7.5 Hz"); break;case HMC5883L_DATARATE_15HZ: Serial.println("15 Hz"); break;case HMC5883L_DATARATE_30HZ: Serial.println("30 Hz"); break;case HMC5883L_DATARATE_75HZ: Serial.println("75 Hz"); break;default: Serial.println("Bad data rate!");}Serial.print("Selected number of samples: ");switch (compass.getSamples()){ case HMC5883L_SAMPLES_1: Serial.println("1"); break;case HMC5883L_SAMPLES_2: Serial.println("2"); break;case HMC5883L_SAMPLES_4: Serial.println("4"); break;case HMC5883L_SAMPLES_8: Serial.println("8"); break;default: Serial.println("Bad number of samples!");}}void loop()
{Vector raw = compass.readRaw();Vector norm = compass.readNormalize();Serial.print(" Xraw = ");Serial.print(raw.XAxis);Serial.print(" Yraw = ");Serial.print(raw.YAxis);Serial.print(" Zraw = ");Serial.print(raw.ZAxis);Serial.print(" Xnorm = ");Serial.print(norm.XAxis);Serial.print(" Ynorm = ");Serial.print(norm.YAxis);Serial.print(" ZNorm = ");Serial.print(norm.ZAxis);Serial.println(); delay(100);
}
Arduino Uno + HMC5883L电子罗盘 实验相关推荐
- Arduino Uno 火焰传感器实验
火焰传感器 火焰燃烧的时候会产生一种紫外线,火焰传感器对这非常灵敏,所以能检测出火焰. 实验效果 当打火机点燃的时候,传感器输出的数值变小,越是靠近,数值越小. BOM表 Arduino Uno ...
- ESP32cam蓝牙模块与arduino uno通信实验
网上关于esp32cam与arduino通信的资料几乎没有,有的还得付费,于是自己动手琢磨,实验成功. 实验有多个版本,成功实现蓝牙收到数据后发送单个字符给arduino板,匹配到对应字符亮对应颜色的 ...
- Arduino Uno + 光耦继电器 弱电控制强电 实验
这个弱电控制强电,隔离等作用等等 关于常闭,常开,不同模块位置不同,请用万用表蜂鸣档测试,确认正确的常开端和常闭端. 实验效果 用光耦继电器控制LED的亮和灭 BOM表 Arduino Uno ...
- Arduino Uno 送你一首葫芦娃 无源蜂鸣器实验
本次实验使用的是无源蜂鸣器,播放一首葫芦娃 无源指的是不包含振荡源, 相对于有源蜂鸣器,就是包含振荡源. 无源需要2k-5k的方波来驱动发声,所以音色多变. 有源则通电就能蜂鸣,发音频率固定,音色单一 ...
- Arduino uno + mpu6050 陀螺仪 运用卡尔曼滤波姿态解算实验
MPU6050六轴陀螺仪 作用于四轴无人机,平衡车,机器人等等的电子实作当中,用于姿态判断,掌握了可以发挥自己的想象完成更多更有趣的作品. 本例程输出XYZ的角度,正负90度. 运用卡尔曼滤波算法解算 ...
- arduino UNO 与 超声波测距模块 实验详情
US-015 超声波测距模块 超声波传感器 US-020升级版 送全套资料 资料下载地址:http://pan.baidu.com/s/1c0AfkIG US-015超声波测距模块 1. 概述 US- ...
- Arduino UNO + Proteus串口通讯仿真实验
Arduino UNO + Proteus串口通讯仿真实验 准备工作 需要借助虚拟串口软件(Virtual Serial Port Driver),创建2个虚拟串口 具体软件下载和教程:http:// ...
- Arduino Uno 无声无息的开关 固态继电器(四引脚)的实验
最近在做一个项目,需要在睡觉的时候用到继电器, 但普通继电器开关的时候会有啪啪啪的声音,估计会影响睡死过去的我 所以就找到了这种无声的--固态继电器(直流控制直流类型) 可能又是一个太简单太基础的电子 ...
- 利用AVR单片机 专用下载 USBtinyISP对Arduino UNO下载程序
简 介: 测试了利用USBtinyISP对于Arduino UNO,也就是ATmega系列的单片机下载Bootloader的过程.通过测试可以看到,利用USBtinyISP可以更快的下载ATmega系 ...
- 从0 开始 DIY你的Arduino UNO
简 介: 通过实验,验证了利用CH340C制作Arduino UNO最小系统的电路正确性.利用Arduino的IDE对于制作的电路板下载Bootloader的时候,选择开发板为Arduino UNO, ...
最新文章
- 从原理到落地,七大维度读懂协同过滤推荐算法
- MySQL存储过程---动态的表名
- 如何造出逼真图像?南洋理工Zheng博士论文《基于深度生成学习的逼真图像合成》197页pdf阐述视觉合成工作...
- 青龙面板多容器教程、一键多容器
- 现代操作系统: 第五章 输入/输出
- Python的重要模块:collections (namedtuple、defaultdict、deque、Counter、OrderedDict、ChainMap)
- mysql+phpmyadmin配置流程
- 这6个地方不去简直太可惜!
- Java注释是一个大错误
- 遭做空后又被律所调查 贾跃亭的FF上市不到3个月股价已近腰斩
- python装饰器之函数作用域
- 机器人SLAM建图地图类型讨论
- 简单实现x的n次方pta_Day12 :数值的整数次方
- 几种常用的抽奖方案综述(草稿)
- 全球数据共享网站集合
- 【cocos2d-x入门实战】微信飞机大战之一:搞个飞机来玩玩
- 基于区块链的分布式金融网络
- 前端面试题集锦——前端综合问题
- 闲来无事,做个了批量看图的页面
- 火星人敏捷开发1001问(第二季)-陈勇-专题视频课程