基于单片机光纤测距系统的设计与实现

摘要 : 光纤由于其频带宽 、 损耗低及抗干扰能力强等优点已被广泛地应用在通信 、 电子及电力方面 , 是我们生产生活中必不可少的媒介。 在实际的光纤实验 、 安装 、 运营和维护工作中 , 一种精准 、 轻便和易操作的光纤测距系统显得尤为重要 。 设计中采用基于单片机的激光测距系统, 以相位式激光测距法为核心 , 包括显示模块 、 模式选择模块 、 按键输入模块 , 该系统具有激光测距、 复位 、 模式选择 、 校准 、 数值输入与显示功能 。 整个系统与传统的光纤测距仪相比有着低成本 、 轻便 、 功能人性化、 便于操作等优点 。
关键词 : 光纤 ; 相位式激光测距 ; 单片机 ; 便携式
Abstract :Optical fiber has been widely used in communications,electronics and power due to its advantages of frequency bandwidth,low loss and strong anti-interference ability.It is an indispensable medium in our production and life.In the actual optical fiber experiment,installation,operation and maintenance work,a precise,lightweight and easy -to -operate optical fiber ranging system is particularly important.In this design,a laser ranging system based on a single chip microcomputer is used,with the phase laser ranging method as the core.Including display module,mode selection module,key input module.The system has functions of laser ranging,reset,mode selection,calibration,numerical input and display.
Keywords :optical fiber,phase laser ranging,single chip computer,portable
在实际的生产生活中 , 在光纤测试 、 安装维护中 , 如何快速便捷地得知该段光纤长度显得尤为重要。 目前有多种光纤测距方法, 包括光时域反射仪 ( OTDR )、 光频域反射仪 ( OFDR )、 光低相干反射仪( OLCR ) 等   。 本设计基于单片机 , 以相位式测距法为核心, 加入多种个性化功能 , 使得该系统具有低成本 、 轻便 、 功能人性化、 便于操作等优点 。

1 相位式激光测距

相位式激光测距是用调制信号将发射激光进行调制 , 通过测量连续的被调制的光波信号在被测距离上往返所产生的相位差, 间接得测定激光的传播时间 , 从而计算出待测距离 。 原理图如图 1 、 图 2 所示 。

假设调制光波为频率为 f 的正弦波 , 根据波动方程可知 , 光在空气传播过程中产生的相位位移与待测距离 L 的关系如公式所示 :
其中 f 为正弦波频练 , L 为待测距离 , c 为光在空气中的传 播速度 。
因此通过计算可得待测距离 L 为 :
光在介质中传播频率不变 , 光在空气中折射率为 1 , 在光纤传播中, 光纤的折射率大于空气的折射率 , 与在空气中不同 , 因此在光纤测距中需要关注光纤自身的折射率。
相位式激光测距法在大多数情况下适应于中短距离的测距, 其精度可达毫米 、 微米级 , 是目前测距精度最高的一种方式 。

2 总体设计方案

为实现基于单片机的光纤测距系统 , 采用 STC89C52 单片机为处理器, 激光模块以相位式激光测距法为核心与单片机进行数据交互, 按键部分包括测距按键 、 复位按键 、 模式选择按键 、校准按键及方便用户自定义输入的 4 * 4 键盘输入矩阵 , 实现多种功能便于用户选择操作, LCD1602 显示模块可以显示光纤测距结果及用户操作选择, 如图 3 所示 。 用户通过该系统可以实现激光测距、 系统复位 、 光纤波长选择 、 对待测光纤进行系统校准等功能。
激光模块与待测光纤采用自制的双端光纤连接头 , 为双端 的 FC 圆型带螺纹接口 , 光纤双端分别与激光模块的发射端与接收端对接, 连接卡口的设计主要目的是为了让激光模块与光纤精准对接, 使激光的发射与接收损失降低 , 提高光纤测距的灵敏度与准确性。

3 硬件电路设计

3.1 电源模块

基于 LM317 的电源模块可稳定为激光模块 、 STC89C52 模块以及 LCD1602 模块供电 。 激光模块需要提供 3.3V 电 源 ,STC89C52 单片机需要提供 5V 电源 , LCD1602 模块需要提供5V 电源 。

3.2 激光模块

测距系统所需要的激光模块采用 SK80 工业级高精度激光测距传感器。 采用相位测距原理 , 利用激光在空气中的传播速度一定的原则, 进而得到与被测物之间的距离值 。 激光测距传感器测量范围为 0.03~80m , 测量精度 ( 标准差 ) 为 ±1mm , 激光波长为 635nm 。 我们采用双端测量的方式 , 用双端光纤连接头直接将光纤两端与激光模块的发射端和接收端相连。

3.3 STC89C52 单片机处理器

