接近传感器 - 从零开始认识各种传感器【第十七期】

news2024/9/21 4:36:35

1、什么是接近传感器

接近传感器常被用于检测物体的距离或者是否有物体靠近。它通常发射电磁场或电磁波(例如红外线)来探测物体的位置。当有物体靠近时,传感器会接收到反射的电磁波信号,从而触发相应的电路或者控制系统。它广泛应用于物体感应接近开关等场合, 如自动水龙头,智能手机等。

2、接近传感器工作原理

接近传感器通过不同的工作原理来检测物体是否接近。常见的工作原理包括利用红外线、超声波、电容变化或磁场变化来感知物体的存在或距离。传感器发射特定信号并接收反馈,根据信号的变化来判断物体的位置或距离,从而触发相应的输出信号。 

3、常见的接近传感器的种类

依据测试原理不同,接近传感器可以分为红外,超声波,电容式和电感式接近传感器。

3.1 红外线接近传感器

红外接近传感器利用红外线来检测物体的接近。传感器内部包含一个红外发射器,它会发射红外线束;当红外线遇到物体时,部分红外线会被物体反射回传感器。传感器内部还有一个红外接收器,用于接收反射回来的红外线信号。传感器会分析接收到的信号,根据信号的强弱来判断物体的距离或者是否有物体靠近。

3.2 电容式接近传感器

电容接近传感器:通过测量物体与传感器之间的电容变化来检测物体的接近。传感器中的感应板与目标物体形成一个电容,电容随着与物体的距离变化而变化。由于电容容值的大小决定了振荡器产生的频率,对该频率进行监测,便可感知物体的接近。

电容式接近传感的一个示例是智能汽车门禁系统中。检测人手靠近的接近传感器位于车门把手内,一旦检测到有物体靠近,主控单元通过低频天线发送一个唤醒信号;该信号激活汽车钥匙发送器。汽车钥匙发送器于是与RFID接收器交换信息并完成开锁,整个过程在几分之一秒内就可完成,在人手摸到把手之前,门锁就已经打开了。

3.3 电感式接近传感器

电感式接近传感器一般仅适用于金属物体,多用于金属探测场景。它有一个电磁线圈用于产生交流磁场,在有金属物体接近时会改变磁场的强度或方向,从而触发传感器输出相应信号。

3.4 超声波接近传感器

超声波接近传感器利用超声波的回波来检测物体的距离。传感器发射超声波脉冲,当脉冲遇到物体时,会被反射回传感器,通过计算回波的时间或频率来确定物体与传感器的距离。

3.5 几种接近传感器的对比

从对比表格可以看出,超声波的检测范围最大,红外和电感接近传感器的成本相对更低,而电感接近传感器只可以用于金属探测,具体设计应用中的选择需要进行综合考量。

4、接近传感器实验演示

我们来演示使用MCU 读取显示接近传感器的数据。实验中使用的是一款常见的红外接近传感器。将手指慢慢靠近传感器,可以看到,随着手指距离越来越近,屏幕上显示的感应圆圈变得越来越大。

代码:

import uos
import test.st7789 as st7789
from test.fonts import vga2_8x8 as font1
from test.fonts import vga1_16x32 as font2
import random
import framebuf
from machine import Pin, SPI, ADC,PWM,I2C,freq
import time, math,array
from utime import sleep_ms
import struct
import vcnl4010
freq(180_000_000)

st7789_res = 0
st7789_dc  = 1
disp_width = 240
disp_height = 240
CENTER_Y = int(disp_width/2)
CENTER_X = int(disp_height/2)
spi_sck=Pin(2)
spi_tx=Pin(3)
spi0=SPI(0,baudrate=60_000_000, phase=1, polarity=1, sck=spi_sck, mosi=spi_tx)

display = st7789.ST7789(spi0, disp_width, disp_width,
                          reset=machine.Pin(st7789_res, machine.Pin.OUT),
                          dc=machine.Pin(st7789_dc, machine.Pin.OUT),
                          xstart=0, ystart=0, rotation=0)
display.fill(st7789.BLACK)


buttonM = Pin(5,Pin.IN, Pin.PULL_UP) #B
buttonS = Pin(6,Pin.IN, Pin.PULL_UP) #A
buttonL = Pin(7,Pin.IN, Pin.PULL_UP) #A
buttonPRESS = Pin(8,Pin.IN, Pin.PULL_UP) #A
buttonR = Pin(9,Pin.IN, Pin.PULL_UP) #A

i2c = I2C(1, scl=Pin(23), sda=Pin(22))

vcnl=vcnl4010.VCNL4010(i2c)
vcnl.startup()
def light_dot(x,y,color):
   display.pixel(x,y,color)

