Arduino-uno 核心板 之中级系列5 QT011H实验-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1551|回复: 0

Arduino -uno 核心板 之中级系列5 QT011H实验

[复制链接]
发表于 2020-12-31 15:18 | 显示全部楼层 |阅读模式
[color=rgba(0, 0, 0, 0.75)]Arduino -uno 核心板 之中级系列5 QT011H实验
    • 适用平台:Arduino uno
    • 模块介绍:
    • 所需元件
    • 硬件连接及说明
    • 程序讲解
    • 总结



适用平台:Arduino uno模块介绍:

今天我们需要用到的模块是遥感模块,也称QT011H模块。

10000020848527841000001155327841image.png

这个模块大家一定不陌生,在遥控类的玩具里的遥控器基本上都是采用的这个遥感,学会使用这个遥感模块,我们也能做一些遥控小玩具了。这个模块的用户数据手册如下
链接: http://www.enmaking.com/material/ma_BtHHpISy

数据手册里详细介绍了它的一些功能特点,例如它的低功耗模式、检测设置等。这个模块最大的特点是采用了SQD协议通讯,这个通讯协议为单线双向协议,一条数据线即可完成数据的发送和接收。具体关于SQD协议的介绍可参考SQD数据手册
链接: http://www.enmaking.com/material/ma_artHGTXw

这里为了方便使用,已经提供了SQD协议库。直接调用SQD协议库即可实现通讯,非常方便。这个SQD协议库的下载链接会放到文章末尾。

所需元件

1 x QT011H模块

1 x Arduino uno 开发板

3 x 1.27转2.54排线

硬件连接及说明

QT011H模块与Arduino uno 开发板的连接如下

QT011H Arduino uno

VDD------->5V

GND------>GND

SQD------>3

我们将通讯引脚设置为3脚。这里将用到3脚的外部中断

程序讲解

首先教大家把SQD协议库加入到我们的Arduino IDE当中,其实方法非常简单。

1、 先通过文章末尾的下载链接把文件下载下来。

2、下载后有三个文件,把SQD_Library文件复制到Arduino IDE文件夹的libraries子文件夹中。

什么?你说你找不到这个文件夹,那我们换一种方法找。

首先找到arduino.exe这个快捷方式

单击右键—>选择打开文件所在位置,于是就找到了这个文件夹


将SQD_Library文件放到libraries文件夹下。

完成以上操作后,我们重启Arduino IDE,可以看到多了一个库,这就我们的SQD协议库

这是打开Arduino_QT011H项目接下来我们还要对SQD协议做一些配置。配置如下

unsigned char getLLSQD(void){ if(digitalRead(3)) {   return 1;  }else {   return 0;   } }  void setLLSQD(unsigned char Export){   if(Export)   {     digitalWrite(3, HIGH);   }else   {     digitalWrite(3, LOW);   }  }  void qiSQD_PinOutputHigh(void){   detachInterrupt(1);   pinMode(3, OUTPUT);    digitalWrite(3, HIGH); }  void qiSQD_PinInputWithFallingInt(void){   //pinMode(3,INPUT);    pinMode(3,INPUT_PULLUP); //将2号管脚设置为输入并且内部上拉模式   attachInterrupt(1,Gpio3_INT, FALLING);   }//========================主要驱动==================================== cli();//关闭全局中断  //设置定时器2为80us TCCR2A = 0;// set entire TCCR2A register to 0 TCCR2B = 0;// same for TCCR2B TCNT2 = 0;//initialize counter value to 0 // set compare match register for 8khz increments OCR2A = 160;// = (16*10^6) / (8000*8) - 1 (must be <256) // turn on CTC mode TCCR2A |= (1 << WGM21);//打开CTC模式 // Set CS21 bit for 8 prescaler TCCR2B |= (1 << CS21);   // enable timer compare interrupt TIMSK2 |= (1 << OCIE2A);  sei();//打开全局中断 ISR(TIMER2_COMPA_vect){ qiSQD_80usCalledForTxProcess();} void Gpio3_INT(void){  qiSQD_FallingEdgeIntCalledRX(); }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117

这里有Arduino 的3脚的配置和操作,以及配置一个定时器2

最后是一些初始化

qiSQD_init(); Serial.begin(9600);       //设置波特率为9600 bps
  • 1
  • 2
  • 3

下面就是QT011H的数据接收,接收到后通过串口打印出来

u8 i=0;   if( (Timer==37) &&(SQD_re_payload[0>0) )  {    for(i=0;i<SQD_re_payload[0+1;i++)    {       Serial.print(SQD_re_payload[i);        Serial.print("\t");    }    Serial.print("\r\n");           SQD_re_payload[0=0;  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

大家不清楚SQD的配置过程的可以参考这篇文章,里面讲的非常详细。

链接: http://www.enmaking.com/article/ar_sVMN102d

总结

本章重点讲解QT011H模块的SQD通讯协议,以及它的一些配置方法,方便大家去了解并使用。本篇文章内容就到这里了,希望对大家有所帮助,最后,晒上程序效果图、程序和SQD协议库下载链接

链接: http://www.enmaking.com/material/ma_ad3vsM5U

更多内容请参考原文
链接: http://www.enmaking.com/article/ar_a0RxIp3u


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:39 , Processed in 0.103334 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表