from machine import Pin, SPI
import time
from max7219 import Max7219
# 初始化
spi = SPI(1, baudrate=10000000, sck=Pin(12), mosi=Pin(11))
cs_pin = Pin(10, Pin.OUT)
screen = Max7219(32, 8, spi, cs_pin, rotate_180=False)
def clear_screen():
"""清屏"""
screen.fill(0)
screen.show()
def display_scroll_text(text, delay=0.1):
"""滚动显示文本"""
width = len(text) * 8 # 估算文本宽度
for i in range(width + 32):
screen.fill(0)
screen.text(text, 32 - i, 0, 1)
screen.show()
time.sleep(delay)
def display_with_effect(number_str):
"""带有效果的显示"""
# 清屏
clear_screen()
# 亮度渐变效果
for brightness in range(0, 9):
screen.brightness(brightness)
time.sleep(0.05)
# 显示数字
screen.text(number_str, 2, 0, 1)
screen.show()
# 闪烁效果
for _ in range(3):
time.sleep(0.5)
screen.brightness(2)
time.sleep(0.1)
screen.brightness(8)
print(f"Displaying: {number_str}")
def main():
print("MAX7219 Display Demo")
# 显示 "1234"
#display_with_effect("1234")
# 等待5秒
#time.sleep(5)
# 滚动显示效果
display_scroll_text("HELLO word", delay=0.08)
# 显示不同内容
'''numbers = ["5678", "90AB", "CDEF"]
for num in numbers:
display_with_effect(num)
time.sleep(2)'''
# 回到1234
#display_with_effect("1234")
# 运行主程序
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
clear_screen()
print("Program stopped")Loading
esp32-s3-devkitc-1
esp32-s3-devkitc-1