动手学树莓派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   阅读(60)   评论(0)
 标签: 编程

涨知识
FreeRTOS

FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。

评论:
相关文章
Small Basic 编程入门 11 - 事件(Events)和交互(Interactivity)

事件就像被触发的信号,例如,为了应对类似移动或点击鼠标的用户操作。某种程度上说,事件同操作是相对的。对于操作,您作为一个程序员调用操作让计算机做一些事情;然后对于事件,计算机通知您一些有意思的事情发生了。


Micro:bit MicroPython 教程 4.1 Python中的循环语句

循环语句允许我们执行一个语句或语句组多次。


Scratch 3.0连接EV3

本文介绍如何在Scratch中对EV3机器人进行开发。


全国青少年软件编程等级考试Scratch知识点

图形化编程需要了解的技能和知识点,以实践应用能力为主。


2025编程教育全面走进我国中小学,站在风口,让孩子未来多一条 “黄金赛道”!

教育部信息科技课标专家组组长熊璋曾明确指出:在很近的将来,信息科技课程还会增加比重,它对社会太重要了。如今这一预言就实现了,


信奥赛学习工具的尽头:全免费

免费的信奥学习资源、训练资源,


Micro:bit MicroPython 教程 6.2 播放内置音乐

MicroPython中内置了许多好听的音乐,你可以直接调用他们直接播放。



【ESP32 C++教程】Unit1-2 C++类基础知识

本小节主要介绍C++ 类相关的基础知识,包括类的定义、继承、多态,范围作用域等。


CCF GESP第十次认证开启报名的通知

CCF GESP第十次认证时间为2025年6月28日,认证方式为全国各GESP考点上机考试。