def draw_circle(x,y,r,color,fill=0):
   '''
   绘制圆形
   :param x,y  圆心坐标
   :param r  圆心半径
   :param fill 0 不填充  1 填充
   '''
   angleList = [0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.7853981633974483, 0.8, 0.85, 0.9, 0.95, 1.0, 1.05, 1.1, 1.15, 1.2, 1.25, 1.3, 1.35, 1.4, 1.45, 1.5, 1.55, 1.5707963267948966, 1.6, 1.65, 1.7, 1.75, 1.8, 1.85, 1.9, 1.95, 2.0, 2.05, 2.1, 2.15, 2.2, 2.25, 2.3, 2.35, 2.356194490192345, 2.4, 2.45, 2.5, 2.55, 2.6, 2.65, 2.7, 2.75, 2.8, 2.85, 2.9, 2.95, 3.0, 3.05, 3.1, 3.141592653589793, 3.15, 3.2, 3.25, 3.3, 3.35, 3.4, 3.45, 3.5, 3.55, 3.6, 3.65, 3.7, 3.75, 3.8, 3.85, 3.9, 3.9269908169872414, 3.95, 4.0, 4.05, 4.1, 4.15, 4.2, 4.25, 4.3, 4.35, 4.4, 4.45, 4.5, 4.55, 4.6, 4.65, 4.7, 4.71238898038469, 4.75, 4.8, 4.85, 4.9, 4.95, 5.0, 5.05, 5.1, 5.15, 5.2, 5.25, 5.3, 5.35, 5.4, 5.45, 5.497787143782138, 5.5, 5.55, 5.6, 5.65, 5.7, 5.75, 5.8, 5.85, 5.9, 5.95, 6.0, 6.05, 6.1, 6.15, 6.2, 6.25, 6.283185307179586];
   for i in angleList:
     light_dot(x+round(math.sin(i)*r),y+round(math.cos(i)*r),color)
   if fill:
     powR = math.pow(r,2)
     for xx in range(x-r,x+r):
       for yy in range(y-r,y+r):
         if ( (math.pow(xx-x,2)+math.pow(yy-y,2)) < powR):
           light_dot(xx,yy,color)

current_r = 0
turn = 0
while True :
    turn += 1
    current_r = int(vcnl.readProximity() * 100 / 65555)
    for i in range (current_r,current_r+3) :
        draw_circle(120,120,i,st7789.BLUE+0x10*current_r*turn,fill=0)
    if turn == 50 :
        turn = 0

其余代码文件请点此查看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1957142.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Helm(二)

一、Chart模板流程控制if_with_range 1.if 修改values.yaml cat > values.yaml <<EOF myname: yeunyi service: type: ClusterIP port: 80 myport: 8080 EOF 修改service.yaml cat > templates/service.yaml <<EOF apiVersion: v1 kind: Service met…

TC8:SOMEIP_ETS_007-008

SOMEIP_ETS_007: echoBitfields 目的 检查位字段是否能够被顺利地发送和接收。 测试步骤 Tester:创建SOME/IP消息Tester:使用method echoBitfields发送SOME/IP消息DUT:返回method响应消息,其中位字段的顺序与请求相比是反向的期望结果 3、DUT:返回method响应消息,其中位…

微软蓝屏”事件暴露了网络安全哪些问题?

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

探秘数字孪生技术在智慧校园的应用

在当今教育信息化的浪潮中&#xff0c;数字孪生技术逐渐成为智慧校园建设的重要助推器。这一技术通过构建真实世界的数字化映像&#xff0c;不仅提升了校园管理的效率&#xff0c;更为师生的日常学习生活提供了全新的体验。首先&#xff0c;数字孪生可以将校园内的各类设施、环…

七夕告白攻略:天使智能体教你如何设计完美表白卡片!独属程序员地浪漫!

文章目录 &#x1f495;七夕浪漫告白天使&#x1f495;&#x1f495;浪漫风格的表白卡片设计&#x1f495;&#x1f495;甜蜜风格的表白卡片设计&#x1f495;&#x1f495;温馨风格的表白卡片设计&#x1f495;&#x1f495;幽默风格的表白卡片设计&#x1f495;&#x1f495;…

使用java读取本地文件内容并输出,java读取文件内容,节省内存开销

java使用FileInputStream读取本地文件内容 java使用Stream流读取本地文件内容 1.先在自己笔记本选一个目录创建文件&#xff0c;这里就选择在D盘创建一个 word.txt文件 随意输入内容例如 2.直接来直接复制代码运行 import java.io.*; import java.nio.file.Files; import ja…

rust sip电话(基于tauri 、pjsip库)

本文尝试下rust 的tauri 桌面运用 原因在于体积小 1、pjsip 提供了rust 接口官方的 rust demo 没编译出来 在git找了个sip-phone-rs-master https://github.com/Charles-Schleich/sip-phone-rs 可以自己编译下pjsip lib库替换该项目的lib 2、创建一个tauri demo 引用 [depe…

佐糖v1.7.2高级版,全能型AI图片处理App!

经常刷抖音的小伙伴应该都遇见过这种吧&#xff0c;修复老张片一张10块钱&#xff0c;老照片还原高清...这种看似很高端很神器&#xff0c;你以为真的有画师专门帮你来修复老张片吗&#xff1f;&#xff01;怎么可能...都是现在AI技术识别照片信息&#xff0c;然后给你生成的。…

