Arduino爱好者

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: eagler8

[经验] 【Arduino】108种传感器系列实验(119)---HB100多普勒雷达模块

[复制链接]
 楼主| 发表于 2019-9-23 15:01 | 显示全部楼层
本帖最后由 eagler8 于 2019-9-23 15:17 编辑

10.jpg

11 (1).jpg
 楼主| 发表于 2019-9-23 15:20 | 显示全部楼层
HB100多普勒雷达模块由FET介质DRO微波震荡源(10.525GHz)、功率分配器、发射天线、接收天线、混频器、检波器等电路组成(图2)。发射天线向外定向发射微波,遇到物体时被反射,反射波被接收天线接收,然后到混合器与振荡波混合,混合、检波后的低频信号反应了物体移动的速度可以广泛应用于类似自动门控制开关、安全防范系统、ATM自动提款机的自动录像控制系统、火车自动信号机等,需要自动感应控制的场所。这是一种标准的10.525GHz微波多普勒雷达探测器,这种探测方式与其它探测方式相比具有如下的优点:1、非接触探测;2、不受温度、湿度、噪声、气流、尘埃、光线等影响,适合恶劣环境;3、抗射频干扰能力强;4、输出功率仅有5mW,对人体构不成危害;5、远距离:探测范围超过20米。

12.jpg
 楼主| 发表于 2019-9-23 15:27 | 显示全部楼层
13.jpg

采用10.525GHz的微波与采用较低频段波相比有以下优点:1、微波天线发射时具有良好的定向性,因此很容易控制微波探头的作用范围。2、微波在传输过程中较易被衰减、吸收和反射,遇到墙壁等遮挡物时会被遮挡,因此墙壁等遮挡物外的物体对其干扰很小。

供电:给HB100供电有连续直流供电(CW)模式和脉动供电(PW)模式两种:HB100适应电压范围为5V±5%。在连续直流供电(CW)模式下工作时典型电流为35mA(典型值)。在低占空比脉冲供电(PW)模式下工作时,推荐给HB100提供5V、脉冲的宽度在5μs~30μs之间(典型值为20μs)、频率为2~4kHz(典型值为2.0kHz)的脉冲供电。3~10%的占空比脉冲供电时平均电流为1.2mA~4mA。脉冲供电电压必须在4.75V~5.25V之间,脉冲顶端的平坦度会影响HB100的探测能力。电源电压超过5.25V时,它的可靠性会降低,并可能导致标称频率外的射频输出和该电路永久性损坏。

射频输出:在所有推荐工作模式下,HB100的射频功率输出是非常低的,均在对人体构不成任何危害的安全范围内工作。在连续直流供电(CW)模式下工作时,总输出功率小于15mW。输出功率密度在5mm处为1mW/cm<span style="top: -4.0pt;">2</span>,1m处为0.72μW/cm<span style="top: -4.0pt;">2</span>。当在5%占空比的脉冲供电模式工作时,功率密度分别减少到50μW/cm<span style="top: -4.0pt;">2</span>和0.036μW/cm<span style="top: -4.0pt;">2</span>。

IF输出:当物体在HB100的有效探测范围内以1m/s的速度相对于HB100的天线面(非铝质屏蔽罩的那一面为天线面)做径向移动时,HB100的IF输出为72Hz/ s,IF的脉动输出频率与物体相对径向移动速度成近似线性关系。IF的输出幅度与物体的大小、距离有关,当一个体重70kg、身高170cm的测试者在距离HB100 1m处以1m/s的速度相对于HB100做径向移动时,IF的输出为5mV、72Hz/s脉动信号,IF的输出幅度与距离的平方成近似反比关系。

注意:
1.探测范围取决于目标的反射度和大小以及信噪比。
2.10.525GHz下的多普勒速度为31Hz/m.p.h
3.安装模块必须使其天线面(非铝质屏蔽罩的那一面为天线面)向着被检测区域,用户也可以自行调整方向,以达到最佳的覆盖区域.

 楼主| 发表于 2019-9-23 16:42 | 显示全部楼层
模块电原理图

14.jpg
 楼主| 发表于 2019-9-23 17:03 | 显示全部楼层
15 (1).jpg
发射:
1发射频率 :                       10.525 GHz
2频率设置精度 :                   3MHz
3输出功率(最小):                   13dBm EIRP
4工作电压 :                       5V±0.25V
5工作电流(CW):                    60mA max., 37mA typical
6谐波发射:                        <-10dBm
7脉冲工作模式:
8平均电流 (5%DC) :                2mA typ.
9脉冲宽度(Min.):                   5uSec
10负载循环(Min.):                    1%

