Arduino爱好者

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: eagler8

[经验] 【Arduino】108种传感器模块系列实验(91)--水流量传感器模块

[复制链接]
 楼主| 发表于 2021-7-6 06:54 | 显示全部楼层
oanger 发表于 2021-7-5 17:36
大佬,上拉电阻的大小由什么来决定

电阻在电路中起限制电流的作用,而上拉电阻和下拉电阻是经常提到也是经常用到的电阻。在每个系统的设计中都用到了大量的上拉电阻和下拉电阻,这两者统称为“拉电阻”,最基本的作用是:将状态不确定的信号线通过一个电阻将其箝位至高电平(上拉)或低电平(下拉),但是无论具体用法如何,这个基本的作用都是相同的,只是在不同应用场合中会对电阻的阻值要求有所不同,下面一起来了解它们吧:
  1.上拉电阻
  (1)概念:将一个不确定的信号,通过一个电阻与电源VCC相连,固定在高电平。
  图1 上拉电阻
  (2)原理:在上拉电阻所连接的导线上,如果外部组件未启用,上拉电阻则“微弱地”将输入电压信号“拉高”。当外部组件未连接时,对输入端来说,外部“看上去”就是高阻抗的。这时,通过上拉电阻可以将输入端口处的电压拉高到高电平。如果外部组件启用,它将取消上拉电阻所设置的高电平。通过这样,上拉电阻可以使引脚即使在未连接外部组件的时候也能保持确定的逻辑电平。
  2.下拉电阻
  概念:将一个不确定的信号,通过一个电阻与GND相连,固定在低电平。
  图2 下拉电阻
  3.主要作用
  下拉电阻的主要作用是与上接电阻一起在电路驱动器关闭时给线路(节点)以一个固定的电平。
  (1)提高电压准位:
  a)当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V), 这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
  b)OC门电路必须加上拉电阻,以提高输出的高电平值。
  (2)加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
  (3)电阻匹配,抑制反射波干扰:长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。
  (4)N/Apin防静电、防干扰:在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。同时管脚悬空就比较容易接受外界的电磁干扰。
  (5)预设空间状态/缺省电位:在一些CMOS输入端接上或下拉电阻是为了预设缺省电位。当你不用这些引脚的时候,这些输入端下拉接0或上拉接1。在I2C总线等总线上,空闲时的状态是由上下拉电阻获得
  (6)提高芯片输入信号的噪声容限:输入端如果是高阻状态,或者高阻抗输入端处于悬空状态,此时需要加上拉或下拉,以免收到随机电平而影响电路工作。同样如果输出端处于被动状态,需要加上拉或下拉,如输出端仅仅是一个三极管的集电极。从而提高芯片输入信号的噪声容限增强抗干扰能力。
  以上就是上拉电阻与下拉电阻的作用介绍了。对于上拉电阻和下拉电阻的选择,应结合开关管特性和下级电路的输入特性进行设定;考虑的因素包括:驱动能力与功耗的平衡,下级电路的驱动需求,高低电平的设定,频率特性等等。







 楼主| 发表于 2021-7-6 06:59 | 显示全部楼层
oanger 发表于 2021-7-5 17:28
你好,这里同样使用了上拉电阻,这个电阻的大小由什么来决定,望大神答复。 ...

        上拉       就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。下拉同理,也是将不确定的信号通过一个电阻钳位在低电平。上拉是对器件输入电流,下拉是输出电流;强弱只是上拉电阻的阻值不同,没有什么严格区分;对于非集电极(或漏极)开路输出型电路(如普通门电路)提供电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。


zzzzz.jpg

上拉电阻阻值的选择原则

1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。3、对于高速电路,过大的上拉电阻可能边沿变平缓。

综合考虑以上三点,通常在1k到10k之间选取。

对上拉电阻和下拉电阻的选择应结合开关管特性和下级电路的输入特性进行设定,主要需要考虑以下几个因素:

1、驱动能力与功耗的平衡。

以上拉电阻为例,一般地说,上拉电阻越小,驱动能力越强,但功耗越大,设计是应注意两者之间的均衡。

2、下级电路的驱动需求。

同样以上拉电阻为例,当输出高电平时,开关管断开,上拉电阻应适当选择以能够向下级电路提供足够的电流。

3、高低电平的设定。

不同电路的高低电平的门槛电平会有不同,电阻应适当设定以确保能输出正确的电平。以上拉电阻为例,当输出低电平时,开关管导通,上拉电阻和开关管导通电阻分压值应确保在零电平门槛之下。

4、频率特性。

以上拉电阻为例,上拉电阻和开关管漏源级之间的电容和下级电路之间的输入电容会形成RC延迟,电阻越大,延迟越大。上拉电阻的设定应考虑电路在这方面的需求。


