0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数字输入与输出集成示例程序

麦辣鸡腿堡 来源:古月居 作者:古月居 2023-11-27 14:28 次阅读

学习了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
    led
    +关注

    关注

    240

    文章

    23052

    浏览量

    656940
  • 程序
    +关注

    关注

    116

    文章

    3754

    浏览量

    80735
  • 数字输出
    +关注

    关注

    0

    文章

    24

    浏览量

    8916
  • 数字输入
    +关注

    关注

    0

    文章

    18

    浏览量

    7822
收藏 人收藏

    评论

    相关推荐

    [原创]GDF图形输入示例程序

    GDF图形输入示例程序
    发表于 07-24 15:45

    ISD1700-51单片机C语言示例程序

    ISD1700-51单片机C语言示例程序
    发表于 09-19 21:48 270次下载

    ARM_KIT_示例程序

    ARM KIT 示例程序_2008,有需要的下来看看。
    发表于 02-18 15:11 19次下载

    ISD1700-51单片机C语言示例程序

    ISD1700-51单片机C语言示例程序
    发表于 03-22 16:39 11次下载

    锁相环芯片ADF4157示例程序下载

    锁相环芯片ADF4157示例程序
    发表于 04-28 10:36 7次下载
    锁相环芯片ADF4157<b class='flag-5'>示例程序</b>下载

    DPDK安装教程和DPDK程序运行收发包示例程序及性能对比实验的详细概述

    本文档的主要内容详细介绍的是DPDK安装教程和DPDK程序运行收发包示例程序及性能对比实验的详细概述。
    发表于 09-03 08:00 0次下载
    DPDK安装教程和DPDK<b class='flag-5'>程序</b>运行收发包<b class='flag-5'>示例程序</b>及性能对比实验的详细概述

    Python使用示例程序和工程文件免费下载

    本文档的主要内容详细介绍的是Python使用示例程序和工程文件免费下载。
    发表于 06-15 08:00 6次下载
    Python使用<b class='flag-5'>示例程序</b>和工程文件免费下载

    PIC12F508/509深入教程-示例程序

    PIC12F508/509深入教程-示例程序
    发表于 11-16 18:06 29次下载
    PIC12F508/509深入教程-<b class='flag-5'>示例程序</b>

    《我和 LabVIEW》示例程序分享

    《我和 LabVIEW》示例程序分享
    发表于 12-07 17:30 17次下载

    STM32 之 标准外设版USB驱动库详解(架构+文件+函数+使用说明+示例程序

    STM32 之 标准外设版USB驱动库详解(架构+文件+函数+使用说明+示例程序
    发表于 12-08 20:36 0次下载
    STM32 之 标准外设版USB驱动库详解(架构+文件+函数+使用说明+<b class='flag-5'>示例程序</b>)

    电子罗盘磁场传感器模块资料(含产品说明书、示例程序

    电子罗盘磁场传感器模块资料(含产品说明书、示例程序
    发表于 01-19 09:41 17次下载

    介绍 I/O 脚本示例程序(740 系列的模拟器调试器)

    介绍 I/O 脚本示例程序(740 系列的模拟器调试器)
    发表于 06-28 19:15 0次下载
    介绍 I/O 脚本<b class='flag-5'>示例程序</b>(740 系列的模拟器调试器)

    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示例程序总览 示例程序将软件
    的头像 发表于 09-13 17:13 922次阅读
    CP Software Cluster<b class='flag-5'>示例程序</b>介绍

    RX722M的示例程序说明

    电子发烧友网站提供《RX722M的示例程序说明.pdf》资料免费下载
    发表于 12-21 10:57 1次下载
    RX722M的<b class='flag-5'>示例程序</b>说明