在这个示例中,使用CEM5826-M11作为主要的决策模块,当检测到有人时,MCU将采集到的XGZP6828D的数据(温度/大气压强)通过CP2102 ttl-usb模块传输到电脑中;当检测到无人时,每累计1s进行一次无人播报。以实现工位有/无人时的环境信息检测系统的核心电路和逻辑部分。

主要代码:
if( 1 == flag_TIM1 )
{
//clear flagTIM
flag_TIM1 = 0;
//read XGZP6828D datas
readXGZP6828D(&pas, &tem);
//get CEM5816_M11 check
flag_CEM_HAVE = GET_CEM5816_M11_IO();
#if DEBUG_PRINTF
//uart-printf test
printf("%d,%.0f,%.2f\r\n",flag_CEM_HAVE,pas,tem);
#endif
if(1 == flag_CEM_HAVE)
{
cnt = 0;
printf("检测到有物体移动!当前工位压力值:%.1f kPa, 温度值:%.2f ℃\r\n",pas,tem);
}
if(100 == ++cnt )
{
cnt = 0;
printf("累计1s无物体移动!\r\n");
}
主逻辑解读:每个10ms进行一次数据读取,读取当前环境信息,如果检测到有人,进行环境信息播报,打印到串口中;当没有检测到有人或物体移动时,进行计数累计,当且仅当连续100次,即1s时间到,累计1s工位无检测到移动物体,进行无人播报。
详细请来我的主页看demo视频

