ESP32-8位数码管使用

  • 简介
  • 一、连接引脚
  • 二、使用步骤
    • 1.创建代码
    • 2.保存运行
  • 总结

简介

详细了解数据管请移步,LED数码管结构与工作原理


一、连接引脚

有3根引脚,名称与功能如下;
vcc 为外接供电电源输入端
GND 地线
DOUT 连接ESP32的19引脚
LOAD 连接ESP32的18引脚
CLK 连接ESP32的21引脚

二、使用步骤

1.创建代码

代码如下(示例):

# Registers and associated values
_NOOP = const(0x0) # Used when cascading Max7219
_DIGIT0 = const(0x1)
_DIGIT1 = const(0x2)
_DIGIT2 = const(0x3)
_DIGIT3 = const(0x4)
_DIGIT4 = const(0x5)
_DIGIT5 = const(0x6)
_DIGIT6 = const(0x7)
_DIGIT7 = const(0x8)
_DECODEMODE = const(0x9)   # (0 = no decode/raw segment values, 1 = decode only digit 0, 0xFF = decode on all digits)
_INTENSITY = const(0xA)        # (0 = lowest intensity, 0xF = max intensity)
_SCANLIMIT = const(0xB)        # (0 = display digit 0 only, 7 = display all 7 digits)
_SHUTDOWN = const(0xC)     # (0 = shutdown, 1 = normal operation)
_DISPLAYTEST = const(0xF)  # (0 = normal mode, 1 = test mode)_HEX_TO_SEG = { 0x0: 0b1111110, 0x1: 0b0110000, 0x2: 0b1101101, 0x3: 0b1111001, 0x4: 0b0110011,0x5: 0b1011011, 0x6: 0b1011111, 0x7: 0b1110000, 0x8: 0b1111111, 0x9: 0b1111011,0xA: 0b1110111, 0xB: 0b0011111, 0xC: 0b1001110, 0xD: 0b0111101, 0xE: 0b1001111,0xF: 0b1000111,   }class Max7219:def __init__(self, spi, cs):self.spi = spiself.cs = csself.cs.init(cs.OUT, True)self.init()def register(self, command, data):self.cs.value(0)self.spi.write(bytearray([command, data]))self.cs.value(1)def init(self):for command, data in ((_SHUTDOWN, 0),    # Turn display off(_SCANLIMIT, 7),  # Display all 7 digits(_DECODEMODE, 0xFF),# Decode all digits (_INTENSITY, 0x3),    # Set brightness to 3(_SHUTDOWN, 1),    # Turn display on):self.register(command, data)def brightness(self, value):if 0 <= value <= 15:self.register(_INTENSITY, value)else:raise ValueError("Brightness out of range")def clear(self):self.register(_DECODEMODE, 0xFF)for i in range(8):self.register(_DIGIT0 + i, 0x0)def write_num(self, value):self.register(_DECODEMODE, 0xFF)if (0 <= value <= 99999999):for i in range(8):self.register(_DIGIT0 + i, value % 10)value = value // 10elif (0 > value >= -9999999):value = -valueself.register(_DIGIT7, 0xA)for i in range(7):self.register(_DIGIT0 + i, value % 10)value = value // 10else:raise ValueError("Value out of range")def write_hex(self, value):self.register(_DECODEMODE, 0x0)if (0 <= value <= 99999999):for i in range(8):self.register(_DIGIT0 + i, _HEX_TO_SEG[value % 16])value = value // 16else:raise ValueError("Value out of range")if __name__ == '__main__':from machine import TouchPad, Pin,SPIimport utime#MAX7219软SPI实现vspi = SPI(2, sck=Pin(21), mosi=Pin(19), miso=Pin(18), baudrate=10000000)display = Max7219(vspi, Pin(18))#清空屏幕display.clear()# 设置亮度#设置数码管亮度亮度范围(0-15)默认为最大亮度15bright=10display.write_num(12345678)

2.保存运行

如果如下(示例):


总结

这个8位数码管可以显示8位数字

