芯查查logo
  • 数据服务
    1. 新产品
    2. 物料选型
    3. 查替代
    4. 丝印反查
    5. 查品牌
    6. PCN/PDN
    7. 查方案
    8. 查代理
    9. 数据合作
  • SaaS/方案
      SaaS产品
    1. 供应链波动监控
    2. 半导体产业链地图
    3. BOM管理
    4. 解决方案
    5. 汽车电子
    6. 政府机构
    7. 数据API
  • 商城
  • 行业资讯
    1. 资讯
    2. 直播
  • 论坛社区
    1. 论坛
    2. 学习
    3. 测评中心
    4. 活动中心
    5. 积分商城
  • 查一下
  • 开通会员
meiyao
萤火工场CEM5861G-M11检测人体亮灯

使用STM32F103T微控制器与萤火工场CEM5861G-M11毫米波雷达模块实现人体检测亮灯功能,通过UART串口通信,模块检测数据,并驱动LED灯响应人体存在状态。

 

一、硬件连接

STM32F103T与CEM5861G-M11连接

UART接口:STM32的USART引脚TX、RX分别是PA9,P10连接至CEM5861G-M11的对应引脚RX TX,实现串口通信。

电源CEM5861G-M11工作电压为3.3V,STM32的电源引脚,VCC提供稳定电压,并与雷达模块共地GND,这里接开发板上的排针G上。

 

LED驱动电路

将LED正极通过限流电阻连接至STM32的GPIO引脚,负极接地。根据GPIO输出电平控制LED亮灭。 这里使用开发板上LED1,LED2,LED3.

 

 

二、软件设计

UART通信配置

初始化USART:设置波特率为115200,8位数据位,无校验位,1位停止位,启用接收中断。

数据接收处理:在中断服务函数中读取雷达模块发送的数据帧,解析目标状态、距离及信号强度。

代码

void USART1_IRQHandler(void) {

if (USART_GetITStatus(USART1, USART_IT_RXNE)) {

uint8_t data = USART_ReceiveData(USART1);

// 解析数据帧,判断人体存在状态

if (data == 0x55 && rx_buffer_index == 0) { // 帧头检测

rx_buffer_index = 0;

}

rx_buffer[rx_buffer_index++] = data;

if (rx_buffer_index >= 18) { // 完整帧接收完成

parse_radar_data(rx_buffer);

rx_buffer_index = 0;

}

}

}

雷达数据解析

帧结构分析:CEM5861G-M11主动上报的数据帧包含帧头(0x55 0xA5)、数据长度、功能码(0x03表示主动上报)、命令码、目标状态(0x01为运动,0x00为静止)、距离、信号强度及校验和。

关键信息提取:根据目标状态和距离阈值判断是否触发亮灯。例如,当检测到运动目标且距离小于2米时,点亮LED。

LED控制逻辑

状态机设计:

无人状态:LED熄灭,持续监测雷达数据。

有人运动:LED点亮,延时一段时间后自动熄灭(可通过定时器实现)。

有人静止:根据应用场景调整亮灯策略(如持续亮灯或低亮度模式)。

代码:

 

void control_led(uint8_t motion_status, uint16_t distance) {

if (motion_status == 0x01 && distance < 200) { // 运动且距离<2米

GPIO_SetBits(GPIOA, GPIO_Pin_0); // 点亮LED

delay_ms(5000); // 延时5秒

GPIO_ResetBits(GPIOA, GPIO_Pin_0); // 熄灭LED

} else if (motion_status == 0x00) { // 静止状态

// 

}

}

三,实现效果

我这里为了方便演示,把程序调整了一下,人在的时候就会一直流水灯,没有人的时候就会熄灭。

开发板测评
版块: 萤火工场
昨天 18:59
  • 举报
😁😂😃😄😅😆😉😊😋😌😍😏😒😓😔😖😘😚😜😝😞😠😡😢😣😤😥😨😩😪😫😭😰😱😲😳😵😷😸😹😺😻😼😽😾😿🙀🙅🙆🙇🙈🙉🙊🙋🙌🙍🙎🙏✂✅✈✉✊✋✌✏✒✔✖✨✳✴❄❇❌❎❓❔❕❗❤➕➖➗➡➰🚀🚃🚄🚅🚇🚉🚌🚏🚑🚒🚓🚕🚗🚙🚚🚢🚤🚥🚧🚨🚩🚪🚫🚬🚭🚲🚶🚹🚺🚻🚼🚽🚾🛀Ⓜ🅰🅱🅾🅿🆎🆑🆒🆓🆔🆕
@好友

全部评论

加载中
游客登录通知
已选择 0 人
自定义圈子
移动
发布帖子
发布动态
发布问答
最新帖子
【星允派 NEBULA PI】09:USB虚拟CDC与串口1【星允派 NEBULA PI】15:高级定时器输出PWM【星允派 NEBULA PI】14:使用DMA方式读取ADC【有奖话题35期】明明硬件比软件难,但为什么待遇还不如软件?【星允派 NEBULA PI】12:添加时间任务调度器
热门版块
查看更多
问型号
问技术
问行情
汽车电子工程师论坛
工业电子专区
新手入门指南
单片机/MCU论坛
PCB设计
开源项目
每日打卡

13

收藏

分享

微信扫码
分享给好友

评论