学习了GPIO的输入与输出功能后,我们就可以做一些自动化的功能了。
硬件接线
比如我们同时连接一个按键和LED灯,尝试实现按键被按下,灯被点亮,松开,灯熄灭,这样的功能。
运行示例程序
我们通过这个例程来试一试效果如何?
$ sudo python3 button_led.py
我们来看一下具体的操作,同样的,按照刚才的设置,将实物连接完成,然后连接到X3Pi,运行刚才的程序。按下按键后,就可以看到LED被点亮了,松开之后,LED就熄灭了。
代码解析
button_led.py
#!/usr/bin/env python3
import Hobot.GPIO as GPIO
import time
# 定义使用的GPIO通道:
# 36号作为输出,可以点亮一个LED
# 38号作为输入,可以接一个按钮
led_pin = 36 # BOARD 编码 36
but_pin = 38 # BOARD 编码 38
# 禁用警告信息
GPIO.setwarnings(False)
def main():
prev_value = None
# Pin Setup:
GPIO.setmode(GPIO.BOARD) # BOARD pin-numbering scheme
GPIO.setup(led_pin, GPIO.OUT) # LED pin set as output
GPIO.setup(but_pin, GPIO.IN) # Button pin set as input
# Initial state for LEDs:
GPIO.output(led_pin, GPIO.LOW)
print("Starting demo now! Press CTRL+C to exit")
try:
while True:
curr_value = GPIO.input(but_pin)
if curr_value != prev_value:
GPIO.output(led_pin, curr_value)
prev_value = curr_value
print("Outputting {} to Pin {}".format(curr_value, led_pin))
time.sleep(1)
finally:
GPIO.cleanup() # cleanup all GPIO
if __name__ == '__main__':
main()
基本的配置还是一样的,引入基本的库,然后设置为BOARD模式,然后初始化两个管脚,一个用来读取按键的通断,一个用来控制LED的亮灭,之后只需要判断按键的状态来做出对应的控制LED的动作就可以了。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
led
+关注
关注
240文章
23128浏览量
658257 -
程序
+关注
关注
116文章
3773浏览量
80830 -
数字输出
+关注
关注
0文章
24浏览量
8922 -
数字输入
+关注
关注
0文章
19浏览量
7825
发布评论请先 登录
相关推荐
DPDK安装教程和DPDK程序运行收发包示例程序及性能对比实验的详细概述
本文档的主要内容详细介绍的是DPDK安装教程和DPDK程序运行收发包示例程序及性能对比实验的详细概述。
发表于 09-03 08:00
•0次下载
STM32 之 标准外设版USB驱动库详解(架构+文件+函数+使用说明+示例程序)
STM32 之 标准外设版USB驱动库详解(架构+文件+函数+使用说明+示例程序)
发表于 12-08 20:36
•0次下载
ADS1256+STM32F103RCTx示例程序
的24位模拟-数字转换器,而STM32F103RCTx是一种基于ARM Cortex-M3内核的微控制器,具有高性能和低功耗的特点。该示例程序提供了完整的源代码,方便开发者学习和使用,同时也可作为基础参考代码用于实际项目开发。
发表于 09-07 09:48
•15次下载
CP Software Cluster示例程序介绍
AUTOSAR组织展示了基于ST Stellar系列单片机实现的CP Software Cluster示例程序,如图3所示。 图3 CP Software Cluster示例程序总览 示例程序将软件
评论