上拉电阻阻值计算原则

1、最大值的计算原则:

要保证上拉电阻明显小于负载的阻抗,以使高电平时输出有效。

例如:负载阻抗是10K,供电电压是5伏,如果要求高电平不小于4.5伏,那么,上拉电阻最大值R≧1K

也就是最大值1k,(如果超过了1k,输出的高电平就小于4.5伏了)

2、最小值的计算原则:

保证不超过管子的额定电流(如果不是场效应管而是三极管也可依照饱和电流来计算)

3、上拉电阻最小值

R小=5v/47mA=106欧姆 (如果小于这个电阻,管子就会过饱和而没有意义了。如果大于这个值,管子的导体电阻就会变大一些,所以太高也不利于低电平的输出)


注意:算出最大最小值后,一般是随便选个中间值就可以了,例如本例子可以选510欧姆的上拉电阻。但是,如果负载电流较大,低电平要求严格,那么就要选100欧姆的上拉电阻。但是如果考虑省电因素,而低电平要求不严格,那么就可用1K的上拉电阻了。



发表于 2021-7-8 10:25 | 显示全部楼层
eagler8 发表于 2021-7-6 06:59
上拉       就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。下拉同理,也是 ...

谢谢。没太懂, 为什么加看懂了,怎么加我再思考一下。
 楼主| 发表于 2021-7-8 11:06 | 显示全部楼层
oanger 发表于 2021-7-8 10:25
谢谢。没太懂, 为什么加看懂了,怎么加我再思考一下。

一般情况下,使用10K的电阻,不用计算,上拉电阻一端接VCC,下拉电阻一端接GND

可以把你de电路发过来看看.......
发表于 2021-7-8 17:27 | 显示全部楼层
QQ截图20210708172602.jpg
大佬顺便帮我看下代码哪里出错了吧

#define PIN 2volatile long count = 0;//变量count声明为volatile类型

void setup() {
  pinMode(PIN, INPUT);
  attachInterrupt(0, blinkA, FALLING);//当引脚电平由高电平变为低电平时触发中断服务程序
  Serial.begin(9600);
  pinMode(8, OUTPUT); //定义8号口为输出模式
}

void loop() {
  Serial.print("累计脉冲=");
  Serial.println(count);
  delay(1000);
  if (count == 5); //如果变量等于5
{
digitalWrite(8,HIGH);   //LED灯亮
delay(2000); //延时2秒
}
else
{
digitalWrite(8,LOW);     //LED灭
}

void blinkA()
{
  count++;
}


发表于 2021-7-8 17:28 | 显示全部楼层
eagler8 发表于 2021-7-8 11:06
一般情况下,使用10K的电阻,不用计算,上拉电阻一端接VCC,下拉电阻一端接GND

可以把你de电路发过来 ...

QQ截图20210708172602.jpg

大佬顺便帮我看下代码哪里出错了吧



#define PIN 2
volatile long count = 0;//变量count声明为volatile类型

void setup() {
  pinMode(PIN, INPUT);
  attachInterrupt(0, blinkA, FALLING);//当引脚电平由高电平变为低电平时触发中断服务程序
  Serial.begin(9600);
  pinMode(8, OUTPUT); //定义8号口为输出模式
}

void loop() {
  Serial.print("累计脉冲=");
  Serial.println(count);
  delay(1000);
  if (count == 5); //如果变量等于5
{
digitalWrite(8,HIGH);   //LED灯亮
delay(2000); //延时2秒
}
else
{
digitalWrite(8,LOW);     //LED灭
}

void blinkA()
{
  count++;
}

 楼主| 发表于 2021-7-8 17:36 | 显示全部楼层
oanger 发表于 2021-7-8 17:28
大佬顺便帮我看下代码哪里出错了吧

是水流量传感器?还是霍尔传感器?没看明白
发表于 2021-7-8 17:40 | 显示全部楼层
eagler8 发表于 2021-7-8 17:36
是水流量传感器?还是霍尔传感器?没看明白

目前是霍尔,日后目标是水流量。
 楼主| 发表于 2021-7-8 18:07 | 显示全部楼层
oanger 发表于 2021-7-8 17:40
目前是霍尔,日后目标是水流量。

直接上水流量传感器,我当时3.5元入手的
02.jpg

发表于 2021-7-8 18:08 | 显示全部楼层
eagler8 发表于 2021-7-8 18:07
直接上水流量传感器,我当时3.5元入手的

就是看了你的帖子,已经买了,还没到货,代码也有问题。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|好玩手机游戏盒子|196体育|Arduino爱好者

GMT+8, 2023-6-1 13:44 , Processed in 0.077298 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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