机器人数字输出编程

描述

GPIO不止有输入功能,还有输出功能,大家应该经常看到电子设别上的LED灯吧,这就是典型的IO输出控制的设备,我们也来试一试。

硬件接线

我们将一个LED灯的正极连接到了2号引脚,这是5V电源,用来给LED供电的,不过LED电阻小,为了不至于烧坏,我们最好还是在电路中串联一个电阻来限制电流大小。

接下来,当LED的负极接到GND,也就是电源的0V上时,LED两边会因为有电势差而被点亮;当LED的负极也连接到高电平,也就是5V的时候,会因为两边没有电势差,也就不会被点亮。

这个负极的电平信号我们就用GPIO来输出,所以我们把LED的负极连接到任意的GPIO引脚上,比如38号,将这个引脚设置为输出模式,当输出高电平时,灯就会熄灭,输出低电平,灯就会被点亮。

把这两个动作放到一个循环中,就可以实现闪烁的功能啦。

运行示例程序

快来运行例程试一试吧,按照刚才的设置,将实物连接完成,然后连接到X3Pi,运行程序,就可以看到这个LED就会开始闪烁了。

$ sudo python3 simple_input.py

机器人

代码解析

simple_out.py:

#!/usr/bin/env python3


import Hobot.GPIO as GPIO
import time


# 定义使用的GPIO通道为38
output_pin = 38 # BOARD 编码 38


def main():
    # 设置管脚编码模式为硬件编号 BOARD
    GPIO.setmode(GPIO.BOARD)
    # 设置为输出模式,并且初始化为高电平
    GPIO.setup(output_pin, GPIO.OUT, initial=GPIO.HIGH)
    # 记录当前管脚状态
    curr_value = GPIO.HIGH
    print("Starting demo now! Press CTRL+C to exit")
    try:
        # 间隔1秒时间,循环控制LED灯亮灭
        while True:
            time.sleep(1)
            GPIO.output(output_pin, curr_value)
            curr_value ^= GPIO.HIGH
    finally:
        GPIO.cleanup()


if __name__=='__main__':
    main()
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分