接收:
1灵敏度(10dB S/N ratio)3Hz至80Hz 带宽:   -86dBm
3Hz至80Hz带宽杂波                   10uV
2天线增益:                             8dBi
3垂直面3dB波束宽度:                   36度
4水平面 3dB 波束宽度:                  72度
5重量:                                 8 克
6规格:                               37×45×8mm

 楼主| 发表于 2019-9-23 18:41 | 显示全部楼层
[mw_shl_code=arduino,true]/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百一十九:HB100微波雷达感应模块 10.525GHz多普勒探测器探头传感器
项目:测试HB100模块
*/

int analogPin = 3;
float sensorValue;
int val;
void setup() {
Serial.begin(9600);
             }

void loop() {  
sensorValue = analogRead(analogPin);
Serial.println();
Serial.println(sensorValue);
val= map(sensorValue,0,1023,0,99);
Serial.println(val);
sensorValue=0;
delay(100);
             }[/mw_shl_code]
 楼主| 发表于 2019-9-23 18:42 | 显示全部楼层
16.jpg
 楼主| 发表于 2019-9-23 19:13 | 显示全部楼层
[mw_shl_code=arduino,true]/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百一十九:HB100微波雷达感应模块 10.525GHz多普勒探测器探头传感器
项目:测试HB100模块,输入改为模拟口A0
*/

int analogPin = A0;
float sensorValue;
int val;

void setup() {
Serial.begin(9600);
             }

void loop() {  
sensorValue = analogRead(analogPin);
Serial.println();
Serial.println(sensorValue);
val= map(sensorValue,0,1023,0,99);
Serial.println(val);
sensorValue=0;
delay(100);
             }[/mw_shl_code]
 楼主| 发表于 2019-9-23 19:18 | 显示全部楼层
测试情况,把输入改为模拟口A0,接收的信号非常弱(还有一种可能就是这模块坏的)

17.jpg
 楼主| 发表于 2019-9-23 19:49 | 显示全部楼层
[mw_shl_code=arduino,true]/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百一十九:HB100微波雷达感应模块 10.525GHz多普勒探测器探头传感器
项目:测试HB100模块,输入改为模拟口A0,三组数据输出
*/

#define RADAR A0 // RADAR inut is attached to A0
#define MICRODELAY 100 // 100microseconds ~10000hz
#define MAXINDEX 1024 // 10 bits
#define TOPINDEX 1023 // 10 bits

byte collect[MAXINDEX];
int mean;
int minimum;
int maximum;
int hysteresis; // 1/16 of max-min
bool currentphase; // are value above mean + hysteresis;
int lastnull; // index for last null passing value
int prevnull; // index for previous null passing value
int deltaindex;
int deltadeltaindex;
int index;
bool phasechange = false;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  while (!Serial) {}
  index = 0;
  mean = 0;
  maximum = 255;
  minimum = 0;
  hysteresis = 0;
  currentphase = false;
  lastnull = 0;
  prevnull = 0;

  Serial.print("deltadeltaindex");
  Serial.print("\t");
  Serial.print("deltaindex");
  Serial.print("\t");
  Serial.println("delta");
}

void loop() {
  int newVal = analogRead(RADAR); // Raw reading from amplified radar
  mean -= (collect[index] >> 2);
  mean += (newVal >> 2);
  collect[index]= newVal;
  minimum = newVal < minimum ? newVal : minimum + 1;
  maximum = newVal > maximum ? newVal : maximum - 1;
  hysteresis = abs(maximum - minimum) >> 5;

  if(newVal > (mean + hysteresis))
  {
    if(false == currentphase)
    {
      currentphase = true;
      phasechange = true;
    }
  }
  else if(newVal < (mean - hysteresis))
  {
    if(currentphase)
    {
      currentphase = false;      
      phasechange = true;
    }
  }

  if(phasechange)
  {
    prevnull = lastnull;
    lastnull = index;

    int delta = (prevnull > lastnull) ?
        (lastnull - prevnull + MAXINDEX) :
        (lastnull - prevnull);
    deltadeltaindex = abs(deltaindex - delta);
    deltaindex = delta;

    Serial.print(deltadeltaindex);
    Serial.print("\t");
    Serial.print(deltaindex);
    Serial.print("\t");
    Serial.println(delta);
  }
  
  index = index == TOPINDEX ? 0 : index + 1;
  phasechange = false;
  //delayMicroseconds(10);
}
[/mw_shl_code]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino爱好者

GMT+8, 2022-12-8 15:03 , Processed in 0.082677 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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