STM32 E18-D80NK红外检测
本文代码使用
HAL
库。
文章目录
- 前言
- 一、E18-D80NK 红外传感器:
- 1. E18-D80NK 的介绍
- 2. 电器特性
- 二、红外检测小实验代码讲解
- 三、实验现象
- 总结
前言
这篇文章介绍 如何使用 STM32 控制 E18-D80NK 进行红外检测。
一、E18-D80NK 红外传感器:
1. E18-D80NK 的介绍
E18-D8ONK
这是一种 集发射与接收于一体 的光电传感器,发射光经过调制后发出,接收头对反射光进行解调输出。有效的避免了可见光的干扰。透镜的使用,也使得这款传感器最远可以检测80厘米距离的问题(由于红外光的特性,不同颜色的物体,能探测的最大距离也有不同;白色物体最远,黑色物体最近)。
检测 障碍物的距离 可以根据要求通过 尾部的 电位器旋钮 进行调节。
该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、流水线计件等众多场仓。.
2. 电器特性
- 棕色:VCC;蓝色:GND;黑色:OUT。
- 工作电压:5V。
- 检测距离:3-80cm。
- 工作原理:检测到目标物体时输出低电平,正常状态时输出高电平。
二、红外检测小实验代码讲解
本实验是 :使用 E18-D80NK
检测到有障碍物时,对检测到障碍物的次数进行计算。
大家可以使用 CubeMX 生成了 相关的引脚配置使能,我这里 是 没有使用这个软件,单独创建一个 test.c 文件 进行配置引脚使能的。
对于 单独创建的代码函数不理解的,可以参考我之前的文章详细介绍了这些函数:STM32CubeMX串口USART中断发送接收数据
我使用的板子是 STM32F103 ,OUT 端口接在了 PB1。
test.c :
#include "test.h"static volatile uint8_t level = 1; /* 没有检测到返回高电平 1 */
uint8_t count= 0; /* 碰见物体次数 */void Test_Reint(void) /* 引脚配置,使能 */
{GPIO_InitTypeDef GPIO_InitStruct = {0}; /* 创建具体变量 */__HAL_RCC_GPIOB_CLK_ENABLE(); /* 使能 *//* 配置引脚 */GPIO_InitStruct.Pin = GPIO_PIN_1;GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING; /* 双边沿触发中断 */GPIO_InitStruct.Pull = GPIO_PULLUP;HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /* 完成初始化配置引脚 */HAL_NVIC_SetPriority(EXTI1_IRQn, 0, 2); /* 设置优先级 */HAL_NVIC_EnableIRQ(EXTI1_IRQn); /* 使能中断 */
}/* 外部中断服务函数 */
void EXTI1_IRQHandler(void)
{HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);
}/* 中断回调函数 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{if(GPIO_Pin == GPIO_PIN_1){level = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1); /* 读电平 */if(level == 0) /* 有物体 0 */{level = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1); /* 读电平 */count++; }}
} int GetTime(void)
{return count; /* 向 main.c 传递time 的值 */
}
main.c :
uint8_t date = 0; /* 物体次数 */date = GetTime();printf("number = %d\r\n",date);
三、实验现象
当 E18-D80NK
检测到有障碍物时,led 点亮,同时对检测到障碍物的次数进行计算。
实验现象
总结
这是本专栏的第一个小模块,后面会持续更新 其他的模块实验,希望大家多多支持啦。
有不理解的代码可以留言评论,也可以私聊。
STM32 E18-D80NK红外检测相关推荐
- 基于STM32设计的健康检测设备(测温心率计步)
1. 项目介绍 本文介绍的项目是基于STM32设计的健康检测设备,支持体温测量,心率检测,支持运动计步(采用MPU6050陀螺仪实现),支持WIFI传输数据到手机APP打印显示. 硬件环境介绍: MC ...
- 基于LM567制作的反射式红外检测电路,用于节能信标检测电路
简 介: 本文测试了基于LM567的反射式光电管用于信标灯检测车模通过的功能.通过实验给出了对于原来信标灯的修改方案. 关键词: 节能型表,LM567,红外检测,智能车竞赛 #mermaid-svg- ...
- 基于STM32的万能红外遥控器
本博客介绍一种基于STM32的可学习和存储已有红外发射设备的万能红外遥控器的设计思路. 一.首先需要了解设计一款这功能的遥控器需要什么硬件设备支持. 1.3.3V,5V电源模块,用作给系统模块供电和单 ...
- STM32与人体红外感应模块的简单使用——入门级
工作原理 人体有恒定的温度,可以发出10UM的红外波,而人体红外感应模块就可以探测出这些红外波,从而产生电平转换.由此人们可以使用人体红外检测模块来检测是否有人. 模块工作环境 工作电压:5V至20V ...
- 基于STM32单片机的温湿度检测报警器(数码管)(Proteus仿真+程序)
编号:27 基于STM32单片机的温湿度检测报警器(数码管) 功能描述: 本设计由STM32F103单片机最小系统+DHT11温湿度传感器+数码管显示模块+声光报警模块+独立按键组成. 1.主控制器是 ...
- 基于stm32的汽车酒精检测汽车防撞报警系统(实物图+源程序+原理图+PCB+参考论文)
资料编号:051 通过stm32检测当前驾驶人酒精含量,超过设置含量发动机无法起动,反之则正常启动,可以检测车内温湿度,可燃烟雾,火焰,采用超声波障碍物检测,分别可以启动水泵灭火和蜂鸣器报警,通过o ...
- 基于stm32单片机老人跌倒检测/障碍物测距报警/导盲拐杖设计
基于stm32单片机老人跌倒检测/障碍物测距报警/导盲拐杖设计 1.功能描述: 1:OLED屏显示系统数据. 2:蓝牙连接手机app,查看数据,异常状态发送特定信息 3:异常状态声光报警 4:跌倒报警 ...
- 基于51单片机的智能停车场管理车位引导系统红外检测无线蓝牙/WiFi手机APP控制设计
本系统由STC89C52单片机.(无线蓝牙/WIFI模块-可选).红外对管传感器.LCD1602液晶显示.LED指示灯及电源组成. 通过红外对管模块实时检测车位是否占用,车位分为1车位.2车位.3车位 ...
- 基于stm32的空气质量检测净化系统,检测温湿度和pm10和 pm2.5,资料包含(设计文档,源码,pcb电路)。
基于stm32的空气质量检测净化系统,检测温湿度和pm10和 pm2.5,资料包含(设计文档,源码,pcb电路).
最新文章
- 一文看懂机器学习中的常用损失函数
- POJ2417 Discrete Logging | A,C互质的bsgs算法
- _tcsnicmp_wcsnicmp
- python如何启动前端_Django项目创建到启动详解(最全最具体)
- JBoss OSGi用户指南(第二章:Getting Started)
- Android 设计的几处硬伤
- 五、RabbitMQ管理与高可用集群
- 一加6体验深度测评:一款性价比极高的旗舰
- 数字孪生堆场智慧安全管控平台
- 钩子(HOOK)函数教程
- 签订房屋买卖居间合同后一方违约购房定金如何处理
- Linux PCI驱动框架分析过程
- mysql报错不停止继续执行_mysql 8 启动失败(本地计算机上的mysql服务启动后停止。某些服务再未由其他服务或程序使用时将自动停止)...
- iPad点餐助力餐饮业发展
- ESD防护为何对集成电路如此重要?又该如何防护?
- 人类社会货币的演变与区块链的价值
- java开源bs系统_WCP是一套BS架构的开源知识管理系统、知识库系统。它.PDF
- visual sourcesafe 的下载,vss2005管理vs2010项目,安装方法,配置及用法教程
- 第四章 权限提升分析及防御
- 支付宝、财付通、快钱 三种功能特点的不同
热门文章
- ofdm系统matlab仿真,基于Simulink 的OFDM 系统仿真分析
- ai自动写JAVA代码,人工智能自动写作软件2.0时代(示例代码)
- QNAP文件传输服务器,如何通过 DLNA/UPnP 欣赏存储在 QNAP NAS 上的多媒体内容?
- 【知识图谱】py2neo基本操作(2021-11-11)
- 软件产品质量要求和测试细则-信息安全性
- 曼恩斯特在创业板注册生效:拟募资约5亿元,彭建林夫妇为实控人
- 13/6/21 Hella Intern Interview
- 自媒体怎么打造爆文?3个技巧必须学会
- 烤仔观察 | FC(2): 1000年后,再见
- IIS发布网站,报错404找不到文件或者目录