news 2026/10/5 7:57:41

五伏信号怎样安全送进三点三伏输入?看懂两只电阻分压

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
五伏信号怎样安全送进三点三伏输入?看懂两只电阻分压

五伏信号怎样安全送进三点三伏输入?看懂两只电阻分压

本文为教学接线与设计预期,尚无实物测量记录;使用 NUCLEO-F030R8。

问题

五伏开发板输出只有高和低,能直接接三点三伏单片机吗?不能只看它是否读到一。这里选不能当五伏输入用的 PA 零脚,先把高电平降到三伏,再送进去。五伏电源不能直接接这只输入脚。

物件动作

小熊拿着五伏包裹,从五伏板的数字二脚走到分叉路口。先经过十千欧尺子,再看到十五千欧尺子通向地。小熊用探针量路口,只剩三伏;举起绿旗,告诉芯片这是高电平。两把尺子对应两只真实电阻。

真实连接

回到电路,五伏板的数字二脚先接十千欧电阻,另一端是分压节点,接单片机板的 A 零,也就是 PA 零。节点再经十五千欧电阻接公共地。两块板的地相连,各自正常供电。本例只接单向、低速数字信号,不接负载。

原因与结果

高电平来时,两只电阻串成到地的路径。节点电压等于五伏乘下面的十五,再除以两只相加的二十五,算得三伏。低电平来时,节点接近零伏。三伏是送给输入脚的信号,不是开发板的供电。

验证

先断电核对数字二脚、十千欧、节点、十五千欧、地的顺序。上电后让五伏板分别输出低和高,用万用表量 PA 零对地:设计预期约零伏与三伏。示波器可同时量电阻前和节点。三伏是理想计算,不是实测。

边界

高电平会让两只电阻持续流过约零点二毫安。高频边沿还会受引脚电容和线路影响,不能代替高速或双向转换器。若五伏板在单片机断电时仍输出,须另查反灌风险,不按本图热插。有些脚耐五伏,不代表所有脚都耐五伏。

先认清五伏信号,不要拿‘能读到’当安全证明

本文只讨论一根单向低速数字信号:Arduino UNO R3 的 D2 输出高时约 5 V,低时约 0 V;接收板是 ST NUCLEO-F030R8,目标引脚是其 Arduino A0 对应的 PA0。Arduino A000066 官方数据表给出 D2 为数字 GPIO,IOREF 接五伏;ST 板卡手册给出 A0/PA0 映射。STM32F030R8 数据手册把 PA0 列为 TTa 类型,而不是可直接按 FT 五伏容忍脚使用。数据手册还给出芯片工作供电范围 2.4~3.6 V。UNO 的五伏高电平与 STM32 板的三点三伏供电不是同一件事;不能因为程序偶然读出高,就认定直连对引脚长期安全。

一个更直观的画法是:小熊手拿写着五伏的包裹,从 Arduino D2 门口走到两把电阻尺。上方的十千欧尺子挡在信号源与路口之间,下方的十五千欧尺子从路口通到地。小熊拿探针量路口,举绿旗告诉芯片‘这里约三伏’。回到电路,路口是两只电阻的中点,也是 PA0 输入节点;尺子是真实的 R1/R2;包裹是输入高电平;绿旗是程序判成高的结果。卡通动作不代表电压凭空消失:有电流经过串联电阻,两个电阻各承担一部分电压。

一根线拆成哪几段

Arduino UNO R3 的 D2 先接 R1=10 kΩ 一端;R1 另一端与 R2=15 kΩ 的上端以及 NUCLEO CN8 A0/PA0 三者汇成同一个节点。R2 下端接 NUCLEO CN6 GND。UNO 的 GND 也要接到同一个公共地,否则所谓‘五伏’和‘三伏’没有共同的测量参考。两块开发板按各自规定独立供电,本图没有把 UNO 的五伏电源端接 PA0 或接到 STM32 板上 3.3 V 输出。画面中只有这几根实际导线和两只电阻;从探针到节点的高亮是测量提示,不是一根额外电源线。

