『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 11573|回复: 18

[进阶教程] 8266针脚使用注意事项,正确使用上拉/下拉电阻

[复制链接]

23

主题

1335

帖子

6595

积分

超级版主

Rank: 8Rank: 8

积分
6595
金钱
5235
HASS币
100

教程狂人

发表于 2019-4-6 09:04:57 | 显示全部楼层 |阅读模式
首先什么是GPIO,通俗的说就是根据针脚的电压来判断输出0或者1,但是这其中有个问题,如下图0.8v-2.4v的区间可能是0也有可能是1,这个时候我们就需要正确的使用上拉电阻把2.4v拉高,下拉电阻把0.8v拉低,让其输出正确的值
low_high.png

很多新手在使用8266的GPIO的时候往往忽略掉了上拉/下拉电阻的问题,8266部分GPIO是没有内置上拉/下拉电阻,从而遇到奇奇怪怪的问题无从下手
下图是下拉电阻,正确的使用场景是GPIO默认低电平,GPIO和3.3v之间接开关,GPIO和地之间接下拉电阻,保证开关在关闭状态GPIO的电压值被拉低到low
pulldown.png

下图为上拉电阻,原理类似
pull_up.png

评分

参与人数 2金钱 +10 收起 理由
leoyanger + 5
xuyang + 5

查看全部评分

回复

使用道具 举报

8

主题

868

帖子

5156

积分

论坛元老

Rank: 8Rank: 8

积分
5156
金钱
4288
HASS币
0
发表于 2019-4-6 09:45:55 | 显示全部楼层
请问那些gpio没有内置上拉和下拉电阻
回复

使用道具 举报

39

主题

2079

帖子

7814

积分

元老级技术达人

积分
7814
金钱
5720
HASS币
110
发表于 2019-4-8 09:22:05 | 显示全部楼层
There are up to 17 GPIO pins. They can be assigned to various functions by the firmware. Each GPIO can be configured with internal pull-up (except XPD_DCDC, which is configured with internal pull-down)


ESP8266的手册里这么写的,XPD_DCDC是pin8 也就是GPIO16
除了这个已内部下拉,其他都能配置为内部上拉  大概是这样
回复

使用道具 举报

0

主题

93

帖子

1081

积分

金牌会员

Rank: 6Rank: 6

积分
1081
金钱
988
HASS币
0
发表于 2019-4-8 10:51:34 | 显示全部楼层
mark, 收藏了,不错
回复

使用道具 举报

12

主题

206

帖子

757

积分

高级会员

Rank: 4

积分
757
金钱
551
HASS币
10
发表于 2019-4-25 09:50:41 | 显示全部楼层
大佬 我最近学了用8266控制开关 但是不知道怎样能做到wifi炸了  不影响物理开关? 可以指导一下?
回复

使用道具 举报

23

主题

1335

帖子

6595

积分

超级版主

Rank: 8Rank: 8

积分
6595
金钱
5235
HASS币
100

教程狂人

 楼主| 发表于 2019-4-25 10:05:02 | 显示全部楼层
丢你老鼠 发表于 2019-4-25 09:50
大佬 我最近学了用8266控制开关 但是不知道怎样能做到wifi炸了  不影响物理开关? 可以指导一下? ...

把物理开关接到8266的GPIO,把物理开关信号输入到8266,tasmota固件可以设置开关(switch)和继电器(relay)绑定,比如switch1 = relay1, 然后开关和继电器就会联动,并且发送同一组mqtt topic
回复

使用道具 举报

12

主题

206

帖子

757

积分

高级会员

Rank: 4

积分
757
金钱
551
HASS币
10
发表于 2019-4-25 11:24:05 | 显示全部楼层
natic 发表于 2019-4-25 10:05
把物理开关接到8266的GPIO,把物理开关信号输入到8266,tasmota固件可以设置开关(switch)和继电器(rela ...

是不是前提要实现你这个帖子那样 增加一个电阻
另外我刷的是espeasy 是不是在规则(Rules)添加以下代码就可以?规则是不是不用wifi在芯片的本地就能识别运行?
On switch03#Switch=1 do
  if [switch07#Switch]=1
    gpio,13,0
  else
    gpio,13,1
  endif
endon
On switch03#Switch=0 do
  if [switch07#Switch]=0
    gpio,13,1
  else
    gpio,13,0
  endif
endon
回复

使用道具 举报

23

主题

1335

帖子

6595

积分

超级版主

Rank: 8Rank: 8

积分
6595
金钱
5235
HASS币
100

教程狂人

 楼主| 发表于 2019-4-25 11:49:22 | 显示全部楼层
丢你老鼠 发表于 2019-4-25 11:24
是不是前提要实现你这个帖子那样 增加一个电阻
另外我刷的是espeasy 是不是在规则(Rules)添加以下代码 ...

不一定要加电阻,电阻是为了解决异常自动开关的问题

你这个规则看起来是这么回事,我没用过espeasy,你自己试一下吧
回复

使用道具 举报

23

主题

1335

帖子

6595

积分

超级版主

Rank: 8Rank: 8

积分
6595
金钱
5235
HASS币
100

教程狂人

 楼主| 发表于 2019-5-2 15:46:23 | 显示全部楼层
ghostist 发表于 2019-4-8 09:22
ESP8266的手册里这么写的,XPD_DCDC是pin8 也就是GPIO16
除了这个已内部下拉,其他都能配置为内部上拉   ...

对,使用之前能够查看pin手册最好不过了
回复

使用道具 举报

19

主题

600

帖子

4109

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4109
金钱
3494
HASS币
40
发表于 2019-5-22 01:02:18 | 显示全部楼层
很好的帖子,对小白深入浅出
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-22 19:32 , Processed in 0.091743 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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