和爷爷一起学Arduino:玩LED点阵(HT16K33)1

和爷爷一起学Arduino:玩LED点阵(HT16K33)1

硬件连接

和爷爷一起学Arduino:玩LED点阵(HT16K33)1

左为Mixly代码,右为Arduino代码

2019年,爷爷买了一个很便宜的LED灯点阵。不知道是啥型号,淘宝店家也说不清。只看见电路板上印着“8X8 Matrix”。这个不印我们也知道,外表就是八八六十四个LED灯排列成8X8显示点阵。我们试了很多库,终于弄清了,它与HT16K33兼容。

8X8点阵有64个LED,按常规要用64个数字口。这是不现实的,因为,Arduino UNO一共只有14+6=20个数字口。这个组件用了I2C接口。Arduino控制板是以串行形式向HT16K33送数据的,采用的是I2C(Inter-Integrated Circuit,芯片间)接口。这样,只需要占用两个数字口,一个传时钟信号,SCL(Serial Clock Line,串行时钟线);另一个传数据信号,SDA(Serial Data Line,串行数据线)。

这个组件有4个引脚。自下而上,V:接Arduino板的VCC;C:就是I2C的SCL,我们接Arduino板的D3;D:就是I2C的SDA,我们接D2;G:接GND。

#include 

Matrix myMatrix(2,3);

void setup(){
  myMatrix.begin(0x70);
  myMatrix.clear();
}

void loop(){
  myMatrix.scrollMessage("Michael",300);

}

代码说明,首先要引入(C语言叫“包含”,用宏指令#include)Matrix.h头文件。它里面有类Matrix,按这个类生成一个对象,并指定SCL与SDA所连接的数字口编号。在初始化setup()函数里,调用对象里的clear()函数,对点阵清零,也就是让64个灯都熄灭。主体程序loop()函数只有一句,调用对象里的scrollMessage()函数,让显示消息滚动。这函数有两个参数,一是指定要滚动的消息,这里送的是我的英文名Micael;二是滚动速度,300是比较慢的。

现在这个是用Mixly 1.1.5重新编的。2019年,那时还没有正式版的Mixly,只有β版,好像是0.996版,库函数有问题,做这个滚动没问题,做其它显示是反的。这个点阵组件也有问题,我们把组件按它的印字放,显示的字是倒着从左到右滚动的。

玩这个组件,可以学习I2C接口,这个接口是很重要的。另外,这个组件玩法还有很多,以后再接着说。

最后还是那句话:希望大家批评,一起学习进步。

展开阅读全文

页面更新:2024-04-02

标签:点阵   控制板   自下而上   正式版   店家   时钟   函数   组件   爷爷   信号   接口   对象   消息   代码   数字   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top