加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 一、前言
    • 二、硬件连接
    • 三、编写代码并运行
    • 四、结束语
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

树莓派从零开始快速入门第6讲——按键输入

07/06 15:25
727
阅读需 4 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

上一讲介绍了如何点亮一个LED灯,了解了树莓派的编程方法和运行方式,其实就是控制GPIO输出。

按照惯例,这一讲应该要讲GPIO的输入了。

特别说明:关于树莓派的编程方法我这里就不再赘述了,不知道的同学可以翻一下我第5讲的内容。

树莓派从零开始快速入门第5讲——点亮LED

二、硬件连接

硬件上要准备一个按键板,或者用导线短接GPIO模拟电平跳变也行(不懂慎用,以防短路),把按键的一端接到树莓派任意一个GPIO口,另外一端接VCC或者GND。
硬件原理我就不说了,感兴趣的同学可以自己查找相关资料,或者看下我之前发布的RT-thread按键输入教程。

我这边用的还是微雪的扩展板Pioneer600。

三、编写代码并运行

按键检测代码示例:

#!/usr/bin/python                             
#-*- coding:utf-8 -*-               
import RPi.GPIO as GPIO             #导入RPi.GPIO库
import time                         #导入time库

KEY = 20                            #根据自己的引脚号设置
GPIO.setmode(GPIO.BCM)              #引脚使用BCM编码
GPIO.setup(KEY,GPIO.IN,GPIO.PUD_UP) #KEY引脚设置为上拉输入模式
while True:                     
    time.sleep(0.05)                #延时0.05s
    if GPIO.input(KEY) == 0:        #如果KEY引脚为低电平(按键被按下),打印"KEY PRESS"
        print("KEY PRESS")          
        while GPIO.input(KEY) == 0: #如果按键一直被按下(没有松开),一直在while循环中出不去(防止按键长按一直打印)
            time.sleep(0.01)    
注:
#!/usr/bin/env python,定义python解析脚本的绝对路径
#-*- coding:utf-8 -*-,python文件为utf-8格式,否则无法写入中文注释

运行结果:

在这里插入图片描述

四、结束语

按键输入本质上就是读取GPIO的电平状态,按键本质是通过短接IO口和VCC或GND,从而改变IO口的电平状态。结合原理去看代码会更容易理解。好了,这一讲的内容就这么多了,想了解更多树莓派的知识可以关注我,后续我会继续更新更多的教程。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
NC7S08M5X_NL 1 Fairchild Semiconductor Corporation AND Gate, HC/UH Series, 1-Func, 2-Input, CMOS, PDSO5, 1.60 MM, LEAD FREE, MO-178AA, SOT-23, 5 PIN
暂无数据 查看
HFBR-1522 1 Avago Technologies FIBER OPTIC TRANSMITTER, 5Mbps, THROUGH HOLE MOUNT
$13.86 查看
CM41532768DZFT 1 Citizen Finedevice Co Ltd Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, ROHS COMPLIANT, ULTRA MINIATURE, CERAMIC, SMD, 2 PIN
$1.4 查看

相关推荐

电子产业图谱