树莓派点阵显示:使用按键控制显示字母 'z' 和 'e'
以下是一个示例代码,使用两个按键控制点阵显示字母'z' 和 'e':
import RPi.GPIO as GPIO
import time
# 定义点阵的行列引脚
rows = [11, 12, 13, 15, 16, 18, 22, 7]
cols = [19, 21, 23, 24, 26, 8, 10, 3]
# 定义字母'z' 和 'e' 的点阵图案
letter_z = [[1, 1, 1, 1, 1, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 1, 1],
[0, 0, 0, 0, 0, 1, 0, 0],
[0, 0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 1, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0],
[1, 1, 1, 1, 1, 1, 1, 1]]
letter_e = [[1, 1, 1, 1, 1, 1, 1, 1],
[1, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 0, 0, 0, 0, 0, 0],
[1, 1, 1, 1, 1, 1, 0, 0],
[1, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 0, 0, 0, 0, 0, 0],
[1, 1, 1, 1, 1, 1, 1, 1]]
# 初始化GPIO引脚
def setup():
GPIO.setmode(GPIO.BOARD)
for pin in rows + cols:
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.LOW)
# 显示指定的点阵图案
def display_pattern(pattern):
for i in range(8):
GPIO.output(cols[i], GPIO.HIGH)
for j in range(8):
GPIO.output(rows[j], pattern[i][j])
time.sleep(0.001)
GPIO.output(cols[i], GPIO.LOW)
# 主函数
def main():
setup()
while True:
# 第一个按键显示字母'z'
if GPIO.input(29) == GPIO.HIGH:
display_pattern(letter_z)
# 第二个按键显示字母'e'
if GPIO.input(31) == GPIO.HIGH:
display_pattern(letter_e)
# 程序入口
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
GPIO.cleanup()
请注意,以上代码假设使用树莓派的GPIO引脚控制点阵显示,需要根据实际硬件接线情况进行更改。此外,代码中的按键引脚号为29和31,也需要根据实际情况进行修改。
原文地址: https://www.cveoy.top/t/topic/pj9h 著作权归作者所有。请勿转载和采集!