Arduino与JavaScript开发实例-数码管显示控制-基于HT16K33

数码管显示控制-基于HT16K33

HT16K33是一款内存映射和多功能LED控制器驱动器。 设备中的最大显示段数为 128 个模式(16 段和 8 个公共),具有 13*3 (MAX.) 矩阵键扫描电路。 HT16K33 的软件配置功能使其适用于多种 LED 应用,包括 LED 模块和显示子系统。 HT16K33 与大多数微控制器兼容,并通过两线双向 I2C 总线进行通信。

在前面的文章中,对HT16K33的应用做了详细的介绍,请参考:

1、Led.Digits对象创建与描述

Led.Digits 类构造一个对象,该对象可以代表一个或多个(链接的)8 位、7 段 * LED 数字显示器 (MAX7219/MAX7221) 设备,连接到物理板上。 一个实例最多可以控制 8 个设备,提供 64 个可显示的数字。

前面的文章对Led.Digits做了详细的描述,请参考:

2 、硬件准备

  • Arduino Mega2560开发板一块
  • 8位7段共阴数码管一个
  • HT16K33驱动器一个
  • 面包板一块
  • 杜邦线若干
  • 数据线一条

仿真电路原理图如下:

在这里插入图片描述

3、软件准备

  • VS Code IDE
  • Arduino IDE
  • NodeJs(本次使用的版本为v16.13.0)
  • Visual Studio 2019
  • Electron(本次使用版本为v17.0.1)
  • Proteus 8.13 SP0

前面的文章已经对Arduino与JavaScript开发环境已经做了详细描述,请参考:Arduino与JavaScript开发实例-开发环境搭建

4、代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const five = require('johnny-five')
const moment = require("moment")
const board = new five.Board({port:'COM3',repl:false})

board.on("ready", () => {
console.log('board ready')
var digits = new five.Led.Digits({
controller: "HT16K33"
})

setInterval(() => {
var timedata = moment().format("HH.mm.ss")
console.log(timedata)
digits.print(timedata)
},1000)

})

5、仿真结果

在这里插入图片描述

文章来源: https://iotsmart.blog.csdn.net/article/details/125019796