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红外检测
本文代码使用 HAL 库。 文章目录前言一、E18-D80NK 红外传感器:1. E18-D80NK 的介绍2. 电器特性二、红外检测小实验代码讲解三、实验现象总结前言 这篇文章介绍 如何使用 STM32 控制 E18-D80NK 进行红外检测。 一、E18-D80NK 红外传感器: 1. E18-D80N…...
Linux常用命令--进程和计划任务管理
一、程序和进程的关系 1、程序 ①保存在硬盘、光盘等介质中的可执行代码和数据 ②静态保存的代码 2、进程 ①在cpu及内存中运行及进程代码 ②动态执行的代码 ③父(fork)、子进程,每个程序可以创建一个或多个进程 父进程和子进程的区别&am…...
Unity TextMeshPro
Unity TextMeshPro 简介 TextMeshPro(也简称为TMP)号称是Unity的终极文本解决方案,它是Unity 的 UI 文本和旧版文本网格体的完美替代品。 功能强大且易于使用,使用高级文本渲染技术以及一组自定义着色器;提供实质性的视觉质量改进,同时在文本样式和纹理方面为用户提供令人…...
虹科分享| 浅谈HK-Edgility边缘计算平台
上周,我们推出了虹科新品HK-Edgility边缘计算平台以及uCPE解决方案。本篇文章我们再来谈一谈到底什么是边缘计算?为什么需要边缘计算?边缘计算和云计算有什么关系?HK-Edgility边缘计算平台将为您带来什么?一、边缘计算…...
React Router v6详解
旧版本React Router使用方式 BrowserRouter:通过 history 库,传递 history 对象,location 对象Switch:匹配唯一的路由 Route,展示正确的路由组件Route:视图承载容器,控制渲染 UI 组件 新版本R…...
帮助100w人成功入职的软件测试面试常见问题以及答案
测试面试题怎么来设计测试方案根据测试需求(包括功能需求和非功能性需求),识别测试要点,识别测试环境要求,安排测试轮次,根据项目计划和开发计划做整体的测试安排。被测试的特性:通过对需求规格…...
tensorflow2.4--2.回归问题分析
文章目录前言流程案例操作前言 流程 回归问题预测连续值,在某个区间内变动. 常见的线性回归问题模型是yaxb,然而现实世界由于大量的数据偏差以及复杂度,同时还有大量的噪声,往往达不到如此的精确解,实际解决问题时需要考虑噪声的存在 对于噪声,往往我们已经假设了它符合高斯…...
【2023】DevOps、SRE、运维开发面试宝典之Kafka相关面试题
文章目录 1、消息队列的流派2、kafka的优势3、Kafka与Zookeeper的关系4、Kafka消息队列各组件概念5、Kafka消息队列应用场景6、Kafka消息收发的过程7、Kafka消息数据存储概念8、kafka消息的偏移量概念原理9、Kafka消息数据的顺序消费概念原理10、Kafka单播消费消息的原理11、Ka…...
CentOS系统编译安装PHP-5.6.27版本
一、手动安装编译工具: yum install -y gcc gcc-c 二、添加用户和用户组: groupadd web useradd -M -s /sbin/nologin -g web php 三、yum安装依赖: yum -y install libmcrypt libmcrypt-devel mcrypt mhash libxml2-devel libpng-devel l…...
和风SDK查询城市ID(保姆级教程)
android studio版本:2021.2.1例程名:hfserachcityid这几天没什么事做,而且我原来那个“项目”因为免费api不能用了,只能改为和风的免费api,但需要申请,而且还要城市ID,玩天气的基本都知道城市ID这个东西&am…...
暴力递归到动态规划
暴力递归到动态规划 假设有排成一行的n个位置, 记为1~n,n-定大于或等于2。开始时机器人在其中的m位置上(m 一定是1~n中的一个)。如果机器人来到1位置,那么下一步只能往右来到2位置;如果机器人来到n位置, 那么下一步只能…...
Java:Java仍然处于领先地位?
没有多少编程语言能够自吹自擂并持续流行20多年,但Java就是其中之一。Java应用程序不仅局限于web和移动开发,而且给大数据和人工智能留下了深刻的印象。不用多说,让我们讨论一下Java流行的几个原因!!1.实用性根据JamesGosling的说法ÿ…...
虚拟地址空间
本节目录1.如何理解区域划分2.为什么一个变量可以存储两个不同的值?3.深入理解虚拟地址空间为什么要有地址空间?4.理解什么是挂起?1.虚拟地址空间究竟是什么?2.映射关系的维护是谁做的?1.如何理解区域划分 所谓的区域…...
Python基础篇(十五)-- Pygame游戏编程
1 初识Pygame Pygame是一个开源的Python模块,专门用于多媒体应用(如电子游戏)的开发,其中包含对图像、声音、视频、事件、碰撞等的支持。Pygame建立在SDL的基础上,SDL是一套跨平台的多媒体开发库,用C语言实…...
LeetCode 热题 HOT 100 Java 题解 -- Part 2
练习地址 Part 1 : https://blog.csdn.net/qq_41080854/article/details/128829494 LeetCode 热题 HOT 100 Java 题解 -- Part 236. 二叉树的中序遍历 9437. 不同的二叉搜索树 9638. 验证二叉搜索树 9839. 对称二叉树 10140. 二叉树的层序遍历 10241. 二叉树的最大深度 10442.…...
【项目实战】IDEA常用快捷键汇总
一、修改为Eclipse的快捷键 相信很多朋友跟我一样, 都是习惯了eclipse的快捷键,没错,习惯这东西真的很难改!IDEA非常强大,支持我们修改IDEA中的keymap为Eclipse的快捷键!友好又贴心,有没有&…...
更新 TKK 失败,请检查网络连接。谷歌翻译 translation插件不能用解决办法 亲测有效
谷歌翻译无法使用,谷歌回应解释是,谷歌翻译使用率过低,所以选择停止服务。网上也有说法,指出根本原因为,提供API接口的googleapis被墙,这导致js文件和字体资源无法加载。 这里提供两种解决办法 方案一 修…...
SpringBoot整合MybatisPlus多数据源
相信在很多使用MybatisPlus框架的小伙伴都会遇到多数据源的配置问题,并且官网也给出了推荐使用多数据源 (dynamic-datasource-spring-boot-starter) 组件来实现。由于最近项目也在使用这个组件来实现多数据源切换,因此想了解一下该组件是如何运行的&…...
【教程】如何使用Java生成PDF文档?
在如今数字化时代,越来越多的人使用PDF文档进行信息传递和共享。而使用Java生成PDF文档也成为了一个非常重要的技能,因为Java作为一种通用的编程语言,可以在不同的操作系统和平台上运行。下面,我们将为您介绍如何使用Java生成PDF文…...
I.MX6ULL内核开发13:pinctrl子系统和gpio子系统-led实验
目录 一、pinctrl子系统 1.1 pinctrl子系统编写格式以及引脚属性介绍 1.1.1 iomux节点介绍 1.1.2 pinctrl子节点编写格式 1.1.3 引脚配置信息介绍 1.2 将RGB灯引脚添加到pinctrl子系统 1.2.1 查找RGB灯使用的引脚 1.2.2找到引脚宏定义 1.2.3 设置引脚属性 1.2.4 在…...
SVM支持向量机核函数选择避坑指南:从线性到RBF,如何根据你的数据特征做决定?
SVM核函数选择实战指南:从数据特征到模型调优的全流程解析 第一次在Scikit-learn中调用SVC类时,面对kernel参数下拉菜单里linear、poly、rbf、sigmoid四个选项,我盯着屏幕发了五分钟呆——这感觉就像走进一家高级餐厅,服务员递来一…...
多代理系统架构实战:Supervisor 与 Swarm 的选型与落地策略
1. 多代理系统架构的核心价值 想象一下你正在组织一场大型会议:需要预订场地、安排餐饮、发送邀请函、准备会议材料。如果让一个人完成所有工作,要么质量难以保证,要么时间拖得很长。这就是多代理系统要解决的问题——通过专业分工和高效协作…...
编译原理避坑指南:自顶向下语法分析的5个常见错误及解决方法
编译原理避坑指南:自顶向下语法分析的5个常见错误及解决方法 第一次接触自顶向下语法分析时,我盯着那个无限循环的递归文法整整三天没想明白——为什么明明按照教材步骤操作,程序却始终报错?直到助教指出我忽略了间接左递归的隐蔽…...
如何用League-Toolkit提升你的英雄联盟游戏体验
如何用League-Toolkit提升你的英雄联盟游戏体验 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾经在英雄联盟游戏中感到效…...
AMD显卡福音:实测ROCm7+PyTorch在Windows下跑ComfyUI,比WSL快了多少?
AMD显卡Windows原生AI绘图性能飞跃:ROCm 7与WSL实测对比 当AMD在2025年夏季悄然发布ROCm 7预览版时,很少有人预料到它会给Windows平台的AI绘图体验带来如此显著的改变。作为一名长期在WSL环境下使用AMD显卡进行Stable Diffusion工作的开发者,…...
PyTorch实战:从零构建ResNet50模型(CIFAR10训练+测试+ONNX转换)
1. ResNet50模型基础认知 第一次接触ResNet50时,我被它的"残差连接"设计惊艳到了。传统神经网络随着层数增加会出现梯度消失问题,而ResNet通过跨层直连通道,让信息能够无损传递到更深层。这就好比在高速公路上设置应急车道…...
MusePublic圣光艺苑惊艳案例:基于真实建筑数据生成文艺复兴城市图景
MusePublic圣光艺苑惊艳案例:基于真实建筑数据生成文艺复兴城市图景 1. 引言:当古典建筑遇见AI画笔 想象一下,你手头有一份欧洲某座历史名城的建筑测绘数据,里面记录了数百座教堂、广场和宫殿的精确尺寸与风格特征。过去&#x…...
用Docker三分钟搞定Hive伪分布式环境(附本地开发调试技巧)
用Docker三分钟搞定Hive伪分布式环境(附本地开发调试技巧) 在数据分析和处理领域,Hive作为基于Hadoop的数据仓库工具,因其能够处理海量数据并提供类SQL查询能力而广受欢迎。然而,传统的Hive环境搭建往往需要配置复杂的…...
金融Agent再获近2亿加码!启明红杉高瓴集体押注,5个月内连获两轮融资
允中 发自 凹非寺量子位 | 公众号 QbitAI近日,金融AI领跑者讯兔科技(Alpha派)正式完成近2亿元A轮融资。继去年10月完成超亿元Pre-A轮融资后,讯兔科技在短短5个月内再获顶级机构强强加持。本轮由启明创投、红杉中国、高瓴创投共同领…...
视频文件修复全攻略:如何用Untrunc工具抢救损坏的MP4/MOV文件
视频文件修复全攻略:如何用Untrunc工具抢救损坏的MP4/MOV文件 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 当你打开存储着家庭聚会回忆的视频文件时&…...
