树莓派GPIO入门04-使用按钮


来源:极客迷

链接:http://www.geekfans.com/article-5086-1.html  

这次我们用3个按钮来手动控制彩色LED灯分别发出红,绿,蓝光并可以同时按下不同按钮以显示混合颜色的光。

最终效果

树莓派GPIO入门04-使用按钮

硬件

  • 跟上一节一样,彩色RGB二极管一只。

  • 杜邦线若干。

  • 面包板一块。

  • 按钮3只。这种按钮是最常见的小按钮,有四只引脚。分别两两相通。按下按钮以后原来不通的引脚之间会被联通。把按钮翻过来看腹部可以看到联通的引脚之间有凹槽相连,很容易辨认。

    存储器属于常见产品,在各类需要存储功能的器件中均存在存储器身影。本文中,小编将对单片机内部的各大存储器:程序存储器、数据存储器、特殊功能寄存器予以介绍。

硬件图

原理说明

从树莓派上引GND(负极)到面包板上,3个按钮默认不联通的两只引脚的一只接到GND上。另一只接到树莓派GPIO口上。这3个GPIO口在程序里设置为输入模式,并且默认拉到高电平。当某个按钮被按下,即联通GND端到GPIO口上,此时从GPIO口取到的状态为低电平。程序侦测到低电平时就认为按钮被按下,从而可以做你想做的事情(点亮红/绿/蓝灯)。

硬件连接

硬件连接图

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env python
# encoding: utf-8

import RPi.GPIO
import time

R,G,B=15,18,14

# 按钮输出针脚连接的GPIO口
btnR, btnG, btnB=21,20,16

RPi.GPIO.setmode(RPi.GPIO.BCM)

RPi.GPIO.setup(R, RPi.GPIO.OUT)
RPi.GPIO.setup(G, RPi.GPIO.OUT)
RPi.GPIO.setup(B, RPi.GPIO.OUT)

# 按钮连接的GPIO针脚的模式设置为信号输入模式,同时默认拉高GPIO口电平,
# 当GND没有被接通时,GPIO口处于高电平状态,取的的值为1
# 注意到这是一个可选项,如果不在程序里面设置,通常的做法是通过一个上拉电阻连接到VCC上使之默认保持高电平
RPi.GPIO.setup(btnR, RPi.GPIO.IN, pull_up_down=RPi.GPIO.PUD_UP)
RPi.GPIO.setup(btnG, RPi.GPIO.IN, pull_up_down=RPi.GPIO.PUD_UP)
RPi.GPIO.setup(btnB, RPi.GPIO.IN, pull_up_down=RPi.GPIO.PUD_UP)

try:

RPi.GPIO.output(R, True)
RPi.GPIO.output(G, True)
RPi.GPIO.output(B, True)
while True:
time.sleep(0.01)

# 检测按钮1是否被按下,如果被按下(低电平),则亮红灯(输出低电平),否则关红灯
if (RPi.GPIO.input(btnR) == 0):
RPi.GPIO.output(R, False)
else:
RPi.GPIO.output(R, True)

# 检测按钮2是否被按下,如果被按下(低电平),则亮绿灯(输出低电平),否则关绿灯
if (RPi.GPIO.input(btnG) == 0):
RPi.GPIO.output(G, False)
else:
RPi.GPIO.output(G, True)

# 检测按钮3是否被按下,如果被按下(低电平),则亮蓝灯(输出低电平),否则关蓝灯
if (RPi.GPIO.input(btnB) == 0):
RPi.GPIO.output(B, False)
else:
RPi.GPIO.output(B, True)

except KeyboardInterrupt:
pass

RPi.GPIO.cleanup()

点击阅读原文下载源码。

> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >

行业发展的也越来越迅猛,各种产品层出不同,性能优劣也各不相同。我们应该如何在众多产品中选择最优解呢?选择单片机的原则是什么呢?

生成海报
点赞 0

Abin

我还没有学会写个人说明!

相关推荐

[教程]第2课:单片机引脚介绍

单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。 ⒈ 电源: ⑴ VCC - 芯片电源,接+5V; ⑵ VSS - 接地端; ⒉ 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 ⒊ 控制线:控制线共有4根, ⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ①