0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分享一种单片机IO口测量外部电阻的方法

冬至子 来源:TsinghuaJoking 作者:卓晴 2023-11-24 16:42 次阅读

一、前言

在以前的有些单片机应用中,有的时候会遇到 AD 端口资源不够用的情况,但又需要测量电阻的大小。比如一个热敏电阻的阻值。有人给出了一个利用两个 IO 端口完成电阻精确测量的一个老的方法。下面通过实验来测试一下这个古老的 IO 端口测量电阻的方法。

二、测量原理

测量原理比较简单。使用两个单片机IO口,连接两个电阻,向同一个电容充电。设置一个IO口为输出端口,另一个为输入端口。输出端口通过连接的电阻向电容充电。电容上的电压上升,当超过一定阈值,输入端口逻辑电平就会变成1。这个充电时间与 终止电压、阈值电压以及 RC对应的时间常数有关系。具体数值由这个公式决定。这个过程再测量一遍。

对应的时间与R2成正比。因此,两次时间的比值,就等于电阻的比值。如果已知其中一个电阻阻值,另外一个电阻便可以根据时间比值计算出来。这就是IO口测量电阻的基本原理。

image.png

三、实验结果

1、端口阈值电压

这是 STM32F030K6 单片机,给它端口 PF0 施加一个三角波。程序循环查询输入逻辑电平,并在 PF1 输出反向逻辑。可以看到单片机对输入信号进行了离散化。上升和下降具有一定的回滞特性。回滞电压大约是 200mV。

