0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在Arduino下如何直接以LED组建点阵屏

奈因PCB电路板设计 来源:嵌入式ARM 作者:jinglixixi 2021-07-26 17:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

FireBeetle 24×8 LED点阵屏是萤火虫系列的配件产品,与常规点阵屏不同的是它直接用LED发光二极管来构建显示阵列,而非用点阵模块来构建。

为了节省I/O口,该点阵屏是采用高性能的LED驱动芯片HT1632C来进行控制。对每个LED都有独立的寄存器,故可分别驱动每个LED灯。它内置了256KHz的RC时钟,在低功耗模式下,可关闭RC时钟,使功耗仅为5uA。

点阵屏的外观如图1和图2所示,尽管显示屏的引脚较多,但在使用时所涉及的引脚并不很多。

点阵屏的性能如下:

· 工作电压:3.3V· 显示颜色:白色· HT1632C驱动芯片· 内置256KHzRC时钟· 低功耗:5uA· 工作电流:6mA~100mA· 串行数据通信· 支持Arduino库· 支持滚屏显示· 接口方式:FireBeetle系列兼容· 工作温度:-40℃~+85℃· 模块尺寸:24 ×58(mm)/0.94 x 2.28(inches)· 安装孔尺寸:内径3.1mm/外径6mm

要驱动该点阵屏有2种方式,一种是以常规的Arduino开发板来驱动,另一种则是以ESP32-E Arduino开发板来驱动。

对于常规的Arduino开发板驱动,在使用前安装对应的FireBeetleLEDMatrix-master库,安装后即可见到对应库以供使用。

若以ESP32-EArduino开发板来驱动,则无法直接进行编译和上传,为此只好以I/O口驱来编程实现。

按点阵屏的原理图可知,为了便于使用片选信号CS是可供选择的,选择的对象可以是CS1~CS4中的任意一个,选取时只需将S1对应的开关接通即可。而CS1~CS4所对应的引脚则是D2~D5,编程时是以A4来控制串行。

6b49ede0-e06d-11eb-9e57-12bb97331649.jpg

图8 点阵屏片选控制

6b89133a-e06d-11eb-9e57-12bb97331649.jpg

图9 片选开关

为此,点阵屏与开发板的连接关系定义为:

#define cs1 A4#define rd D3#define wr D7#define dat D2

实现HT1632C初始化的函数为:

