【锻体篇-硬件开发】获取精准的电流信号 -- 电路设计与注意事项

2023-05-16

朋友像棉被,感到温暖是因为你自己的温度。

概述

在嵌入式开发领域,一个设计优秀的硬件就像一副健壮的躯体,配以聪明的大脑(软件),就能够发挥出其强大的威力。
对于电流信号,电气特性中的基本元素,我们经常需要对其进行测量,然后根据其值得到一些有用的信息,诸如功率、功耗等等。

一般来说,不同的产品的电流形式各有不同,大小不同、形式不同(直流或者交流)等等,根据对应情况也有不同的测量方法。比如我们常在示波器中使用的电流钳采用的就是电磁感应的方式,这种方式是非接触的,比较安全,也不会对电路有太多干扰,但是精度做的很高的这种设备都比较贵。也有经常使用万用表来串接测量的,这种方式相当于串接电阻得到电压,然后利用电压值除以电阻值得到电流值,这种方式比较容易实现,也比较便宜,就是比较麻烦,也给电流回路串入了电阻,会带来一定的影响。

本文今天要谈的电流测量电路和万用表测量的电流原理基本一致,也是通过测量固定阻值电阻的电压反向推出电流的大小,值得说明的是这里的电压测量一般是通过 MCUAD 采样实现的,至于细节,我慢慢道来。

实现

基本原理

首先我们需要在要测量的电流回路上串入一个采样电阻,这样我们就能够该采样电阻的电压,比如下图,当有 100mA 的电流流过该电阻时,会产生 0.1(A) * 0.02 (欧) = 0.002(V) 的电压,我们通过采集到电压值,除以电阻就是电流值。
在这里插入图片描述

这里需要注意的是采样电阻的选取问题,主要是注意如下事项:

  • 阻值要小,这样对整个电流回路的阻碍就小,一般是毫欧级别的。
  • 精度要高,因为我们反推得到电流的公式中默认的电阻是绝对精确的,一般选取的精度在 1% 以上。

电流信号放大电路

通过上面计算可知,我们得到的电压一般都比较小,如果直接让 MCU 直接采该信号,用于一般 MCU 的基准为 3.3V,且 ADC 的位数一般为 8、10、12位数,这个电压信号是相当地小,也就是 MCU 采不准,这时就需要放大电路闪亮登场了。

先来看看两种常见的放大电路,反向比例放大器和同相比例放大器。

反向比例放大电路

反向放大的电路形式如下,输入与输出的极性是相反的。
在这里插入图片描述
我们可以得到的 Vout = - (R3 / R2) * Vin

同相比例放大电路

同相比例放大电路形式如下,输入与输出的极性是相同的。
在这里插入图片描述
这样我们可以得到 Vout =(1 + R3 / R2)* Vin

两种放大电路的注意事项

  • 值得注意的是,这两个电路的一端我选择的是接地,这样是方便 MCU 对放大电路放大后的电路进行 AD 采样,因为 MCU 也是接地的,电压以电路的地作为基准。
  • 虽然是接地,其实我们放大的是电阻的两端的电压,其实算是差分信号,在 PCB 布线的时候,电阻两端到运放两端的线应该单独拉线,且尽量并排一起走。(因为这里电阻一端接地,而板子有许多都是地的地方,而拉到运放一端接的地不能随意接板子的地,而只能是采样电阻单独拉线的地,这能保证采集到的信号更准确)。
  • 通常为了减小偏置电流带来的影响,还有就是降低噪声和温飘的影响,这里的电阻一般取值在 10K~100K 的区间。
  • R1 的阻值不是随意选取的,取得值是 R2R3 的并联值,这个电阻选取还是蛮重要的,之前遇到过这个值如果随意选取会出现电流的不同测量就不准的问题,按这个规则选取就能得到比较好的稳定性了。

基准电压的选取

对于 MCUAD 模块的基准电压一般为 MCU 的供电电压,由于这个电压一般波动蛮大的,所以也会影响到测量到的型号的准确值。
针对这种情况,这里有几种方式应对。

  • MCU 内部存在一个比较准的电压,且可以作为内部基准,将 AD 模块的基准电压切换至该电压即可。
  • MCU 内部存在一个比较准的电压,但不可以作为内部基准,但 AD 模块有通道可以测量该点电压,我们可以利用通过测量该电压推出一个校准值,用这个值去校准我们的目标信号,很多 STM32 的单片机都常用这样的我方式,我就不赘述了。
  • MCUAD 模块支持外部基准电压,我们可以为 AD 模块接入一个比较准且稳定的电压源。这样的方式能够大大提升对信号采集的准确度,缺点就是需要 MCU 支持,且需要增加一个精度较高的基准电压源,比较费钱。一般常用的是 TL431,这里有一篇使用指导:《【锻体篇-硬件开发】TL431可控精密稳压源的应用和注意事项》:https://blog.csdn.net/m0_37697335/article/details/124238193。