上电前先断电用欧姆档辨认 10 kΩ、15 kΩ,核查串联顺序,确认 R2 真正回到地。若把 R2 漏接,PA0 会悬空;若把 R1/R2 接反,理想高电平变为 5×10/25=2 V,可能无法可靠被识别为高。若错误地把节点接到模块的五伏供电脚而绕开 R1,分压保护就不存在。任何改线都应先断电,避免跳线扫过旁边引脚。

从五伏算到三伏,再算电流

高电平且 PA0 作为高阻输入时,两只电阻串联承受五伏,理想电流是 5 V÷(10 kΩ+15 kΩ)=0.2 mA。R2 上的电压,也就是 PA0 对地的节点电压,等于 0.2 mA×15 kΩ=3.0 V;直接写作 5×15/(10+15)=3 也相同。R1 上约掉 2 V。输入变为零伏时,节点经 R2 被拉近地,理想结果约零伏。这两个数只由本例电阻与输入值推得,尚无实物测量,不写成‘测得稳定三伏’。

真实电阻有公差,模块高电平未必精确 5.000 V,PA0 有漏电和输入电容。静态电压须用万用表复核;动态边沿应用示波器或逻辑分析仪,两个仪器通道共地并分别观察 R1 前端与中点。数据手册里的引脚绝对最大额定值不是正常工作目标,也不是允许把任何五伏直接接到任何脚上的通用许可。本例为正常供电条件下的教学分压示意,电阻值不能不经目标设备核算就复制到其他板卡。

正常、异常、边界分别怎样验收

正常测试先让模块 SIG 输出低,记录信号源端和 PA0 节点对共同地的电压;再输出高,预期源端约五伏、节点约三伏,程序输入由低变高。若源端高而节点不高,先查 R1 是否开路、R2 是否错值、地线是否缺失;若节点接近五伏,立刻断电检查是否绕过 R1 或 R2 开路。不要靠提高电压‘试到能读’。如果程序中的引脚被配置成输出而与外部模块对驱,也可能损坏器件;PA0 必须配置为输入。

分压器会在高电平时持续耗电,并且与输入电容、布线电容构成一个低通效应:变化特别快时,中点不一定跟得上。它不能处理双向通信,也不适合作为未知线长、高速总线或安全隔离方案。若外部模块比开发板更早上电、开发板断电时 SIG 仍高,要依据具体器件的注入电流与上电时序另行评估,不能凭此图热插。若换成真正五伏容忍的引脚,也要按该型号、该功能模式及供电状态重查资料;‘某些脚可以’绝不等于‘所有脚可以’。本例从头到尾未得到实测波形,视频标注的电压是设计计算值。

逐线接线清单

  • Arduino UNO R3 D2 数字输出 → R1 10 kΩ 上端:仅单向低速信号;不是供电脚
  • R1 10 kΩ 下端 → 分压节点:上臂到节点
  • 分压节点 → NUCLEO CN8 A0/PA0 数字输入:只读这个节点,输入不带外部负载
  • 分压节点 → R2 15 kΩ 上端:下臂起点
  • R2 15 kΩ 下端 → NUCLEO CN6 GND:下臂回地
  • Arduino UNO R3 GND → NUCLEO CN6 GND:两侧共同参考地
  • 万用表或示波器探头(可选) → PA0 分压节点与公共 GND:读数待实测;图中只示设计预期

计算与实施边界

  • ST UM1724 的 NUCLEO-F030R8 Arduino A0 对应 PA0;ST STM32F030R8 数据手册的 PA0 为 TTa 引脚,不把它当作 FT 五伏容忍脚
  • Arduino UNO R3 A000066 官方数据表说明 D2 是数字 GPIO、逻辑参考 IOREF 连 5 V;本例 D2 交替输出高低
  • STM32F030R8 的主供电工作范围为 2.4–3.6 V;本例开发板 3.3 V 工作
  • 理想分压 5 V×15 kΩ/(10 kΩ+15 kΩ)=3.0 V;两电阻高电平电流为 5 V/25 kΩ=0.2 mA,均不含电阻公差与输入漏电
  • 本例只讨论两侧均正常供电的单向低速数字信号,断电反灌、快速边沿和双向总线需另外评估,不冒称实测

