TS-300B浊度传感器详解(STM32)
目录
一、介绍
二、传感器原理
1.原理图
2.引脚描述
三、程序设计
main文件
ts.h文件
ts.c文件
四、实验效果
五、资料获取
项目分享
一、介绍
TS-300B浊度传感器介绍:
浊度是指溶液对光线通过时所产生的阻碍程度,它包括悬浮物对光的散射和溶质分子对光的吸收。TS-300B浊度模块是用来测量水中杂质含量的传感器,它通过测量水中悬浮固体总量(TSS)的变化,通过光透过率和散射率来检测悬浮颗粒物。随着TSS增加,液体浊度水平增加。浊度传感器常用在洗碗机、洗衣机等需要检测水质浑浊度的场景。
以下是TS-300B浊度传感器的参数:
名称 | TS-300B浊度传感器 |
工作电压 | DC 5V |
工作电流 | 40mA(MAX) |
响应时间 | < 500ms |
工作温度 | 5℃~90℃ |
模拟输出 | 0~4.5V |
数字输出 | 高/低电平信号(可调电位器) |
TSW-30 浊度检测探头介绍:
传感器模块配套浊度传感器型号为TSW-30,技术参数如下表所示(25℃)
以下是TSW-30 浊度检测探头的参数:
技术参数 | TSW-30 |
测量范围(NTU) | 0~1000±30 |
红外发射二极管 (峰值发射波长) | 940nm |
光敏二极管 (峰值发射波长) | 880nm |
红外发射二极管型号 | EL-23G(KODENSHI) |
光敏二极管型号 | ST-23G(KODENSHI) |
哔哩哔哩视频链接:
TS-300B浊度传感器(STM32)
(资料分享见文末)
二、传感器原理
1.原理图
TS-300B浊度传感器利用光学原理,通过溶液中的透光率和散射率来综合判断浊度情况。传感器内部是一个红外线对管,光接收端把透过的光强度转换为对应的电流大小。
传感器默认是模拟信号输出模式,在高浊度的液体中输出值会降低。绿色方框中的焊点可以用来设置模拟输出或者高低电平输出。默认是模拟(焊点断开),讲焊盘中间的焊点短接,可以设置为高低电平输出。这是调节电位器可调节阈值控制输出状态。
2.引脚描述
引脚名称 | 描述 |
V | 接电源正极(5V) |
O | 输出(AO/DO) |
G | 接电源负极 |
三、程序设计
1.使用STM32F103C8T6读取TS-300B浊度传感器采集的数据,通过OLED上显示
TS | PA0 |
OLED_SCL | PB11 |
OLED_SDA | PB10 |
main文件
#include "stm32f10x.h"
#include "led.h"
#include "usart.h"
#include "delay.h"
#include "oled.h"
#include "ts.h"
#include "adcx.h"/*****************辰哥单片机设计******************STM32* 项目 : TS-300B浊度传感器实验 * 版本 : V1.0* 日期 : 2025.2.2* MCU : STM32F103C8T6* 接口 : 参看ts.h * BILIBILI : 辰哥单片机设计* CSDN : 辰哥单片机设计* 作者 : 辰哥 **********************BEGIN***********************/float value;
u8 buff[30];//参数显示缓存数组
float ts_data;int main(void)
{ SystemInit();//配置系统时钟为72M delay_init(72);LED_Init();LED_On();TS_Init();USART1_Config();//串口初始化OLED_Init();printf("Start \n");delay_ms(1000);OLED_Clear();//显示“TS:”OLED_ShowString(0,0,"TS:",16,1);while (1){LED_Toggle();value = TS_GetData(); printf("TS: %f\r\n",value);OLED_ShowNum(60,0,value,4,16,1);delay_ms(200);}}
ts.h文件
#ifndef __TS_H
#define __TS_H
#include "stm32f10x.h"
#include "adcx.h"
#include "delay.h"
#include "math.h"/*****************辰哥单片机设计******************STM32* 文件 : TS-300B浊度传感器h文件 * 版本 : V1.0* 日期 : 2025.2.2* MCU : STM32F103C8T6* 接口 : 见代码 * BILIBILI : 辰哥单片机设计* CSDN : 辰哥单片机设计* 作者 : 辰哥**********************BEGIN***********************/#define TS_READ_TIMES 10 //TS浊度传感器ADC循环读取次数
#define TS_K 2047.19/***************根据自己需求更改****************/
// TS GPIO宏定义#define TS_GPIO_CLK RCC_APB2Periph_GPIOA
#define TS_GPIO_PORT GPIOA
#define TS_GPIO_PIN GPIO_Pin_0
#define ADC_CHANNEL ADC_Channel_0 // ADC 通道宏定义/*********************END**********************/void TS_Init(void);
float TS_GetData(void);#endif /* __TS_H */
ts.c文件
#include "ts.h"/*****************辰哥单片机设计******************STM32* 文件 : TS-300B浊度传感器c文件 * 版本 : V1.0* 日期 : 2024.2.2* MCU : STM32F103C8T6* 接口 : 见代码 * BILIBILI : 辰哥单片机设计* CSDN : 辰哥单片机设计* 作者 : 辰哥**********************BEGIN***********************/void TS_Init(void)
{{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd (TS_GPIO_CLK, ENABLE ); // 打开 ADC IO端口时钟GPIO_InitStructure.GPIO_Pin = TS_GPIO_PIN; // 配置 ADC IO 引脚模式GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; // 设置为模拟输入GPIO_Init(TS_GPIO_PORT, &GPIO_InitStructure); // 初始化 ADC IOADCx_Init();}}uint16_t TS_ADC_Read(void)
{//设置指定ADC的规则组通道,采样时间return ADC_GetValue(ADC_CHANNEL, ADC_SampleTime_55Cycles5);
}float TS_GetData(void)
{float tempData = 0;float TS_DAT;for (uint8_t i = 0; i < TS_READ_TIMES; i++){tempData += TS_ADC_Read();delay_ms(5);}tempData /= TS_READ_TIMES;TS_DAT = (tempData/4096.0)*3.3;TS_DAT = -865.68*TS_DAT+TS_K;if(TS_DAT<35) TS_DAT = 0;return TS_DAT;}
四、实验效果
五、资料获取
项目分享
相关文章:

TS-300B浊度传感器详解(STM32)
目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 三、程序设计 main文件 ts.h文件 ts.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 TS-300B浊度传感器介绍: 浊度是指溶液对光线通过时所产生的阻碍程度,它包括悬浮物对光的散射和…...
【特殊场景应对8】LinkedIn式动态简历的利弊分析:在变革与风险间走钢丝
写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算有用,大家基本都能拿到想要的offe…...

Unity Paint In 3D 入门
插件版本4.1.8 快速开始 这是一个强大的,可自由涂鸦的Unity插件. 步骤1 任何带有 MeshFilter MeshRenderer 或 SkinnedMeshRenderer 的 GameObject 均可被喷涂。 方法1 为 GameObject 添加 CwPaintableMesh 组件。 方法2 点击 MeshRenderer 或 Skinne…...
风车邮箱系统详细使用指南:Windows与Ubuntu双平台解析
风车邮箱系统V1.2使用手册 风车邮箱系统详细使用指南:Windows与Ubuntu双平台解析 前言 在日常网络活动中,我们经常需要一个临时邮箱来注册各类网站或接收验证码,但不想使用自己的真实邮箱。「风车无线邮箱系统」作为一款优秀的临时邮箱工具…...

PyMC+AI提示词贝叶斯项目反应IRT理论Rasch分析篮球比赛官方数据:球员能力与位置层级结构研究
全文链接:tecdat.cn/?p41666 在体育数据分析领域不断发展的当下,数据科学家们致力于挖掘数据背后的深层价值,为各行业提供更具洞察力的决策依据。近期,我们团队完成了一项极具意义的咨询项目,旨在通过先进的数据分析手…...

⭐Unity_Demolition Media Hap (播放Hap格式视频 超16K大分辨率视频 流畅播放以及帧同步解决方案)
播放大分辨率视频以及实现局域网视频同步是许多开发者会遇到的需求,AVPro有一个 Ultra Edition版本,也能播放Hap格式视频,之外就是Demolition Media Hap插件啦,实测即使是 7208*3808 大分辨率的视频帧率还是能稳定在30帧,它能帮助我们轻松解决…...

【数据可视化-22】脱发因素探索的可视化分析
🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个…...

kubernetes》》k8s》》Heml
Heml 资料 下载地址 安装 curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash# helm 添加 仓库 # helm repo add 仓库名称 仓库地址 helm repo add stable http://mirror.azure.cn/kubernetes/charts/ # 移除仓库 helm repo remove 仓库名…...

MySQL表的操作 -- 表的增删改查
目录 1. 表的创建2. 表的查看3. 表的修改4. 表的删除5. 总结 1. 表的创建 1.查看字符集及效验规则 2. 表的创建 CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;创建用户表1 创建用…...

GIS开发笔记(12)基于osg和osgearth实现三维地图上的轨迹线绘制
一、实现效果 二、实现原理 1.设置起点和终点,用函数模拟出轨迹点,如从武汉到长春; 2.将地理坐标点转换成为世界坐标点; 3.根据世界坐标点绘制轨迹线,并设置样式; 4.将轨迹节点挂接到根节点,并定位。 三、参考代码 void MainWindow::sltDrawTrajectory() {qDebug(...

MTKAndroid13-Launcher3 屏蔽部分app不让显示
实现Launcher3 桌面屏蔽部分内容,不让显示 文章目录 修改文件路径-实现方式基础-源码模块配置Launcher3 源码位置编译模块配置配置如下参数 属性配置:默认的Launcher3 选项配置GMS的Launcher3 配置 第三方Launcher需要默认为Launcher时候-系统Launcher3 …...

PostgreSQL 数据库备份与恢复全面指南20250424
PostgreSQL 数据库备份与恢复全面指南 在数据库管理中,备份与恢复操作对于确保数据安全性、可用性和完整性至关重要。PostgreSQL 作为一款开源关系型数据库系统,广泛应用于各行各业,尤其在现代 AI 和大数据应用中,作为数据存储的…...

专家系统的知识获取、检测与组织管理——基于《人工智能原理与方法》的深度解析
前文我们已经了解了专家系统的基本概念和一般结构,系统中有专业的知识才是专家系统的关键,接下来对专家系统中的知识是如何获取、检测、组织和管理的进行探讨。 1.专家系统的基本概念:专家系统的基本概念解析——基于《人工智能原理与方法》…...
contenthash 持久化缓存
以下是关于持久化缓存(contenthash)的深度技术解析,涵盖原理、配置策略及最佳实践,帮助我们构建高性能前端应用的缓存体系: 一、缓存机制核心原理 1. 浏览器缓存决策矩阵 触发条件缓存行为对应场景URL 未变化 + 强缓存有效直接读取磁盘/内存缓存未修改的静态资源URL 变化…...

让Editplus支持squirrel语言
用EditPlus配置完实现关键字、函数、高光代码、自动完成、代码调试。先看看效果: 主要是由 nut.stx (语法文件)和 nut.acp (自动完成)两个文件 实现 Nut.stx文件内容: ---------------------------------…...
Arm GICv3中断处理模型解析
1. Targeted Distribution Model(目标分发模型) 中断会被发送到软件指定的目标PE,且仅由该PE处理。 2. Targeted List Model(目标列表模型) 主要针对于SGIs(Software Generated Interrupts,软件生成中断)中断。 多个PE可以独立接收同一个中断。 当一个PE确认(ackn…...

Leetcode 2845 题解
还是要把自己做题的思路写出来的,但是结果可能还是得去观摩一下题解,无论是大佬写的题解还是leetcode官方写的题解,看完题解后再去反思才能有收获,即使下次遇见一样的题不见得能写出来,但有思路比没思路更重要。 今天写…...

【爬虫】DrissionPage-获取douyim用户下的视频
之前看过DrissionPage,觉得很厉害,比selenium简单,适合新手。因为盲目跟风逆向,今天看了一个DrissionPage案例直播,学习一下,真香哈。 DrissionPage官网:🛰️ 概述 | DrissionPage官…...

【Python爬虫基础篇】--3.cookie和session
目录 1.cookie 1.1.定义 1.2.参数 1.3.分类 2.session 3.使用cookie登录微博 4.使用session登录 1.cookie 由于http是一个无状态的协议,请求与请求之间无法相互传递或者记录一些信息,cookie和session正是为了解决这个问题而产生。 例子࿱…...
React 文件链条
在 React 项目中,首次展示在前台的是以下文件组合作用的结果: --- ### **核心文件链条** 1. **public/index.html** - 这是浏览器实际加载的入口文件 - 包含一个 <div id"root"></div> 容器 - 通过 <script> 标…...

分数线降低,25西电马克思主义学院(考研录取情况)
1、马克思主义学院各个方向 2、马克思主义学院近三年复试分数线对比 学长、学姐分析 由表可看出: 1、马克思主义理论25年相较于24年下降10分,为355分 3、25vs24推免/统招人数对比 学长、学姐分析 由表可看出: 1、 马克思主义学院25年共接…...
微信、抖音、小红书emoji符号大全
1、Emoji 日常符号 👣👀👁️👄💋👂🦻👃👅🧠🫀🫁🦷🦴💪🦾🦿🦵&a…...

Cancer Cell|scRNA-seq + scTCR + 空间多组学整合分析,揭示CD8⁺ T细胞在免疫治疗中的“双路径” | 临床问题的组学解答
Cancer Cell|scRNA-seq scTCR 空间多组学整合分析,揭示CD8⁺ T细胞在免疫治疗中的“双路径” 👋 欢迎关注我的生信学习专栏~ 如果觉得文章有帮助,别忘了点赞、关注、评论,一起学习 近日,《Cancer Cell》…...
ubuntu(28):ubuntu系统多版本conda和多版本cuda共存
0. cuda(包括cudnn)、conda安装照常 注意: (1)多个conda不要安装到一个目录了,可以见下面的示例目录; (2)cuda(包括cudnn)不用纠结是否添加超链接 1. 需要修改环境配置…...

C# 下 using 块的作用 + VS2022 下 using 语法糖怎样工作
🔍 using 的本意是什么? using 是 C# 中用于 自动释放资源 的语法糖,适用于实现了 IDisposable 接口的对象(比如数据库连接、文件、网络流等)。 🧐 首先看下SqlSugarClient类部分源码: SqlSug…...

实体店的小程序转型之路:拥抱新零售的密码-中小企实战运营和营销工作室博客
实体店的小程序转型之路:拥抱新零售的密码-中小企实战运营和营销工作室博客 在当今数字化浪潮的冲击下,实体店面临着前所未有的挑战,但小程序的出现为实体店转型新零售带来了新的曙光。先来看一组惊人的数据,据相关统计ÿ…...

UML 类图基础和类关系辨析
UML 类图 目录 1 概述 2 类图MerMaid基本表示法 3 类关系详解 3.1 实现和继承 3.1.1 实现(Realization)3.1.2 继承/泛化(Inheritance/Generalization) 3.2 聚合和组合 3.2.1 组合(Composition)3.2.2 聚…...

15.三数之和(LeetCode)java
个人理解: 1.使用双指针做法,首先对数组进行排序 第一重for循环控制第一个数,对数组进行遍历。双指针初始化为lefti1, rigthnums.length-1。然后使用while循环移动双指针寻找合适的数。因为返回的是数,不是下标,数不能…...
Spark读取Apollo配置
--conf spark.driver.extraJavaOptions-Dapp.idapollo的app.id -Denvfat -Dapollo.clusterfat -Dfat_metaapollo的meta地址 --conf spark.executor.extraJavaOptions-Dapp.idapollo的app.id -Denvfat -Dapollo.clusterfat -Dfat_metaapollo的meta地址 在spark的提交命令中&…...

如何通过 Websoft9 应用自托管平台一键安装任意版本 Odoo?
手工安装 Odoo 的复杂流程 环境准备阶段:安装 Docker 需熟悉 Linux 系统操作,需配置软件源、解决依赖冲突; 镜像获取阶段:从 Docker Hub 拉取官方镜像时可能因网络问题失败,且需自行验证版本兼容性; 容器…...