全国禁毒知识竞赛--“我是答题王”竞赛规则

全国禁毒知识竞赛共分四轮&#xff0c;通过6支队伍最终分数高低&#xff0c;角逐出团队一、二、三等奖。第四轮各队派出1名代表进行车轮挑战&#xff0c;最终决出本届的“我是答题王”一、二、三等奖和个人答题王。 环节一&#xff1a;火线缉毒&a…

基于CNN的手写汉字识别系统的设计与实现

1 项目介绍 1.1 摘要 随着数字化技术的快速发展&#xff0c;手写汉字识别技术在多个领域展现出广泛的应用前景。为了提升手写汉字识别的准确率和泛化能力&#xff0c;本文通过构建一个基于卷积神经网络&#xff08;CNN&#xff09;的手写汉字识别系统&#xff0c;以应对不同书…

Nginx系列-11 HTTP消息处理流程

背景 了解Nginx处理HTTP请求的11个阶段&#xff0c;有助于理解和配置nginx、自定义模块、基于lua模块自定义功能。按如下配置&#xff0c;执行"curl http://localhost:8001/query/test.html"&#xff0c;如果读者对结果不是很确定&#xff0c;建议阅读本文。 serve…

免费pdf转word软件有哪些?5个软件帮助你快速进行文件转换

免费pdf转word软件有哪些&#xff1f;5个软件帮助你快速进行文件转换 将PDF文件转换为Word格式可以方便编辑和修改。以下是五款免费的PDF转Word软件&#xff0c;它们可以帮助你快速进行文件转换。 迅捷PDF转换器 这是一款设计简洁、操作便捷的PDF工具&#xff0c;它集成了多…

go语言day20 使用gin框架获取参数 使用自定义的logger记录日志

Golang 操作 Logger、Zap Logger 日志_golang zap-CSDN博客 目录 一、 从控制器中获取参数的几种形式 1&#xff09; 页面请求url直接拼接参数。 2&#xff09; 页面请求提交form表单 3&#xff09; 页面请求发送json数据&#xff0c;使用上下文对象c的BindJSON()方法接…

面试场景题系列--(4)设计一个支持敏感数据存储和传输安全的加解密平台--xunznux

文章目录 设计一个支持敏感数据存储和传输安全的加解密平台1. 设计背景2. 需求分析日常开发中的加解密程序常见问题解决方案具体来说系统主要用例过程和功能系统需求 3. 概要设计3.1 部署模型3.2 加解密调用流程 4. 详细设计4.1 密钥领域模型4.2 核心服务类设计4.3 加解密数据接…

张量网络碎碎念:从 SO3 到 SO2

在上两篇文献中&#xff0c;我像大家介绍了 多通道 模型在 AI for Science 任务中的应用。核心思路类似 CV 中&#xff0c;将灰白单通道拓展到 RGB 多通道&#xff0c;能够提升图片表征能力。&#xff08;见 图神经网络与分子表征&#xff1a;8. TFN&#xff09;痛点在于张量积…

昇思25天学习打卡营第4天|基础知识-数据变换 Transforms

目录 数据变换 Transforms 环境 Common Transforms Compose Vision Transforms Rescale Normalize HWC2CHW Text Transforms PythonTokenizer Lookup Lambda Transforms 补充知识 map方法&#xff1a; lambda函数 filter() 函数 数据变换 Transforms 通常情况下&…

新手小白也能做!十大跨境电商平台推荐

梦想着将你的商品推向世界吗&#xff1f;跨境电商不仅是一门生意&#xff0c;更是一场文化和创新的交流。但作为新手&#xff0c;面对众多平台&#xff0c;你可能会有些迷茫。别担心&#xff0c;我们为你精选了几个全球知名的跨境电商平台&#xff0c;从入驻条件到开店成本&…

【windows11禁止自动更新(重启自动更新)】

第一种&#xff1a; 鼠标点击我的电脑点管理&#xff0c;然后就打开了计算机管理&#xff0c;将Windows Update改成禁用&#xff0c;然后确定&#xff0c;重启。 第二种方法&#xff1a; 下载地址:下载地址 下载好之后点击下载的那个应用程序**(点了之后就可以删掉了&#…

Mysql 输出本月初至当前的全部天数

代码&#xff1a; SELECT DATE_FORMAT(DATE_ADD(CONCAT(DATE_FORMAT(CURDATE(), "%Y-%m-01")),INTERVAL (CAST(help_topic_id AS SIGNED)) DAY),%Y-%m-%d) as DATE FROMmysql.help_topic WHERE help_topic_id < TIMESTAMPDIFF(DAY, CONCAT(DATE_FORMAT(CURDATE…

【软件测试】--接口测试

1. 接口用例设计 接口测试的测试点 功能测试 单接口功能&#xff1a; 手工测试中的单个业务模块&#xff0c;一般对应一个接口 登陆业务 --> 登陆接口加入购物车业务 --> 加入购物车接口订单业务 --> 订单接口支付业务 --> 支付接口 借助工具、代码。绕开前端界面…