参考资料

  • 《【锻体篇-硬件开发】TL431可控精密稳压源的应用和注意事项》:https://blog.csdn.net/m0_37697335/article/details/124238193
  • 《运放的阻抗匹配》:https://blog.csdn.net/liuyaoningabcyy/article/details/84334046
  • 《运算放大器输入电阻如何选取》:https://www.elecfans.com/d/728652.html
  • 《运放设计十坑,别说你没遇到过》:https://www.szlcsc.com/info/11396.html

更多精彩内容,更多惊喜,请关注公众号《嵌入式小散修》
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【锻体篇-硬件开发】获取精准的电流信号 -- 电路设计与注意事项 的相关文章

  • C++工程,CMakelist.txt,CMake添加所有头文件,CMake递归添加头文件,CMake查找所有源文件

    CMakelist txt cmake minimum required span class token punctuation span VERSION 3 5 span class token punctuation span pro
  • git 本地回退到某个版本

    master xff1a Git 的默认分支 xff0c init 命令默认创建 origin xff1a Git 克隆的仓库服务器的默认名字 github将master改名main主要是因为master and slave术语不够政治正确
  • IIC通信协议总结(详细说明完整过程)

    IIC协议简介 IIC xff08 inter integrated Circuit集成电路总线 总线支持设备之间的短距离通信 xff0c 用于处理器和一些外围设备之间的接口 xff0c 它需要两根信号线来完成信息交换 IIC的一个特殊工艺
  • cmake添加资源文件

    一 cmake添加资源文件 1 在最外层cmakelist中添加资源文件目录 images ADD SUBDIRECTORY images 2 在资源文件cmakelist中添加images qrc编译方式 Files SET IMAGE
  • ROS串口数据读取发送

    记录一下 包含串口数据HEX形式的读取 xff0c 发送 xff1b 读取后通过节点发送消息 myserialnode cpp include 34 ros ros h 34 include lt serial serial h gt in
  • S-MSCKF代码阅读

    阅读学习代码 文章目录 第一部分 xff1a 相关库函数介绍1 pluginlib理解与示例2 nodelet3 launch文件4 Eigen内存分配器5 std map的第三个参数6 image transport7 message f
  • Windows+COLMAP三维重建教程【exe安装】

    一 步骤 1 下载COLMAP COLMAP COLMAP 2 解压并运行COLMAP 3 稀疏三维重建 xff0c 生成稀疏图 4 稠密图三维重建 xff0c 生成稠密图 二 可能出现的问题 1 Dense stereo reconstr
  • 程序基础:正则表达式

    一 正则表达式元字符 1 匹配字符 xff1a xff1a 任意一个字符 abc xff1a 表示匹配一个字符 xff0c 这个字符必须是abc中的一个 a zA Z xff1a 表示匹配一个字符 xff0c 这个字符必须是a z或A Z这
  • 【Ubuntu版】CMake安装教程

    一 参考资料 Windows版 CMake安装教程 二 具体步骤 1 离线安装 1 1 Ubuntu系统 官网下载CMake软件包 CMake官网 解压软件包 cmake可执行性文件 home yoyo 360Downloads cmake
  • Jetson TX2刷机教程

    一 参考资料 Jetson TX2官方文档 Jetpack开发者文档 Jetson官方安装教程 jetson tx2刷机 TX2 NVIDIA Jetson Tx2刷机指南 xff08 JetPack 4 4 SDK manager 1 4
  • FFmpeg教程(超级详细版)

    一 参考资料 通过ffmpeg把图片转换成视频 FFmpeg命令 一 使用filter complex命令拼接视频 FFmpeg 视频处理入门教程给新手的 20 多个 FFmpeg 命令示例 FFmpeg命令行转码 ffmpeg 翻译文档
  • yolov5+Deepsort实现目标跟踪

    一 参考资料 项目源码 pytorch yolo5 43 Deepsort实现目标检测和跟踪 工程落地 YoloV5 43 deepsort 43 Fast ReID 完整行人重识别系统 xff08 三 xff09 yolov5 deeps
  • Jetson Xaiver NX相关教程(详细版)

    一 参考资料 Jetson nano NX 部署Yolo v5过程记录 二 相关介绍 三 软件安装 2 1 jetson stats 2 1 1 相关介绍 jetson stats是一个开源软件包 xff0c 用于监测和控制Nvidia J
  • 编译C++程序(经验版)

    一 g 43 43 编译 span class token comment 编译 span g 43 43 文件名 g 43 43 helloWorld cpp g 43 43 文件名 o 输出文件名 g 43 43 open video
  • 【WSL2教程】WSL迁移到非系统盘

    一 问题引入 默认情况下 xff0c WSL会安装在C盘 xff08 系统盘 xff09 xff0c 而C盘空间有限 xff0c 随着WSL子系统的使用 xff0c C盘空间越来越少 xff0c 最后有可能出现C盘不足导致WSL系统崩溃 有
  • 华为Ascend昇腾适配PyTorch框架

    一 参考资料 PyTorch用户文档 PyTorch网络模型移植 amp 训练指南 AscendPyTorch 第三方框架适配 二 重要说明 CPU架构为ARM架构时 xff0c 由于社区未提供ARM架构CPU版本的torch包 xff0c
  • 提高工作效率的宝藏网站和宝藏工具

    一 好用的网站 面包多 面包多 创作者在面包多 xff0c 通过出售课程 xff0c 文章 xff0c 绘画 xff0c 创意作品 xff0c 软件 xff0c 电子书 xff0c 音乐 xff0c 游戏 xff0c 咨询服务 xff0c
  • ubuntu服务器相关教程

    二 常用操作 1 ssh相关 span class token comment 安装ssh服务 span span class token function sudo span span class token function apt g
  • Qt学习:Qt5.9.2+vs2017移植usb第三方库

    第三方库Hidapi用于实现usb通信 xff0c 将它移植成功以用来实现qt做一个usb通信的上位机 首先是下载hidapi 0 7 0源码 xff1a http www signal11 us oss hidapi 源码文件夹截图如下
  • 超级实用的C++学习网站

    重要说明 xff1a 该博客长期更新 xff0c 方便读者查阅 xff01 一 参考资料 学习C 43 43 这几个网站足矣 二 C 43 43 学习网站 C 43 43 中文网 cppreference 当之无愧的C 43 43 学习第一

