Arduino驱动QMC6308地磁传感器调试笔记(2)

#include <Wire.h>
// the setup routine runs once when you press reset:
void setup() {
   // initialize serial communication at 9600 bits per second:
   Wire.begin();
   Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
   int num;

  Wire.beginTransmission(44);     //address 0x2ch
   Wire.write(10);                        //配置Control Register 1
   Wire.write(0xc3);
   Wire.endTransmission(true);
   delay(200);

  Wire.beginTransmission(44);      
   Wire.write(10);
   Wire.endTransmission(false);
   Wire.requestFrom(44,1,1);        //读取Control Register 1
   char conctrl_1reg = Wire.read();
   Serial.println(conctrl_1reg,DEC);
   delay(200);
  
   Wire.beginTransmission(44);    //address 0x2ch
   Wire.write(11);                       //配置Control Register 2
   Wire.write(0x00);
   Wire.endTransmission(true);
   delay(200);

  Wire.beginTransmission(44);      
   Wire.write(11);
   Wire.endTransmission(false);
   Wire.requestFrom(44,1,1);           //读取Control Register 2
   char conctrl_2reg = Wire.read();
   Serial.println(conctrl_2reg,DEC);

  while(1)
   {
     delay(200);
     Wire.beginTransmission(44);      
     Wire.write(9);
     Wire.endTransmission(false);
     Wire.requestFrom(44,1,1);        //读取Status Register 1 DRDY标志
     char staflg = Wire.read();

  
     if(staflg & 0x01)                      //数据准备就绪
     {
       staflg = 0;
       delay(200);                           //读取寄存器1-6
       Wire.beginTransmission(44);
       Wire.write(2);
       Wire.endTransmission(false);
       Wire.requestFrom(44,1,1);
       int x_out = Wire.read();
     
       Wire.beginTransmission(44);
       Wire.write(1);
       Wire.endTransmission(false);
       Wire.requestFrom(44,1,1);
        x_out = (x_out << 8)| (Wire.read());
      
       Wire.beginTransmission(44);
       Wire.write(4);
       Wire.endTransmission(false);
       Wire.requestFrom(44,1,1);
       int y_out = Wire.read();
      
       Wire.beginTransmission(44);
       Wire.write(3);
       Wire.endTransmission(false);
       Wire.requestFrom(44,1,1);
       y_out = (y_out << 8)|( Wire.read());

      Wire.beginTransmission(44);
       Wire.write(6);
       Wire.endTransmission(false);
       Wire.requestFrom(44,1,1);
       int z_out = Wire.read();

      Wire.beginTransmission(44);
       Wire.write(5);
       Wire.endTransmission(false);
       Wire.requestFrom(44,1,1);
       z_out = (z_out << 8)|( Wire.read());
      
       //Serial.println("x");
       //Serial.print(',');                //输出寄存器xyz数据
       Serial.print(x_out,DEC);
       Serial.print(',');
       //Serial.println("y");
       Serial.print(y_out,DEC);
       Serial.print(',');
       //Serial.println("z");
       Serial.print(z_out,DEC);
       Serial.println(",");
     }
   }
}

打开arduino IDE串口绘图窗口可以看到数据输出,并且跟随地磁传感器的方向按一定的规律变化

pp

快去体验下功能实现初步正确带来的欣喜。

芯片应用项目洽谈合作:18665321219

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集 arduino传感器数据采集
ARDUINO mq-2烟雾传感器是一种基于MQ-2传感器的烟雾传感器模块。它具有高灵敏度,可以检测可燃气体和烟雾等气体。该传感器模块提供了两种输出方式。一种是数字量输出,通过设定浓度阈值,当检测到环境气体浓度超过阈值时,通过数字引脚输出低电平。另一种是模拟量输出,浓度越高,模块的AO引脚输出的电压值越高。需要注意的是,传感器通电后需要预热约20秒,测量的数据才会稳定。传感器工作时需要内部电热丝加热,所以发热是正常现象。传感器的模拟信号经过LM393高精度比较器进行数字化处理,同时配备一个小电位器,可以调整传感器的灵敏度和检测到的气体浓度。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [Arduino提高篇11—烟雾传感器MQ-2](https://blog.csdn.net/TonyIOT/article/details/103380128)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [arduino 读取模拟电压_MQ2气体/烟雾传感器如何工作及其与Arduino接口](https://blog.csdn.net/gaoxiang19820514/article/details/125972967)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值