使用MicroPython控制MAX7219显示数字内容 - ESP8266/ESP32教程
使用MicroPython控制MAX7219显示数字内容 - ESP8266/ESP32教程
本教程将详细介绍如何使用MicroPython库控制MAX7219模块,在ESP8266或ESP32开发板上实现数字内容显示。
1. 准备工作
首先需要准备以下硬件和软件:
硬件:
- ESP8266开发板(例如NodeMCU)或者ESP32开发板
- MAX7219模块
- 杜邦线若干
软件:
- MicroPython固件
- ampy工具(用于上传代码到开发板)
2. 连接MAX7219模块
将MAX7219模块连接到开发板上。连接方式如下图所示:
3. 编写代码
3.1 max7219.py
在电脑上新建一个文件,命名为max7219.py,将以下代码复制进去:
from machine import Pin, SPI
import time
class MAX7219():
def __init__(self, spi, cs_pin, num_digits=8):
self.spi = spi
self.cs_pin = cs_pin
self.num_digits = num_digits
self.buffer = [0] * num_digits
self._init()
def _init(self):
self.spi.init(baudrate=100000, polarity=1, phase=0)
self.cs = Pin(self.cs_pin, Pin.OUT)
self.cs.on()
self._write_all(0x09, 0x00) # decode mode: no decode
self._write_all(0x0a, 0x03) # intensity: medium
self._write_all(0x0b, 0x07) # scan limit: all digits
self._write_all(0x0c, 0x01) # shutdown: normal operation
def _write_all(self, register, data):
self.cs.off()
for i in range(self.num_digits):
self.spi.write(bytearray([register, data]))
self.cs.on()
def set_digit(self, index, value):
self.buffer[index] = value
def update(self):
for i in range(self.num_digits):
self.cs.off()
self.spi.write(bytearray([i+1, self.buffer[i]]))
self.cs.on()
def clear(self):
self.buffer = [0] * self.num_digits
self.update()
代码解释:
- MAX7219类:
- 初始化函数__init__中的参数spi和cs_pin用于指定SPI总线和CS引脚的编号,num_digits用于指定数码管数量,默认为8个。
- _init函数: 初始化MAX7219模块。
- _write_all函数: 向所有数码管写入数据。
- set_digit函数: 设置指定位置的数码管显示的数字。
- update函数: 更新所有数码管的显示。
- clear函数: 清除所有数码管的显示。
3.2 main.py
接下来,新建一个文件,命名为main.py,将以下代码复制进去:
from machine import Pin, SPI
import max7219
import time
spi = SPI(1, baudrate=100000, polarity=1, phase=0, sck=Pin(14), mosi=Pin(13))
display = max7219.MAX7219(spi, cs_pin=15, num_digits=4)
while True:
for i in range(10000):
display.set_digit(3, i % 10)
display.set_digit(2, i // 10 % 10)
display.set_digit(1, i // 100 % 10)
display.set_digit(0, i // 1000 % 10)
display.update()
time.sleep(0.001)
代码解释:
- 通过SPI总线初始化MAX7219模块。
- 循环显示0~9999之间的数字。
4. 上传代码
使用ampy工具将max7219.py和main.py上传到开发板上。上传命令如下:
ampy -p /dev/ttyUSB0 put max7219.py
ampy -p /dev/ttyUSB0 put main.py
注意,/dev/ttyUSB0需要替换成实际的串口号。
5. 运行代码
重置开发板,代码就会开始运行,数码管会显示0~9999之间的数字。
6. 结束运行
按下开发板上的复位按钮,代码运行结束。
总结
本教程详细介绍了使用MicroPython控制MAX7219模块显示数字内容的步骤,并提供了一些示例代码。希望这篇文章能够帮助您快速上手,并能够在自己的项目中应用该模块。
原文地址: https://www.cveoy.top/t/topic/nipe 著作权归作者所有。请勿转载和采集!