采用 STC89C52 的原因是该款单片机足够实现需要的功能, 并且该款单片机与 STM32 相比成本更低 , 耗能更低   。 单片机主要是接收按键的控制信息, 与激光模块进行数据的交互 , 包括指定发送以及返回数据的接收, 内部进行返回数据的计算及格式转换, 同时控制显示模块进行数据的显示 。

3.4 LCD1602 显示模块

LCD1602 显示屏是目前广泛使用的一种字符型液晶显示模块。 由字符型液晶显示屏 ( LCD )、 控制驱动主电路 HD44780及其扩展驱动电路 HD44100 , 以及少量电阻 、 电容元件和结构件等组成。 LCD1602 与单片机采用直接控制的方式 , 用以显示所测得的光纤长度和用户按键选择模式。

3.5 按键模块

按键模块包括独立按键与 4 * 4 键盘矩阵 , 分为测距按键 、复位按键、 模式选择按键 、 校准按键和 4 * 4 用户输入键盘矩阵 。测距按键实现的功能为开始激光测长, 通过单片机给激光模块发送测量指令, 测量指令包括单次测量与多次测量 , 为了模块的测长稳定, 目前采用多次测量的方式 , 持续测量 。复位按键主要的作用是, 控制激光模块的关机与开机 , 并重置 LCD1602 显示信息 , 以达到复位重新测量的目的 。模式选择按键的设置主要是为了针对不同折射率的光纤进行不同的测量计算, 模式选择按键采用循环设置的方式 , 我们设置了四种不同的设定, 包括 1.477 、 1.4719 、 1.4680 和 1.4685 等 。校准按键设置的目的是在用户不知道光纤折射率的情况下进行初步的校准, 我们在测量之前先用一根同款短的光纤进行校准, 再进行待测光纤的测长 。 我们按下校准按键后 , 可通过 4*4 按键矩阵进行实际校准光纤的长度输入 , 确认后单片机可进行折射率的计算。

4 软件编程实现

基于 C 语言进行系统的功能软件实现 , 主要包括系统初始化、 LCD 显示功能 、 I / O 通信 、 独立按键与矩阵键盘输入功能以及计算功能。 系统初始化包括单片机自身的寄存器 、 时钟与串口等的初始化, 对 LCD1602 显示屏的初始化 , 同时包括对计算使用的参数进行初始化。 LCD1602 显示部分包括指针移动 、 字符显示和字符串显示等功能。 按键部分包括了独立按键与矩阵键盘输入, 当按下独立功能按键时 , 对应的单片机 I / O 被置于低电平, 程序选择对应的功能 , 测距按键 I / O 口置于低电平后 , 单片机向激光测距模块发送持续测量指令, 同时持续接收串口返回信息, 将返回的信息进行解析 , 与初始化的折射率等参数计算后得到具体的距离数值, 这时通过 LCD1602 显示出来 。 模式选择功能, 程序采用循环的方式进行多种不同的参数设定 , 更新计算使用的参数。 对于校准功能 , 当我们按下校准按键后 , 程序进入用户输入部分, 此时其他按键失效 , 用户使用矩阵键盘进行数字输入, 程序检测输入 , 当用户按下确认键后 , 程序将用户的输入更新到计算参数中。 软件实现框图如图 4 所示 。

5 结束语

本文基于 STC89C52 单片机实现了激光测距 、 模式参数选择、 系统复位 、 用户自定义校准 、 数值解析计算 、 结果显示等功能 ,使用户可以快速便捷地进行光纤测距。 本系统的设计与实现为光纤测距提供了一种低成本、 轻便 、 功能人性化 、 便于操作的方法 。

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

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

相关文章

【系统架构设计师】七、信息安全技术基础知识(信息安全的概念|信息安全系统的组成框架|信息加解密技术)

目录 一、信息安全的概念 1.1 信息安全的基本要素和范围 1.2 信息存储安全 1.3 网络安全 二、信息安全系统的组成框架 2.1 技术体系 2.2 组织机构体系 2.3 管理体系 三、 信息加解密技术 3.1 数据加密 3.2 对称加密技术 3.3 非对称加密算法 3.4 数字信封 3.5 信…

springcloud-sentinel 限流组件中文文档

快速开始 欢迎来到 Sentinel 的世界!这篇新手指南将指引您快速入门 Sentinel。 Sentinel 的使用可以分为两个部分: 核心库(Java 客户端):不依赖任何框架/库,能够运行于 Java 8 及以上的版本的运行时环境&#xff0c…

如何在Spring Boot中优雅处理异常

如何在Spring Boot中优雅处理异常 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨在Spring Boot应用程序中如何优雅地处理异常,以…

音视频入门基础:H.264专题(6)——FFmpeg源码:从H.264码流中提取NALU Header、EBSP、RBSP和SODB

音视频入门基础:H.264专题系列文章: 音视频入门基础:H.264专题(1)——H.264官方文档下载 音视频入门基础:H.264专题(2)——使用FFmpeg命令生成H.264裸流文件 音视频入门基础&…

Windows 10,11 Server 2022 Install Docker-Desktop