void HT1632C_Init(void){ digitalWrite(cs1, HIGH); #define SYS_DIS 0x00 //关闭系统震荡 #define SYS_EN 0x01 //打开系统震荡 #define LED_OFF 0x02 //关闭LED显示 #define LED_ON 0x03 //打开LED显示 #define BLINK_OFF 0x08 //关闭闪烁 #define BLINK_ON 0x09 //打开闪烁 #define SLAVE_MODE 0x10 //从模式 #define RC_MASTER_MODE 0x18 //内部RC时钟 #define COM_OPTION 0x24 //24:16COM,NMOS。C:COM,PMOS。 #define PWM_DUTY 0xAE //PWM亮度控制 digitalWrite(wr, HIGH); digitalWrite(dat, HIGH); HT1632C_Write_CMD(SYS_DIS); //关闭HT1632C内部RC时钟 HT1632C_Write_CMD(COM_OPTION); //选择HT1632C工作模式,COM,NMOS模式 HT1632C_Write_CMD(RC_MASTER_MODE); //选择内部RC时钟 HT1632C_Write_CMD(SYS_EN); //打开HT1632C内部RC时钟 HT1632C_Write_CMD(PWM_DUTY); //PWM亮度设置 HT1632C_Write_CMD(BLINK_OFF); //关闭闪烁 HT1632C_Write_CMD(LED_ON); //打开LED显示}

实现清屏处理的函数为:

void HT1632C_clr(void){ unsigned char i; digitalWrite(cs1, LOW); HT1632C_Write(0xa0,3); HT1632C_Write(0x00,7); for(i=0;i《48;i++) HT1632C_Write(0,8); digitalWrite(cs1, HIGH);}

向HT1632C发送数据的函数为:

voidHT1632C_Write(unsigned char Data,unsigned char cnt){ unsigned char i; for(i=0;i《cnt;i++) { digitalWrite(wr, LOW); if(Data & 0x80) digitalWrite(dat, HIGH); else digitalWrite(dat, LOW); Data《《=1; digitalWrite(wr, HIGH); }}

向HT1632 C写入命令的函数为:

void HT1632C_Write_CMD(unsignedchar cmd){digitalWrite(cs1, LOW);HT1632C_Write(0x80,3);HT1632C_Write(cmd,9);digitalWrite(cs1, HIGH);}

向HT1632 C写入数据的函数为:

void HT1632C_Write_DATA(unsignedchar Addr,unsigned char p,unsigned char cnt){ unsigned char i; digitalWrite(cs1, LOW); HT1632C_Write(0xa0,3); HT1632C_Write(Addr《《1,7); for(i=0;i《cnt;i++) { HT1632C_Write(p,8); } digitalWrite(cs1, HIGH);}

实现显示效果的配置程序为:

void setup() { unsigned char temp=0xAA; pinMode(LED_BUILTIN, OUTPUT); pinMode(cs1, OUTPUT); pinMode(rd, OUTPUT); pinMode(wr, OUTPUT); pinMode(dat,OUTPUT); HT1632C_Init(); HT1632C_clr(); HT1632C_Write_DATA(0x00,temp,48);}

经程序的编译与上传,其界面如图11所示。

6bc60ef2-e06d-11eb-9e57-12bb97331649.jpg

图11 完成程序上传

实现图12所示三角形绘制的程序如下:

{ unsigned char i,b; digitalWrite(cs1, LOW); HT1632C_Write(0xa0,3); HT1632C_Write(0x00,7); b=1; for(i=0;i《24;i++) { if(i%8==0) b=1; else b=(b《《1)+1; HT1632C_Write(b,8); HT1632C_Write(b,8); } digitalWrite(cs1, HIGH);}

6bf5778c-e06d-11eb-9e57-12bb97331649.jpg

图12绘制三角形

实现图13所示数值显示的程序如下:

voidsetup() { unsigned char temp=0xFF; pinMode(LED_BUILTIN, OUTPUT); pinMode(cs1, OUTPUT); pinMode(rd, OUTPUT); pinMode(wr, OUTPUT); pinMode(dat,OUTPUT); HT1632C_Init(); HT1632C_clr(); HT1632C_Write_C(58,8); HT1632C_Write_C(26,6); HT1632C_Write_C(26,4);}

对于的字符显示函数为:

voidHT1632C_Write_C(unsigned char Addr,unsigned char p){ unsigned char i; digitalWrite(cs1, LOW); HT1632C_Write(0xa0,3); //ID:101 HT1632C_Write(Addr《《1,7); for(i=0;i《8;i++) { HT1632C_Write(dot[p*8-i],8); HT1632C_Write(dot[p*8-i],8); } digitalWrite(cs1, HIGH);}

6c0ae324-e06d-11eb-9e57-12bb97331649.jpg

图13 数值显示

所使用的字模由工具软件PCtoLCD2002来提取,其提取的格式定义如图15所示。

6c28132c-e06d-11eb-9e57-12bb97331649.jpg

图14字模提取

6c3e031c-e06d-11eb-9e57-12bb97331649.jpg

图15字模格式定义

相应的字库格式为:

unsignedchar dot[]= {0x00,0x38,0x44,0x44,0x44,0x44,0x38,0x00,/*“0”,0*/0x00,0x48,0x48,0x7C,0x40,0x40,0x00,0x00,/*“1”,1*/0x00,0x48,0x64,0x64,0x64,0x54,0x6C,0x00,/*“2”,2*/0x00,0x28,0x44,0x4C,0x4C,0x54,0x34,0x00,/*“3”,3*/0x00,0x10,0x28,0x24,0x64,0x7E,0x00,0x00,/*“4”,4*/0x00,0x3C,0x54,0x54,0x54,0x54,0x24,0x00,/*“5”,5*/0x00,0x38,0x54,0x54,0x54,0x54,0x20,0x00,/*“6”,6*/0x00,0x0C,0x04,0x74,0x14,0x0C,0x04,0x00,/*“7”,7*/0x00,0x2C,0x54,0x54,0x54,0x54,0x2C,0x00,/*“8”,8*/0x00,0x08,0x54,0x54,0x54,0x74,0x38,0x00,/*“9”,9*/};

这样我们要驱动FireBeetle 24×8 LED点阵屏的显示,就有了2种方法。

本文系21ic论坛蓝V作者jinglixixi原创撰写

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    243

    文章

    24440

    浏览量

    687536

原文标题:直接以LED组建点阵屏不多见吧?驱动就一种方法?看看在Arduino下怎样实现

文章出处:【微信号:pcbgood,微信公众号:奈因PCB电路板设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    原厂 FZH114C  一款LED(发光二极管、数码管、点阵)驱动控制专用芯片

    FZH114C通过灵活的亮度调节、单线通讯和动态扫描设计,显著简化了多位数码管或LED点阵的驱动电路设计。其独特的引脚排列(如VDD位于引脚13)和SOP16封装,使其紧凑型设计中
    发表于 11-19 14:43

    FZH114  LED(发光二极管、数码管、点阵)驱动控制专用芯片,集成数字通讯电路、 解码电路、数据锁存器、震荡器

    码管显示、LED点阵、机顶盒显示等。 工业控制设备:需要多位数码管或LED点阵显示的场景。 注意事项 段驱动电流:建议设置为2/8及以上
    发表于 11-19 11:13

    FZH367 具有独立自动呼吸功能的LED(12×16)点阵驱动芯片 原厂技术支持

    对每一个LED的开短路检测功能,通过I2C读指令操作可以确定开短路LED点阵中的具体位置。芯片主要应用于LED
    发表于 11-18 09:18

    原厂 FZH365 具有独立自动呼吸功能的LED(12×12)点阵驱动芯片

    I2C读指令操作可以确定开短路LED点阵中的具体位置。芯片主要应用于LED 显示、家电设备、游戏设备等
    发表于 11-17 09:38

    原厂 FZH364 一款8×8点阵恒流LED驱动芯片

    /QFN20/SSOP20管脚排列 典型应用电路 应用场景· 单色/全彩LED点阵:信息牌、广告、智能家居面板。· 工业设备状态指示:高精度多区背光控制。总结FZH364 是一款高
    发表于 11-17 09:34

    慧聪品牌巡展南宁收官:国鑫光电LED全息、晶膜、格栅、透明引爆数智融合新热潮

    ,共同探讨数智化时代的产业创新路径。其中,深圳市国鑫光电科技股份有限公司携其明星产品——LED全息LED晶膜
    的头像 发表于 08-08 16:22 3253次阅读
    慧聪品牌巡展南宁收官:国鑫光电<b class='flag-5'>LED</b>全息<b class='flag-5'>屏</b>、晶膜<b class='flag-5'>屏</b>、格栅<b class='flag-5'>屏</b>、透明<b class='flag-5'>屏</b>引爆数智融合新热潮

    LED电视等于真LED吗?

    LED电视等于真LED吗?
    的头像 发表于 08-05 15:03 722次阅读

    【VisionFive 2单板计算机试用体验】驱动LED点阵

    一、引言 上期咱分享了环境搭建与GPIO点灯实验,今儿在此基础上,验证一驱动8x8的LED点阵,由于之前的环境与VisionFive.gpio包已安装好,因此实验起来比较顺利。由参
    发表于 07-23 00:45

    Texas Instruments TPS92401 LED点阵控制器数据手册

    FET为单个LED提供PWM调光功能。TPS92401点阵控制器包含一个用于系统时钟的内部振荡器,可支持高达16位的集成PWM 发生器,其可编程PWM频率高达60kHz。这些LED点阵
    的头像 发表于 07-14 14:38 526次阅读
    Texas Instruments TPS92401 <b class='flag-5'>LED</b><b class='flag-5'>点阵</b>控制器数据手册

    LED全息LED晶膜:透明显示新潮流的“双雄争霸”

    LED全息LED晶膜:透明显示新潮流的“双雄争霸”
    的头像 发表于 05-17 17:31 661次阅读
    <b class='flag-5'>LED</b>全息<b class='flag-5'>屏</b>与<b class='flag-5'>LED</b>晶膜<b class='flag-5'>屏</b>:透明显示新潮流的“双雄争霸”

    LED灯杆与常规LED显示的区别

    LED灯杆与常规LED显示的区别
    的头像 发表于 03-21 08:45 869次阅读
    <b class='flag-5'>LED</b>灯杆<b class='flag-5'>屏</b>与常规<b class='flag-5'>LED</b>显示<b class='flag-5'>屏</b>的区别

    2.0寸显示,轻薄低功耗12864点阵COG显示

    2.0寸单色LCD液晶显示12864图形点阵,轻薄低功耗128*64点阵COG显示
    的头像 发表于 02-19 12:02 1071次阅读
    2.0寸显示<b class='flag-5'>屏</b>,轻薄低功耗12864<b class='flag-5'>点阵</b>COG显示<b class='flag-5'>屏</b>

    品质铸就辉煌:红冉LED显示品质质量保障之道

    LED显示作为现代信息显示的重要载体,其品质直接影响着用户体验和品牌形象。激烈的市场竞争中,品质质量保障已成为LED显示
    的头像 发表于 02-11 15:37 654次阅读
    品质铸就辉煌:红冉<b class='flag-5'>LED</b>显示<b class='flag-5'>屏</b>品质质量保障之道

    高速链路设计难?利用HPM6750双千兆以太网透传实现LED实时控制

    ▲HPM6750双千兆以太网透传方案演示LED显示系统利用发光二极管构成的点阵模块或像素单元组成大面积显示显示字符、图像等信息,具有低功耗、低成本、高亮度、长寿命、宽视角等优点,
    的头像 发表于 02-08 13:45 1659次阅读
    高速链路设计难?利用HPM6750双千兆以太网透传实现<b class='flag-5'>LED</b>大<b class='flag-5'>屏</b>实时控制

    必须知道的LED天幕显示安装技术要求

    业界的广泛认可。那么,LED天幕安装过程中有哪些技术要求呢?     一、轻薄通透     天幕类项目的面积一般非常大,且采用吊装方式进行安装,其自身的重量不容忽视。因此,使用
    的头像 发表于 02-06 14:37 866次阅读