640 (1).gif
▲ 图1.3.1 单片机端口的阈值电压`

2、测量元器件

下面利用F030 单片机的 PF0, PF1 两个管脚,来测量电阻。测试一下这种方式测量的精度。

实验中需要一个电容和两个电阻。电容容值为 313.8nF,电阻1 的阻值为 19.545kΩ; 电阻2的阻值为 4.718kΩ。将它们安装在面包板上进行测试。

image.png

电路器件参数
电容C:313.8nF
电阻R1:19.545k
电阻R2:4.718k

电容一端接地,另外一端与两个电阻相连。两个电阻分别与单片机的 PF0,PF1 端口相连。下面对单片机进行软件编程。利用其中的定时器作为时标,对延迟计时。

image.png

PF0管脚连接R2,PF1连接R1。设置PF0 为输出端口,PF1 为输入端口。周期改变PF0高低电平。分别测量 PF0,以及电容上的电压信号。可以看到电容上的电压呈现充电曲线。时间常数大约为 1.5ms。根据已知器件数值,可以看到与测量的结果是相符合的。

image.png

这是电阻2对电容的充放电曲线。下面测量电阻1对电容的充放电过程。由于电阻1的阻值为20k欧姆,所以对应的充放电过程就比较慢,时间常数大约是 R2对应的时间常数的4倍。为 6.3ms。在测量过程中,两个端口同时对电容进行放电。放电时间取20ms。

image.png

3、测量单片机软件

测量软件先将 PF0,PF1 输出 0 电平,对于电容进行放电。然后将其中一个设置为输入端口,另外一个置为高电平,对电容充电。同时启动定时器1进行计时。在此过程中,监视输入端口逻辑电平是否为 1。当输入端口变为1时,停止定时器,并读取时间。然后再进行放电,更换另外一个端口为输入端口。测试充电时间。这是测量 PF0 和 电容上电压信号。可以看到两个充放电过程。黄色曲线是 PF0电压信号,青色是电容上的充放电电压信号。这是 PF0 作为输出端口,PF1作为输入端口时的测量过程。这两个充电时间与电阻成正比。

这是给出的测量结果,第一个是 电阻1 对应的充电时间。第二个是电阻2 对应的充电时间。它们的比值在4.1左右。根据前面测量的 R1,R2 的阻值,对应的比值大约为 4.143. 由此可以看到测量时间比值与电阻比值接近。

image.png

测试 298 个数据进行统计。数据的平均值为 4.119,标准方差为 0.043。测量平均值比实际电阻比值 4.143 小了 0.6% 左右。

数据统计结果:
测量次数:298
平均值:4.119
标准方差:0.043

总结

本文测试了利用单片机 IO 口测量电阻的方法。单片机平台是 STM32F030K6。测量得到的电阻充放电比值 比 电阻值的比值小了 0.6%左右。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6030

    文章

    44486

    浏览量

    631853
  • 热敏电阻
    +关注

    关注

    14

    文章

    1122

    浏览量

    101411
  • 定时器
    +关注

    关注

    23

    文章

    3230

    浏览量

    114311
  • 电容充电
    +关注

    关注

    0

    文章

    68

    浏览量

    8562
  • 阈值电压
    +关注

    关注

    0

    文章

    73

    浏览量

    51342
收藏 人收藏

    评论

    相关推荐

    单片机开发设计之一种扩展微处理器(单片机外部中断接口的方法

    一种扩展微处理器/单片机外部中断接口的方法、普通单片机对数字量输入信号的处理普通的微处理器(例
    发表于 10-28 19:56

    AVR单片机与PIC单片机IO的操作方法有何不同?

    如何去操作51单片机IO、AVR单片机IO与PIC单片机
    发表于 07-07 07:34

    单片机IO概述

    是人机交互的接口,I为输入、O为输出,我们对IO的操作,就是读和写,读就是读IO的引脚状态,写就是把0或者1写入IO
    发表于 11-10 06:26

    单片机IO介绍

    单片机IO介绍
    发表于 02-14 16:54 24次下载

    一种实用的单片机矩阵键盘设计

    则作为输入。矩阵键盘的优点是节约单片机IO,例如普通键盘8个IO只能用作8个按键,而矩阵键盘能作16个按键。 本文以51
    发表于 11-24 07:42 749次阅读

    51单片机、AVR单片机和PIC单片机IO操作

    和PIC单片机IO的操作的方法.51单片机IO
    发表于 02-20 20:25 1.1w次阅读
    51<b class='flag-5'>单片机</b>、AVR<b class='flag-5'>单片机</b>和PIC<b class='flag-5'>单片机</b>的<b class='flag-5'>IO</b><b class='flag-5'>口</b>操作

    如何使用单片机扩展IO的详细资料说明

    个按键对应IO,那么可想而知,按键所占的IO的数量是很大的。单片机
    发表于 07-16 17:39 15次下载
    如何使用<b class='flag-5'>单片机</b>扩展<b class='flag-5'>IO</b><b class='flag-5'>口</b>的详细资料说明

    PIC单片机以及51和AVR单片机IO操作方法解析

    51单片机IO的结构比较简单,每个IO只有IO
    发表于 03-06 18:37 3045次阅读

    单片机IO操作总结

    是人机交互的接口,I为输入、O为输出,我们对IO的操作,就是读和写,读就是读IO的引脚状态,写就是把0或者1写入IO
    发表于 11-05 13:06 31次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>IO</b><b class='flag-5'>口</b>操作总结

    单片机IO输入输出模式判断

    要判断单片机IO输入输出模式,是要判断单片机IO电平由谁决定的,看是由
    发表于 11-17 10:21 16次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>IO</b><b class='flag-5'>口</b>输入输出模式判断

    关于stm32单片机准双向IO配置

    我们在开始学习51内核的单片机的时候就知道,p0的引脚都是双向IO,P1,P2,P3的IO
    发表于 12-24 19:19 19次下载
    关于stm32<b class='flag-5'>单片机</b>准双向<b class='flag-5'>IO</b><b class='flag-5'>口</b>配置

    单片机4个IO的作用

    单片机4个IO的作用  单片机是嵌入式系统中的一种重要元器件,其可以实现数据处理、控制和通信等功能。作为
    的头像 发表于 09-22 16:21 7087次阅读

    单片机IO不够用了怎么办?如何扩展单片机IO

    单片机IO不够用了怎么办?如何扩展单片机IO单片
    的头像 发表于 10-24 11:49 6857次阅读

    单片机io的四工作状态

    单片机的I/O工作状态是单片机编程和硬件操作中非常重要的部分,它决定了单片机如何与外部设备进
    的头像 发表于 09-14 14:24 931次阅读

    单片机io输出电流多大

    单片机IO的输出电流大小会受到多种因素的影响,包括单片机的型号、IO的配置模式以及
    的头像 发表于 09-14 14:29 987次阅读