docker 前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 docker-compose Compose 是用于定义和运行…

centos 7.2 离线部署 mysql 5.7.37

1.安装依赖 清楚mysql从图的依赖 rpm -qa|grep mariadb 存在冲突依赖,进行卸载 rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64 确认gcc版本 ldd --version 安装mysql5.7所需要的依赖 mkdir -p /root/AllInstalls 只下载不安装,用于放到其他机器: yum inst…

Stateflow快速入门系列(-):构造并运行 Stateflow 图

Stateflow 提供了一种图形语言,包括状态转移图、流程图、状态转移表和真值表。您可以使用 Stateflow 来说明 MATLAB 算法和 Simulink 模型如何响应输入信号、事件和基于时间的条件。 Stateflow 使您能够设计和开发监控、任务调度、故障管理、通信协议、用户界面和混…

相亲交友微信小程序系统源码

开启浪漫邂逅新篇章 相亲交友——随着年龄的增长,越来越多的人开始关注自己的婚姻问题,为了提高相亲服务的质量,这款应用就可以拓宽在线社交网络范围。​ 💑 引言:邂逅爱情的新方式 在繁忙的都市生活中,寻…

十年,亚马逊云科技合作伙伴网络开启AI新征程

“十年之前,你不认识我,我不认识你,因为云计算我们携手并肩;十年之后,我们仍是伙伴,更是朋友,因为人工智能再次起程。”这就是今天的亚马逊云科技与其合作伙伴的真实写照。 2024年是亚马逊云科技…

Java并发编程:避免常见的陷阱

Java并发编程:避免常见的陷阱 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! Java并发编程是现代软件开发中不可或缺的一部分,它能够充…

板凳-------unix 网络编程 卷1-1简介

unix网络编程进程通信 unpipc.h https://blog.csdn.net/u010527630/article/details/33814377?spm1001.2014.3001.5502 订阅专栏 1>解压源码unpv22e.tar.gz。 $tar zxvf unpv22e.tar.gz //这样源码就被解压到当前的目录下了 2>运行configure脚本,以生成正确…

js+php 上传文件到服务器

https://andi.cn/page/621473.html

喂饭级AI神器!免代码一键绘制图表,文本数据秒变惊艳视觉盛宴!

由于目前的AI生成图表工具存在以下几个方面的问题: 大多AI图表平台是纯英文,对国内用户来说不够友好;部分平台在生成图表前仍需选择图表类型、配置项,操作繁琐;他们仍需一份规整的数据表格,需要人为对数据…

“论模型驱动架构设计方法及其应用”写作框架,软考高级,系统架构设计师

论文真题 模型驱动架构设计是一种用于应用系统开发的软件设计方法,以模型构造、模型转换和精化为核心,提供了一套软件设计的指导规范。在模型驱动架构环境下,通过创建出机器可读和高度抽象的模型实现对不同问题域的描述,这些模型…

Java中的数据库连接与优化

Java中的数据库连接与优化 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在Java应用程序开发中,数据库连接是关键的一环,性能的好坏直…

【Win】双系统新体验:Hyper-V上macOS安装攻略

在虚拟化的世界里,Hyper-V是探索不同操作系统的一扇大门。尽管macOS并不是Hyper-V官方支持的来宾操作系统,但这并未阻挡技术探索者的脚步。他们通过不懈努力,开辟出了一条条通往macOS的非官方路径。这些路径或许曲折,却为那些渴望…

vue项目纯前端实现导出pdf文件

1、下载插件 npm install html2canvas npm install jspdf2、创建htmlToPdf.js,地址:src/utils/htmlToPdf.js import html2Canvas from html2Canvas import JsPDF from jspdf export default { install(Vue, options) { Vue.prototype.getPdfFromH…

小阿轩yx-MySQL索引、事务

小阿轩yx-MySQL索引、事务 MySQL 索引介绍 是一个排序的列表,存储着索引的值和包含这个值的数据所在行的物理地址数据很多时,索引可以大大加快查询的速度使用索引后可以不用扫描全表来定位某行的数据而是先通过索引表找到该行数据对应的物理地址然后访…

Ubuntu挂载window的网络共享文件夹爱

1.进入win10创建一个用户smb密码也是smb 2.右键进入文件夹共享 3.进入Ubuntu安装支持cifs-utils sudo apt update sudo apt install cifs-utils 4.sudo mkdir /mnt/shared 5.挂载: sudo mount -t cifs -o usernamesm bpasswordsmb //172.16.11.37(windowsIP)/s…

Android SurfaceFlinger——动画播放准备(十五)

BootAnimation 本质上是一个线程,执行 run 之后,会先执行 readyToRun,接着执行 treadLoop 方法。 一、线程启动 1、BootAnimation 源码位置:/frameworks/base/cmds/bootanimation/BootAnimation.cpp readyToRun status_t BootAnimation::readyToRun() {// 添加默认资源…