当前位置:   article > 正文

MicroPython-On-ESP8266——使用四角按钮控制LED灯_四脚按键原理

四脚按键原理

MicroPython-On-ESP8266——使用四角按钮控制LED灯

1. 四角开关原理图

在这里插入图片描述
这种四角按钮开关,由常开触点、常闭触点组合而成。

0 – 2, 1 – 3 内部是连通的,也就是常闭状态。 这两组之间又是常开状态,且能改变为闭合。也就是按下按钮后四个角全导通了。引脚弯曲相对是的常闭端,搞不清楚拿万用表量一下也就知道了。

2. 接线

这次做个小实验,用GPIO管脚的输入功能,来控制led灯,led就不外接了直接用板载的灯(GPIO 2)就行。

当我们定义好一个管脚作为信号输入时,如 pin = Pin(14, Pin.IN) 那要对其value做改变,就是对管脚输入高电平(value=1)或低电平(value=0)。
这里输入端我是接到nodemcu开发板的D5(GPIO14)上了,正/负/输入三个脚在一起,走线整洁一些。

既然是高低电平,那咱们就把板上的3V和GND端都接到待测定的管脚就行了。正负极接到一起时,为避免短路问题,中间加个电阻。那就得出了如下接线图:
在这里插入图片描述
我手上没有大阻值的电阻(10K),接线时拿几个小一些的串在一起用了。

按钮状态与电平(value)值关系:

  • 不按按钮, value=0
  • 按钮按下, value=1

3. 实验:按开关点亮板载led灯

因为四角开关不带自锁功能,实验目的就是按住开关灯就亮,不按就不亮

from machine import Pin
import utime

btn = Pin(14, Pin.IN)
led = Pin(2, Pin.OUT, value=1)
last_val = 1  # 加个状态位寄存

while True:
    utime.sleep_ms(100)
    val = btn.value()
    if val != last_val: # 状态有变则响应
        last_val = val
        led.value(not val)  # 板载led灯是低电平点亮

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

4. 简化接线

前面学习GPIO部分时候,了解到ESP8266芯片的GPIO管脚,输入模式分为无模式和上拉电阻模式(也就是管脚内部串接电阻并连接到VIN端)两种。也即是当你在代码中读取Pin的input value值时,如果管脚接线是悬空的,那读到的值就是高电平(value=1)。

那如此咱们其实可以把线路简化一下,悬空是高电平,按下按钮连通到低电平,就样就能区分出状态变化了。

在这里插入图片描述

如此接线,需要注意的是,用四角按钮控制GPIO的输入value值跟前面是反过来的。

  • 不按按钮, value=1
  • 按下按钮, value=0

既然这样,上面代码中led灯点亮的状态就需要反过来了。

btn = Pin(14, Pin.IN, pull=Pin.PULL_UP)  # 强调一下是上拉模式
...
led.value(val)
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/211486
推荐阅读
相关标签
  

闽ICP备14008679号