动手学树莓派Python篇第7章:LED灯原来是这样点亮的

SAKSHAT提供的LED使用方法

当前SAKSHAT为我们提供的方法参考:http://wiki.nxez.com/saks:sdk:libraries:led74hc595

这里就直接摘录了,以下是创百科的内容:
74HC595 芯片驱动下的 LED 灯组类,控制一组 LED 工作。 方法

init(self, pins, real_true=GPIO.HIGH)

初始化对象,设置引脚和触发电平(高电平或低电平触发)。pins 为 IO 引脚数组。

ic(self)

返回当前驱动数码管的IC对象。

is_on(self, index)

返回当前 LED 的工作状态。true 或 false。index 为 LED 编号,从 0 开始。

row_status(self)

返回当前 LED 灯组的工作状态的数组。

on(self)

设置 LED 灯组为全部点亮状态。

off(self)

设置 LED 灯组为全部熄灭状态。

on_for_index(self, index)

设置当前 LED 灯组的第 index+1 个 LED 的状态为点亮。index 为 LED 编号,从 0 开始。

off_for_index(self, index)

设置当前 LED 灯组的第 index+1 个 LED 的状态为熄灭。index 为 LED 编号,从 0 开始。

set_row(self, status)

设置当前 LED 灯组的点亮状态。status 为布尔型数组。status 中的元素也可以为 None,表示不改变该元素位置的 LED 状态。

#点亮所有LED灯
from sakshat import SAKSHAT
from sakspins import SAKSPins as PINS
 
if __name__ == "__main__":
    try:
        #Declare the SAKS Board
        SAKS = SAKSHAT()
         
        #点亮所有LED灯
        SAKS.ledrow.on()
         
    except KeyboardInterrupt:
        print("任务被终止了")
#熄灭所有LED灯
from sakshat import SAKSHAT
from sakspins import SAKSPins as PINS
 
if __name__ == "__main__":
    try:
        #Declare the SAKS Board
        SAKS = SAKSHAT()
         
        #熄灭所有LED灯
        SAKS.ledrow.off()
         
    except KeyboardInterrupt:
        print("任务被终止了")
#返回当前LED灯组状态。
import time
from sakshat import SAKSHAT
from sakspins import SAKSPins as PINS
 
led_status = []
 
if __name__ == "__main__":
    try:
        #Declare the SAKS Board
        SAKS = SAKSHAT()
         
        #点亮所有灯并输出所有灯状态
        for i in range(0, 8):
            SAKS.ledrow.on_for_index(i)
        led_status = SAKS.ledrow.row_status
        print("点亮所有灯状态" + str(led_status))
         
        time.sleep(5)
         
        #关闭所有灯并输出等状态
        for i in range(0, 8):
            SAKS.ledrow.off_for_index(i)
        led_status = SAKS.ledrow.row_status
        print("关闭所有灯状态" + str(led_status))
         
        time.sleep(5)
         
        #熄灭所有LED灯
        SAKS.ledrow.off()
         
        #间隔点亮LED灯模式1
        for i in range(0, 8, 2):
            SAKS.ledrow.on_for_index(i)
        led_status = SAKS.ledrow.row_status
        print("间隔点亮LED灯模式1" + str(led_status))
         
        time.sleep(5)
         
        #熄灭所有LED灯
        SAKS.ledrow.off()
         
        #间隔点亮LED灯模式2
        for i in range(1, 8, 2):
            SAKS.ledrow.on_for_index(i)
        led_status = SAKS.ledrow.row_status
        print("间隔点亮LED灯模式2" + str(led_status))
         
    except KeyboardInterrupt:
        print("任务被终止了")
#返回当前LED单个灯状态。
import time
from sakshat import SAKSHAT
from sakspins import SAKSPins as PINS
 
led_status = []
 
