关于上拉电阻的疑惑-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5292|回复: 10

[已解决] 关于上拉电阻的疑惑

[复制链接]
发表于 2021-3-10 11:33 | 显示全部楼层 |阅读模式
本帖最后由 dpxiachixx 于 2021-4-8 15:08 编辑

pull-up.jpg 1615347110821.jpg
当引脚设置为输入(INPUT)模式时,引脚为高阻抗状态(100兆欧)。此时该引脚可用于读取传感器信号或开关信号。
我理解上拉和下拉电阻相当于给了个“默认值”,目前也知道它是怎么应用的,但是背后的原理搞不明白,查了好多资料,还是没完全理解我试过在开关打开状态下,去掉这个上拉电阻,这时引脚2依然可以读到高电平(这样可能会因为电流过大,烧坏引脚2),目前也理解了这个电阻有限流作用
下面是未理解的部分
1、当开关闭合时,为什么高电平状态就读不到了?这是什么原理?
2、下拉电阻模式,开关闭合时,否算相当于5V直接连引脚2?(大概率“否”),为啥?

求有耐心的大神,别嫌弃新手的蠢问题,给科普一下
问题已经解决,谢谢各位大佬!!!




 楼主| 发表于 2021-3-12 10:49 | 显示全部楼层
shouzama 发表于 2021-3-11 00:55
圖一是上拉(PULL HIGH)
當開關ON時,從 5V~GND 產生了一個回路,限流電阻被視為這個回路中唯一的負載,
依電 ...

圖一是上拉(PULL HIGH)
當開關ON時,從 5V~GND 產生了一個回路,限流電阻被視為這個回路中唯一的負載,
依電學基本公式計算,5V 電壓全降在 10K 電阻上,電流 I=V/R=5/10000=0.0005A=0.5mA;
電壓降 V=I*R=0.0005*10000=5V;電阻消耗功率 P=V*I=5*0.5=2.5mW。

那試問,當 5V 電壓全降在電阻上,也就是電阻的一端是5V、另一端是 GND,
PIO 2 能讀到 5V(HIGH)才是奇蹟了不是嗎?

而當開關OFF時,若 PIO 被定義為 INPUT,則它會處於高輸入阻抗狀態,
通常可視為【開路】,,這時電阻一端為 5V,因為【未構成回路沒有電流流過】,
電壓降視為 0V,因此電阻的另一端依然是 5V(HIGH
)


因為在開關OFF時,PIO 會常時讀到 HIGH 電壓,故這種電路叫 PULL HIGH;
反之,圖二叫 PULL LOW,運作原理大致相同,就不再贅述了
图1,上拉电阻,开关OFF时
在这个状态下,我用万用表测试电阻两端的电压,结果是0V,所以困惑了很久,感谢这位老师的耐心解释。
之前我一直以为开关OFF时,电流会从5V流向PIO....因为我对「开路」这个概念给忘光了。。。
这就去补一下电路基础知识,非常感谢8楼这位老师的耐心解释!感恩!
发表于 2021-3-10 13:23 | 显示全部楼层
你知道电位吗
 楼主| 发表于 2021-3-10 14:12 | 显示全部楼层
本帖最后由 dpxiachixx 于 2021-3-10 14:20 编辑

电位是指该点与指定的零电位的电压大小差距。电压就是指电路中的两点的电位的大小差距,就是电压。
电压和电位的联系:a.b两点间的电压=a点的电位-b点的电位,即:Uab=φa-φb
发表于 2021-3-10 15:37 | 显示全部楼层
楼主可以去b站看看太极创客入门课程,这里不方便贴链接可以自己去找找
 楼主| 发表于 2021-3-10 15:43 | 显示全部楼层
zhaoxuano 发表于 2021-3-10 15:37
楼主可以去b站看看太极创客入门课程,这里不方便贴链接可以自己去找找 ...

兄台,我就是看的那个,刚才我描述了,目前我知道“拉阻”怎么使用,但是教程里没解释这是什么原理,,我有强迫症哈,问了好多人,都跟我一样,知道怎么用,但是说不清里面的原理,我觉得刚才2楼的兄弟可能能从“电位”角度解释清楚
 楼主| 发表于 2021-3-10 15:44 | 显示全部楼层

不清楚引脚12进入INPUT模式后,电位有多少,电位的概念我查过了,
发表于 2021-3-10 18:48 | 显示全部楼层
是的,就是这样。
发表于 2021-3-11 00:55 | 显示全部楼层
本帖最后由 shouzama 于 2021-3-11 07:13 编辑
下面是未理解的部分
1、當開關閉合時,為什麼高電平狀態就讀不到了?這是什麼原理?
2、下拉電阻模式,開關閉合時,否算相當於5V直接連引腳2?(大概率“否”),為啥?

圖一是上拉(PULL HIGH)
當開關ON時,從 5V~GND 產生了一個回路,限流電阻被視為這個回路中唯一的負載,
依電學基本公式計算,5V 電壓全降在 10K 電阻上,電流 I=V/R=5/10000=0.0005A=0.5mA;
電壓降 V=I*R=0.0005*10000=5V;電阻消耗功率 P=V*I=5*0.5=2.5mW。

那試問,當 5V 電壓全降在電阻上,也就是電阻的一端是5V、另一端是 GND,
PIO 2 能讀到 5V(HIGH)才是奇蹟了不是嗎?

而當開關OFF時,若 PIO 被定義為 INPUT,則它會處於高輸入阻抗狀態,
通常可視為開路,,這時電阻一端為 5V,因為未構成回路沒有電流流過,
電壓降視為 0V,因此電阻的另一端依然是 5V(HIGH)

因為在開關OFF時,PIO 會常時讀到 HIGH 電壓,故這種電路叫 PULL HIGH;
反之,圖二叫 PULL LOW,運作原理大致相同,就不再贅述了
发表于 2021-3-11 08:24 | 显示全部楼层
dpxiachixx 发表于 2021-3-10 15:44
不清楚引脚12进入INPUT模式后,电位有多少,电位的概念我查过了,

8楼说的很好了!补充关键一点,在没有内部上拉/下拉的前提下,input模式的IO口属于高阻态,分析时可以看做开路。stm32里这个叫浮空输入,这个名字很形象,就是说IO的电平状态是不确定的,完全由外部输入决定
发表于 2021-3-11 09:15 | 显示全部楼层
节点电流定律,节点电压定律,从旁边理解,去看看这两个
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 11:46 , Processed in 0.081154 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表