STM32开发详解:红外循迹、避障与光电门模块
创作时间:
作者:
@小白创作中心
STM32开发详解:红外循迹、避障与光电门模块
引用
CSDN
1.
https://m.blog.csdn.net/sikimayi/article/details/144526721
本文详细介绍了STM32开发板中常用的三种红外感应模块:红外循迹模块、红外避障模块和光电门模块。文章从原理到代码实现,为读者提供了全面的指导。
红外感应模块在各类机器人竞赛和自动化项目中应用广泛,本文将详细介绍三种常见的红外感应模块:红外循迹模块、红外避障模块和光电门模块。我们将从原理、接线方式到代码实现,为读者提供全面的指导。
红外循迹模块
红外循迹模块常用于让小车按照指定路线移动的场景。其工作原理是通过检测地面路线的颜色差异来控制小车的移动方向。
运行原理
TCRT5000传感器的红外发射二极管不断发射红外线。当发射出的红外线没有被反射回来或反射强度不够时,红外接收管处于关断状态,模块输出高电平;当检测到黑色或深色物体时,红外线被充分反射,红外接收管饱和,模块输出低电平。
简而言之:
- 检测白色或浅色时,指示灯亮,输出信号为0;
- 检测黑色或深色时,指示灯灭,输出信号为1。
注:模块上的蓝色小方块是电位器,可用于调整灵敏度。
接口说明
- VCC:外接3.3V-5V电压
- GND:外接GND
- AO:输出模拟信号
- DO:输出数字信号
实际接线方式:
- VCC 接 VCC
- GND 接 GND
- AO 不接线
- DO 接 PB12
代码实现
#include "stm32f10x.h"
void xunji_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB, GPIO_Pin_12);
}
int xunji_Get(void)
{
return GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12);
}
红外避障模块
红外避障模块用于检测前方障碍物,常用于机器人避障系统。
运行原理
红外避障模块包含一个红外发射器和一个红外接收器。发射器发射红外线,遇到障碍物后被反射回接收器。接收器内部的比较器(如LM393)会根据接收到的信号强度输出高低电平。
注:模块上的蓝色小方块是电位器,可用于调整灵敏度。
接口说明
- VCC:外接3.3V-5V电压
- GND:外接GND
- OUT:输出信号
实际接线方式:
- VCC 接 VCC
- GND 接 GND
- OUT 接 PB13
代码实现
#include "stm32f10x.h"
void bizhang_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB, GPIO_Pin_13);
}
int bizhang_Get(void)
{
return GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13);
}
光电门模块
光电门模块用于检测物体是否通过光束,常用于计时和检测场景。
运行原理
光电门模块包含一个发射器和一个接收器。当发射器发出的光束被物体遮挡时,接收器无法接收到光信号,从而产生电信号。
接口说明
- VCC:外接3.3V-5V电压
- GND:外接GND
- AO:输出模拟信号
- DO:输出数字信号
实际接线方式:
- VCC 接 VCC
- GND 接 GND
- AO 不接线
- DO 接 PB14
代码实现
#include "stm32f10x.h"
void photogate_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB, GPIO_Pin_14);
}
int photogate_Get(void)
{
return GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_14);
}
总结
本文详细介绍了三种红外感应模块的工作原理、接线方式和代码实现。这些模块在机器人竞赛和自动化项目中应用广泛,掌握它们的使用方法对嵌入式系统开发者来说非常有帮助。
热门推荐
香辣干锅花菜制作教程:7步做出餐厅级美味
酸辣芒果的做法 只是零食,绝对不是一盘菜——酸辣芒果 酸辣芒果怎么做
企业必知!财务报表粉饰的5大常见手段及识别
吴哥窟旅游攻略,柬埔寨吴哥窟旅游攻略
Type-C接口OTG转接器的应用与发展
低GI功能大米升温:千亿规模潜力,解决八成慢病老人主食难题
甲型肝炎基础知识
如何写好材料作文(构建作文结构的技巧)
造纸企业智能制造解决方案——提升生产效率的创新之道
吉他新手必读:掌握基本和弦的实用指南
解析K线图“黄金坑”形态:主力常用的洗盘手法
YOLOv5原理详细解析!一文看懂
现代诗的10个基本特征
灵活就业人员社保缴费最新标准2025:缴费档次怎么选最划算?
香格里拉:雪山圣湖间的文化瑰宝
编辑视频电脑配置:打造专业级视频剪辑工作环境
良性or恶性?皮肤肿物大揭秘:一文教你正确识别与防治
2024解除劳动合同的工会程序是什么
INTJ的情绪真相、应对策略、负面印象与不易抑郁
棉花枯病的克星:有效农药与管理策略
融资融券账户操作详解:从两融额度到T+0交易
绩效改进计划:针对性改进,提高绩效水平
德国之旅:揭秘德国著名景点的奥秘
如何训练中华田园犬(以宠物为主的简易训练方法)
月季花什么时候修剪最好?
农村土地纠纷怎么收集材料
西甲皇家马德里VS莱加内斯比赛结果分析 皇马占据绝对的上风
冬季皮肤干燥想水润,该怎样正确洗脸好?这4招来帮你科学洁面
火灾中的“烟囱效应” ,你知道如何逃生吗?
【Design Compiler功耗优化】:实现低功耗设计的秘籍大公开