随机推荐

  • 目标检测中NMS(非极大抑制)的概念理解

    参考博客 物体检测中常用的几个概念迁移学习 IOU NMS理解 目标定位和检测系列 xff08 3 xff09 xff1a 交并比 xff08 IOU xff09 和非极大值抑制 xff08 NMS xff09 的python实现 一 NM
  • VMware虚拟机上不能使用CUDA/CUDNN

    参考博客 VMware虚拟机上不能使用CUDA Linux Ubuntu 系统查看显卡型号 一 综述 虚拟机的显卡是虚拟的 xff0c 不能使用CUDA 虚拟机上装Nvidia显卡驱动会导致其他驱动全都不能用 xff0c 所以不能在虚拟机上
  • CUDA、CUDNN在windows下的安装及配置

    参考文章 全网最详细 Windows 安装 TensorFlow2 0 GPU 详细教程 Wind10安装anaonda 43 cuda10 1 43 cudnn 43 pytorch 43 tensorflow gpu win10 43
  • windows下CUDA的卸载以及安装

    参考博客 windows 7 下cuda 9 0 卸载 cuda8 0 安装 一 前言 对于一个刚玩CUDA菜鸟来说 xff0c 安装问题就是一个巨大的坑 xff0c 安装过程里面有很多需要注意的细节 xff0c 很多自定义的选项 xff0
  • 算法高级(35)-最优路径选择-导航软件是怎么选择最佳路线的?

    前面我们学习了图算法中的最短路径算法 xff0c 可以参考我的这篇博文常用的图算法 xff1a 最短路径 Shortest Path xff0c 解决最短路的问题有以下算法 xff0c Dijkstra算法 xff0c Bellman Fo
  • FreeRTOS任务创建、删除、挂起、恢复源码分析

    目录 1 任务控制块 结构体TCB t 2 FreeRTOS任务创建源码分析 3 FreeRTOS任务删除源码分析 4 FreeRTOS任务挂起源码分析 5 FreeRTOS任务恢复源码分析 6 任务API总结 xff08 部分 xff09
  • 【pytorch】计算一个CNN模型model的参数量,即论文中常用的#parameters

    在开始之前 xff0c 请记住 xff0c 存储量不是参数量 xff01 xff01 xff01 xff01 存储量不是参数量 xff01 xff01 xff01 xff01 存储量不是参数量 xff01 xff01 xff01 xff01
  • Android本地化字符串strings.xml文件中msgid标记的msgid属性的创建,作用和使用

    系统资源文件msgid属性 Settings res values strings xml lt string name 61 34 device info default 34 gt Unknown lt string gt Settin
  • AI必备技能-OpenCV基础讲解

    x1f389 作者简介 xff1a 目前在读计算机研究生 xff0c 研二 主要研究方向是人工智能和群智能算法方向 目前熟悉python网页爬虫 机器学习 计算机视觉 xff08 OpenCV xff09 群智能算法 然后正在学习深度学习的
  • Qt学习:QtCharts绘制动态曲线,实时更新数据与坐标轴

    前言 xff1a 很久之前写了这篇文章后一直未进行修改更新 xff0c 最近重新整理了代码和扩展了使用方式 代码路径见github https github com LYH ux Qt Projects git 下文讲述结构与一些使用要点
  • 最新Java全套开发视频教程

    适用人群 xff1a 零基础 动手能力差 不愿意错过任何java知识的编程爱好者 课程目录 xff1a 1 课前必学 到底该如何在线学习开发 xff1f 2 全套进阶课程 题库代码免费领取 3 小白入门 Java开发环境搭建 4 小白入门
  • TX2安装Psensor

    TX2安装Psensor过程 笔记备份 STEP1 xff1a 命令 xff1a sudo apt span class token operator span span class token keyword get span insta
  • ubuntu系统unzip解压缩命令

    转载链接unzip使用 1 功能作用 xff1a 解压缩zip文件 2 位置 xff1a usr bin unzip 3 格式用法 xff1a unzip Z opts modifiers file zip list x xlist d e
  • windows安装虚拟机

    1 官网下载VMware 2 安装 xff08 只修改了安装位置 xff0c 其余默认 xff09 3 新建虚拟机 1 xff09 进入目录D Software VMware VMware Workstation xff0c 双击 vmwa
  • 2019中科大数学考研复试题(回忆版)

    2019中科大数学考研复试题 xff08 回忆版 xff09 实变函数 1 平面上横坐标或纵坐标为有理数的点集测度为零 2 f n f n
  • WGS84与大地2000坐标转换(Java,C#,Dart)

    一 坐标转换的必要性 平面坐标在道路测绘 隧道测量 农业建筑业等室外勘测等方面有着广泛的应用 各行业基本都会涉及到移动端测量之后不能满足屏幕坐标 所以需要经纬度的转换 移动端勘测结果都是WGS84坐标或者GCJ 02格式坐标 而实际工程项目
  • 玩转python(一)——微信远程控制电脑

    1 综述 这是一个挺有意思的 python 程序 xff0c 基于 itchat 实现微信控制电脑 你可以通过在微信发送命令 xff0c 来拍摄当前电脑的使用者 xff0c 然后图片会发送到你的微信上 甚至你可以发送命令来远程关闭电脑 效果
  • go get 下载包 modules disabled by GO111MODULE=auto

    Go 版本是 1 12 及以下 zshrc bashrc 加入配置source zshrc 启用 Go Modules 功能 export GO111MODULE 61 on 配置 GOPROXY 环境变量 export GOPROXY 6
  • java中final关键字的作用

    final关键字可以用于三个地方 用于修饰类 类属性和类方法 被final关键字修饰的类不能被继承 xff0c 被final关键字修饰的类属性和类方法不能被覆盖 xff08 重写 xff09 xff1b 对于被final关键字修饰的类属性而
  • 【锻体篇-硬件开发】获取精准的电流信号 -- 电路设计与注意事项

    朋友像棉被 xff0c 感到温暖是因为你自己的温度 概述 在嵌入式开发领域 xff0c 一个设计优秀的硬件就像一副健壮的躯体 xff0c 配以聪明的大脑 xff08 软件 xff09 xff0c 就能够发挥出其强大的威力 对于电流信号 xf