首页 树莓派树莓派应用正文

树莓派实例程序3—LED灯矩阵显示

云水 树莓派应用 2023-04-28 18:48:24 135 0 树莓派Python

12接DIN引脚,16接cs引脚,18接CLK引脚,运行后,显示0-9的数字。

import RPi.GPIO as GPIO
import time
DIN = 12
CS = 16
CLK = 18
GPIO.setmode(GPIO.BOARD)
GPIO.setup(DIN, GPIO.OUT)
GPIO.setup(CS, GPIO.OUT)
GPIO.setup(CLK, GPIO.OUT)
buffer0 = ['00011100', '00100010', '00100010', '00100010', '00100010', '00100010', '00100010', '00011100']  # 0
buffer1 = ['00011000', '00001000', '00001000', '00001000', '00001000', '00001000', '00001000', '00011100']  # 1
buffer2 = ['00011100', '00100010', '00100010', '00000100', '00001000', '00010000', '00100000', '00111110']  # 2
buffer3 = ['00011100', '00100010', '00000010', '00001100', '00000010', '00000010', '00100010', '00011100']  # 3
buffer4 = ['00000100', '00001100', '00010100', '00100100', '01000100', '01111110', '00000100', '00000100']  # 4
buffer5 = ['00111110', '00100000', '00100000', '00111100', '00000010', '00000010', '00100010', '00011100']  # 5
buffer6 = ['00011100', '00100010', '00100000', '00111100', '00100010', '00100010', '00100010', '00011100']  # 6
buffer7 = ['00111110', '00100100', '00000100', '00001000', '00001000', '00001000', '00001000', '00001000']  # 7
buffer8 = ['00011100', '00100010', '00100010', '00011100', '00100010', '00100010', '00100010', '00011100']  # 8
buffer9 = ['00011100', '00100010', '00100010', '00100010', '00011110', '00000010', '00100010', '00011100']  # 9
buffer = [buffer0, buffer1, buffer2, buffer3, buffer4, buffer5, buffer6, buffer7, buffer8, buffer9]
def send(byteData):
    for bit in range(0, 8):
        if (byteData & 0x80):
            GPIO.output(DIN, True)
        else:
            GPIO.output(DIN, False)
        byteData = byteData << 1
        GPIO.output(CLK, True)
        GPIO.output(CLK, False)
def writeWord(addr, num):
    GPIO.output(CS, True)
    GPIO.output(CS, False)
    GPIO.output(CLK, False)
    send(addr)
    send(num)
    GPIO.output(CS, True)
def draw(index):
    for i in range(0, 8):
        writeWord(i + 1, int(buffer[index][i], 2))
def initData():
    writeWord(0x09, 0x00)
    writeWord(0x0a, 0x03)
    writeWord(0x0b, 0x07)
    writeWord(0x0c, 0x01)
    writeWord(0xff, 0x00)
try:
    initData()
    for i in range(0, 10):
        draw(i)
        time.sleep(1)
except KeyboardInterrupt:
    pass
GPIO.cleanup()


版权声明

1.本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行测试。
2.本站资源仅供学习和交流使用,版权归资源原作者所有,请在下载后24小时之内自觉删除。
3.若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。
4.若内容涉及侵权或违法信息,请联系本站管理员进行下架处理,邮箱ganice520@163.com(本站不支持其他投诉反馈渠道,谢谢合作)

本文链接:http://apod.cc/index.php/post/646.html

发表评论

评论列表(0人评论 , 135人围观)
☹还没有评论,来说两句吧...