这些参数和数值是本例选择或可复算计算;实际测量前,应先检查电源极性、公共地、元件额定值、仪器探头连接。

完整可运行的核心算例与验收

以下 C11 程序可在电脑上用 C 编译器单独编译运行,用来复算状态或数值;它不是已配置 GPIO、ADC、定时器和驱动的开发板固件。移植到实板时应按前述接线配置外设、检查读取错误,并另做实测。

#include<stdio.h>/* 仅复算无负载理想分压,不是可烧录的 GPIO 初始化程序。 */staticdoublenode_voltage(doubleinput,doubleupper,doublelower){returninput*lower/(upper+lower);}intmain(void){printf("high = %.2f V, low = %.2f V\n",node_voltage(5.0,10000.0,15000.0),node_voltage(0.0,10000.0,15000.0));printf("high-state divider current = %.3f mA\n",5.0/25000.0*1000.0);return0;}

验收时同时记录输入、关键节点电压或波形、程序输出;若发现传感器通信失败、输入超出允许范围或波形明显异常,应停止并排查。

官方资料

  • https://www.st.com/resource/en/user_manual/um1724-.pdf
  • https://www.st.com/resource/en/datasheet/stm32f030r8.pdf
  • https://docs.arduino.cc/resources/datasheets/A000066-datasheet.pdf
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/5 7:57:05

Python asyncio实战:事件循环、协程与高并发爬虫全解析

其实在很多项目里&#xff0c;真正需要一个“高性能并发方案”的时候&#xff0c;你翻开Python的官方文档&#xff0c;十有八九会被引导到 asyncio 这个库。我最早接触它是因为要写一个批量爬虫&#xff0c;几百上千个URL要并发抓取&#xff0c;用线程池写起来倒也不难&#…

作者头像 李华
网站建设 2026/10/5 7:55:26

网址转App零代码实操:从WebView原理到打包上架全攻略

先说我自己的一个例子。去年帮朋友做的一个小工具站&#xff0c;数据都在浏览器里跑得好好的&#xff0c;他非要一个App&#xff0c;理由很简单——“用户就是觉得装个App更靠谱&#xff0c;放浏览器里像个临时页面”。我当时的内心活动是&#xff1a;就一个展示页&#xff0c;…

作者头像 李华
网站建设 2026/10/5 7:53:56

Win11下Node.js安装与环境配置详解:版本选择、PATH与npm镜像

2026年了&#xff0c;Node.js安装和环境配置这个话题&#xff0c;居然还是Win11新手群里最常被问的问题之一。很多人不是不会装&#xff0c;而是装完之后发现node命令找不到、npm下载慢成蜗牛、全局安装的vue一敲就报“不是内部或外部命令”&#xff0c;然后开始怀疑人生。这篇…

作者头像 李华
网站建设 2026/10/5 7:52:37

React Native鸿蒙跨平台实战:账号安全页从搭建到真机调试

最近做了一次React Native鸿蒙跨平台开发的基础训练&#xff0c;内容是给一个App实现账号安全页面。这个训练看起来很小&#xff0c;但它把RN在鸿蒙环境下的运行链路、组件写法、状态管理、真机调试、原生模块依赖这几个关键的坎全过了一遍。这篇文章就把整个训练过程拆开来讲&…

作者头像 李华
网站建设 2026/10/5 7:51:28

基于PaddleNLP的中文信息抽取:从Doccano标注到UIE模型部署全流程

简介&#xff1a;本资源面向自然语言处理初学者与信息抽取方向的开发者&#xff0c;提供一套基于PaddleNLP框架的完整中文实体识别项目实践。内容围绕Doccano标注工具构建中文实体识别数据集&#xff0c;并借助UIE-base预训练模型进行微调训练&#xff0c;最终实现从非结构化文…

作者头像 李华