ESP32-8位数码管相关推荐

  1. 物联网开发笔记(23)- 使用Micropython开发ESP32开发板之控制4位数码管

    上一节我们讲解了如何控制单个数码管,这一节我们来一起学一下如何控制4位数码管. 一.目的 使用MicroPython开发ESP32控制4位数码管 二.环境 ESP32+数码管+Thonny IDE+电 ...

  2. Micropython ESP32驱动CH455控制4位数码管

    Micropython ESP32驱动CH455控制4位数码管 1.硬件 CH455驱动4位共阴数码管的原理图如下所示. ESP32-S模块,用GPIO4作为SCL和GPIO16作为SDA. 2.软件 ...

  3. ESP32 TM1637显示4位数码管

    文章目录 简介 结果 源码 简介 TM1637驱动4位数码管(4 digital display)是一种比较常用的模块,也是比较常见的数码管驱动方式.为了在数码管上显示信息,尝试了库TM1637(不能 ...

  4. Ardino基础教程 16_一位数码管

    实验十六:一位数码管 数码管是一种常见的普遍的显示数字的显示器件,日常生活中例如:电磁炉,全自动洗衣机,太阳能水温显示,电子钟--等等数不甚数.说以掌握数码管的显示原理,是很有必要的. 数码管是一种半 ...

  5. 2440 8字数码管 显示0到10 c语言,51单片机对8位数码管依次显示0-7的设计

    共阳极数组0~9:display[]={0xC0,0xF9,0xA4,0xB0,0x91,0xA2,0x82,0xF8,0x80,0x90} 共阳极数组A~F:display[]={0x88,0x83 ...

  6. void函数调用时显示不允许使用不完整的_4位数码管显示模块驱动

    TM1637四位数码管模块是一个带时钟点的4位共阳数码管(0.36英寸)的显示模块,驱动芯片为TM1637,驱动方式为IIC,因此只需2根信号线即可使单片机控制4位8段数码管(数码管8级亮度可调). ...

  7. c语言数码管的动态显示时间,8位数码管动态显示时间,可调节,调节的数闪烁显示...

    原标题:8位数码管动态显示时间,可调节,调节的数闪烁显示 // 时间,可调节, //调节时间时,调节的数闪烁显示: //比较两种闪烁的方法: #include #define uint unsigne ...

  8. 8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8。

    8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8. 程序: #include<reg51.h> #include<absacc.h> #def ...

  9. 定时器中断实验 编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。

    编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms使两位数码管从00.01.02--98.99每间隔500ms加1显示. 程序: #include <reg51.h> ...

  10. 定时器中断实验 编写程序使定时器0或者定时器1工作在方式1,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。

    编写程序使定时器0或者定时器1工作在方式1,定时500ms使两位数码管从00.01.02--98.99每间隔500ms加1显示. 程序: #include <reg51.h> #defin ...

最新文章

  1. jquery jcrop java_jcrop基本参数一览
  2. php----http协议 Cookie
  3. 云鲸扫拖一体机器人说明书_比老公更好用的扫拖一体机—自动洗拖布的云鲸扫拖机器人使用体验...
  4. 《ASP.NET Core 微服务实战》-- 读书笔记(第12章)
  5. [转]使用C#开发ActiveX控件
  6. BugkuCTF-MISC题爆照
  7. 06 - java 方法
  8. 解读新突破“中国量子计算机”,真比神威·太湖之光还厉害?
  9. 我和2000万人在B站刷凤凰传奇
  10. Struts2请求处理流程及源码分析
  11. DS18B20使用说明
  12. python-微信公众个性二维码生成-生成自己名片二维码-链接二维码【超酷】
  13. HTML:自定义修改鼠标指针
  14. 浅析智能访客机的应用
  15. 关于GetDC()和ReleaseDC()的问题
  16. codeforces1194B Yet Another Crosses Problem 思维
  17. itext给已有pdf添加页眉页脚
  18. Spring 之AOP AspectJ切入点语法详解(最全了,不需要再去其他地找了)---zhangkaitao
  19. CAD-Cass小结(4)——Cass、CAD对图像校正与等高线矢量化
  20. ffffffffffffff

热门文章

  1. Mac使用技巧:关闭系统自动更新
  2. odb访问mysql数据库(odb的简单用法1)
  3. 理解 asyncio 来构建高性能 Python 网络程序 - Ricequant米筐量化
  4. Freeswitch 常用功能命令及配置详解2021-06-06
  5. esp32语音播放天气预报
  6. 联想d30做文件服务器,应对极限运算挑战 联想D30工作站评测
  7. 戴尔服务器H330阵列卡取消磁盘阵列教程
  8. python人脸对比相似度_Python比较两个图片相似度的方法
  9. 4k hidpi 黑苹果_不折腾不舒服 篇一:2K显示器不得不说的尴尬及解决方案,聊聊MacOS开启HiDPI...
  10. 如何调试 chrome插件