File tree Expand file tree Collapse file tree 1 file changed +67
-0
lines changed Expand file tree Collapse file tree 1 file changed +67
-0
lines changed Original file line number Diff line number Diff line change
1
+ ``` bash
2
+ 视频教程地址:
3
+ 哔哩哔哩bilibili:树莓派爱好者基地、玩派VLOG
4
+ ```
5
+
6
+ ## 一、概述
7
+
8
+ 上一期用PICO点亮了LED灯,这一期准备用按键来控制LED灯的点亮。为了更有趣一些,所以准备用三种方式来实现按键控制LED。
9
+ 编程语言: micropython。
10
+
11
+ PICO接口图
12
+ ![ 在这里插入图片描述] ( https://img-blog.csdnimg.cn/08367390ddb541af9775aea0261e0644.png#pic_center )
13
+ 按键图和原理图
14
+ ![ 在这里插入图片描述] ( https://img-blog.csdnimg.cn/72c69ee015d7440a9bdd0249cd1dcbb2.png#pic_center )
15
+ ![ 在这里插入图片描述] ( https://img-blog.csdnimg.cn/36d6e32fe2e54cfdbf307dfc2691b87c.png#pic_center )
16
+ ## 二、开始
17
+ ### 1、方式1(按键控制电路闭合)
18
+ 最朴实无华的方式,LED正极连接PICO的GP0口,接口给高电平,通过按键控制电路是否闭合,闭合时点亮LED。
19
+ ![ 在这里插入图片描述] ( https://img-blog.csdnimg.cn/c1f5ce4b83904c65b47a31c538777410.png#pic_center )
20
+ ![ 在这里插入图片描述] ( https://img-blog.csdnimg.cn/45da490b2a854318b609ca5283fcb369.png#pic_center )
21
+
22
+ ### 2、方式2(按键逻辑控制点灯)
23
+ 先看看原理图
24
+ ![ 在这里插入图片描述] ( https://img-blog.csdnimg.cn/cb01fde9fec94385b1bd3e81c88dc749.png#pic_center )
25
+ 再看看程序
26
+
27
+ ``` python
28
+ from machine import Pin
29
+ import time
30
+
31
+ led= Pin(0 ,Pin.OUT )
32
+ switch= Pin(1 ,Pin.IN ,Pin.PULL_UP )
33
+
34
+ while True :
35
+ if switch.value()== 0 :
36
+ led.value(1 )
37
+ else :
38
+ led.value(0 )
39
+
40
+ ```
41
+
42
+ 这里GP0口依然与LED正极相连。按键一端和GP1口相连,一端和GND相连。GP1给一个上拉电阻,一直保持高电平状态,当按键按下时,电平变为低电平,触发条件,给GP0高电平,点亮LED。
43
+ ![ 在这里插入图片描述] ( https://img-blog.csdnimg.cn/e5a7e4d901be429ea19f42738115ba21.png#pic_center )
44
+ ![ 在这里插入图片描述] ( https://img-blog.csdnimg.cn/22c256692af4486ea1920fcb4185caf9.png#pic_center )
45
+
46
+ ### 3、方式3(按键逻辑控制点灯+外部中断)
47
+ 在方式2的基上做了一些改良,把while True循环检测改成了外部中断。电路连接完全不变。外部中断触发条件设置为下降沿触发,按键按下,GP1由高电平变为低电平,触发中断,点亮LED
48
+ 看一下程序
49
+
50
+ ``` python
51
+ from machine import Pin
52
+ import time
53
+
54
+ led= Pin(0 ,Pin.OUT )
55
+ switch= Pin(1 ,Pin.IN ,Pin.PULL_UP )
56
+ led.off()
57
+
58
+
59
+ def on_led (switch ):
60
+ led.on()
61
+ time.sleep(5 )
62
+ led.off()
63
+
64
+ switch.irq(on_led,Pin.IRQ_FALLING )
65
+
66
+ ```
67
+ ![ 在这里插入图片描述] ( https://img-blog.csdnimg.cn/68d0c14f99c74194923e355181161bf8.png#pic_center )
You can’t perform that action at this time.
0 commit comments