if __name__ == "__main__":
    try:
        #Declare the SAKS Board
        SAKS = SAKSHAT()
         
        #熄灭所有LED灯
        SAKS.ledrow.off()
         
        #关闭所有灯并输出等状态
        for i in range(0, 8, 2):
            SAKS.ledrow.on_for_index(i)
        led_status = SAKS.ledrow.row_status
        print("关闭所有灯状态" + str(led_status))
         
        for i in range(0, 8):
            led_one_status = SAKS.ledrow.is_on(i)
            print("第" + str(i) + "个LED灯状态为" + str(led_one_status))
               
    except KeyboardInterrupt:
        print("任务被终止了")
#逐一点亮LED灯,然后逐一熄灭LED灯
import time
from sakshat import SAKSHAT
from sakspins import SAKSPins as PINS
 
if __name__ == "__main__":
    try:
        #Declare the SAKS Board
        SAKS = SAKSHAT()
         
        for i in range(0, 8):
            SAKS.ledrow.on_for_index(i)
            time.sleep(1)
             
        for i in range(0, 8):
            SAKS.ledrow.off_for_index(i)
            time.sleep(1)
         
    except KeyboardInterrupt:
        print("任务被终止了")
#设置LED灯族状态
import time
from sakshat import SAKSHAT
from sakspins import SAKSPins as PINS
 
if __name__ == "__main__":
    try:
        #Declare the SAKS Board
        SAKS = SAKSHAT()
         
        SAKS.ledrow.set_row([True, False, True, False, True, False, True, False])
 
        time.sleep(5)
 
        SAKS.ledrow.set_row([None, True, None, True, None, None, None, None])
 
        time.sleep(5)
         
        SAKS.ledrow.set_row([None, None, None, None, None, True, None, True])
         
        time.sleep(5)
         
        SAKS.ledrow.set_row([False, None, False, None, False, None, False, None])
         
        time.sleep(5)
         
        SAKS.ledrow.set_row([False, False, False, False, False, False, False, False])
         
    except KeyboardInterrupt:
        print("任务被终止了")
#流水灯走起
import time
from sakshat import SAKSHAT
from sakspins import SAKSPins as PINS
 
if __name__ == "__main__":
    try:
        #Declare the SAKS Board
        SAKS = SAKSHAT()
         
        while True:         
            for i in range(0, 8):
                SAKS.ledrow.on_for_index(i)
                time.sleep(0.1)
                SAKS.ledrow.off_for_index(i)
    except KeyboardInterrupt:
        print("任务被终止了")

课程 bilibili 视频地址:https://www.bilibili.com/video/av71878718/?p=18

- 本文内容来自网络,如有侵权,请联系本站处理。

2022-12   阅读(15)   评论(0)
 标签: 编程

涨知识
麦克纳姆轮

麦克纳姆轮的移动方式是基于一个有许多位于机轮周边的轮轴的中心轮的原理上,这些成角度的周边轮轴把一部分的机轮转向力转化到一个机轮法向力上面。

评论:
相关文章
Blockly 定义块

块定义描述了块的外观和行为,包括文本,颜色,形状以及它可以连接的其他块。


App Inventor 编程实例及指南-第22章 数据库

Facebook的数据库中,有每位用户的账户信息、好友列表以及发布的信息,Amazon的数据库中有你能买到的任何东西,而Google的数据库中有互联网上的每个页面的信息。你自己的应用虽然没有那么大的规模,但一个正规的应用都会用到数据库组件。


App Inventor 编程实例及指南-第13章 掌上亚马逊

假设你正在一家你很喜欢的书店里翻书,你想了解某一本书在Amazon.com(网上书店)的售价,那么这款“亚马逊掌上书店”应用就可以帮你实现这一愿望。




Micro:bit MicroPython 教程 7.3 指南针

micro:bit主板带有一个指南针,可以根据地球磁场判断方向。


CCF中学生计算机程序设计能力等级评价等级标准

CCF于2013年设立《青少年计算机程序设计评价标准》课题,于2014年7月形成评价体系并予以发布。凡参加NOI系列活动的选手均可参加等级评价。



Blockly 工具箱

工具箱是用户可以从中创建新块的侧面菜单。工具箱的结构由XML指定,它可以是节点树或字符串表示形式。当该XML注入页面时,它将传递给Blockly。