代码拉取完成,页面将自动刷新
本案例使用到了四组设备,通过环境光照和人体红外感应,联动三色灯和蜂鸣器的使能控制。
beep_demo.h --蜂鸣器控制头文件
infrared_demo.h --红外人体感应头文件
light_demo.h --环境光照感应头文件
tricolor_light_demo.h --三色灯控制头文件
beep_demo.c --蜂鸣器控制源文件
infrared_demo.c --红外人体感应源文件
light_demo.c --环境光照感应源文件
main_demo.c --本案例环境联动控制源文件
tricolor_light_demo.c --三色灯控制源文件
1.BeepInit(): 蜂鸣器初始化函数,初始化GPIO9为PWM0输出
2.BeepStart(): 蜂鸣器使能函数
3.BeepStop(): 蜂鸣器停止函数
4.BeepCtrl(struct BEEPCTRLATTR* ctrlAttr):蜂鸣器控制函数
ctrlAttr参数说明:
times //响的次数
duty //每次响的占空比
period //每响一次的时间周期
callTime //控制函数的调用周期
1.InfraredSensorInit(): 红外传感初始化函数,初始化GPIO7为IO输入
2.GetInfraredSensorVal(): 获取红外传感IO引脚当前的状态值
3.GetEnvBodyState(): 获取红外人体感应目前的环境状态
返回值(enum ENV_BODY_STATE):
BODY_NOT //无人靠近
BODY_COME //有人靠近
BODY_KEEP //有人靠近后保持
BODY_LEAVE //有人离开
1.LightSensorVal(unsigned short* val): 获取当前环境光照值,保存到val中
2.GetLightAverageVal(unsigned char cnt): 多次获取当前环境光照并取平均值
cnt为多次获取次数
return 返回多次获取的平均值
3.GetEnvLightState(): 获取当前环境光照状态
返回值(enum ENV_LIGHT_STATE):
LIGHT_DAY //白天
LIGHT_DUSK //黄昏
LIGHT_NIGHT //黑夜
1.TricolorLightInit(): 三色灯初始化函数,初始化GPIO10,GPIO11,GPIO12为PWM1,PWM2,PWM3输出
2.TricolorLightStart(char redDuty, char GreenDuty, char BlueDuty): 设置PWM输出值,并开启PWM输出
redDuty: 红灯PWM占空比
GreenDuty: 绿灯PWM占空比
BlueDuty: 蓝灯PWM占空比
3.TricolorLightStop(): 三色灯P输出停止函数
当红外检测到有人接近时,蜂鸣器响两声,同时:
当环境光线充足时,三色灯熄灭;
当环境光线较昏暗时,三色灯显示低亮度;
当环境光线非常不足时,三色灯显示高亮度;
当红外检测到有人离开时,蜂鸣器响两声,且三色灯熄灭
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。