当前位置: 首页 > news >正文

【雕爷学编程】Arduino动手做(195)---HT16k33 矩阵 8*8点阵屏模块6

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百九十五:I2C红色8*8LED点阵屏模块 HT16k33(VK16K33)驱动1088BS 物联网可扩展编程

在这里插入图片描述
在这里插入图片描述

知识点:VK16K33芯片
是一款存储器映射和多功能LED控制驱动芯片。该芯片支持更大 128 点的显示模式(16SEGs×8COMs) 以及更大 13×3 的按键矩阵扫描电路。VK16K33 的软件配置特性使其适用于多种 LED 应用,包括 LED 模块和显示子系统。VK16K33 通过双向I2C 接口可与大多数微控制器进行通信。

功能特点1.工作电压:4.5V~5.5V2.内部 RC 振荡器3.I2C 总线接口4.16×8 位 RAM 用于存储显示数据5.更大显示模式为16×8:16SEGs和8COMs6.读 /写地址自动递增7.多达13×3 按键矩阵扫描功能8. 16阶调光电路9.封装类型:20/24/28-pin SOP VK16K33此系列IC具有低功耗、高抗杂讯及高系统ESD防护能力;VK16K33整合了LED驱动和按键扫描的功能,将控制面板所需要的功能融合于一身,可降低主MCU的负担及需要的I/O数目。采用I2C的介面更可减少控制面板和主板之间的材料成本、进而降低产品整体成本。

VK16K33有28SOP、24SOP和20SOP三种包装,分别对应三种更大显示点数;16x8点LED和13x3个按键、12x8点LED和10x3个按键,以及8x8点LED和8x3个按键。内建显示记忆体及RC振荡电路;工作电压:4.5V~5.5V;VK16K33支持中断信号和轮询两种工作模式。可选择性的提供按键中断信号给MCU,MCU可不须一直检查按键状态。VK16K33与系统控制晶片的传输只需2根信号线,通过VK16K33 侦测按键输入,可减少主版MCU I/O数目及精简主版及面板的布局线路;因此可降低产品整体成本。 VK16K33适用于家电、影音设备、仪表设备、车用装置等LED显示器/面板的控制及驱动。

在这里插入图片描述

在这里插入图片描述

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百零七:I2C红色8*8LED点阵模块VK16k33驱动1088BS树莓派物联网可扩展编程
项目十五:不同方向的滚动字符串

实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验二百零七:I2C红色8*8LED点阵模块VK16k33驱动1088BS树莓派物联网可扩展编程项目十五:不同方向的滚动字符串实验接线:VK16k33    UNOVIN        5VGND        GNDSCL        A5SDA        A4
*/#include <Wire.h>
#include <Adafruit_GFX.h>
#include "Adafruit_LEDBackpack.h"Adafruit_8x8matrix matrix = Adafruit_8x8matrix();void setup() {Serial.begin(9600);Serial.println("8x8 LED Matrix Test");matrix.begin(0x70);  // pass in the address
}static const uint8_t PROGMEM
smile_bmp[] =
{ B00111100,B01000010,B10100101,B10000001,B10100101,B10011001,B01000010,B00111100
},
neutral_bmp[] =
{ B00111100,B01000010,B10100101,B10000001,B10111101,B10000001,B01000010,B00111100
},
frown_bmp[] =
{ B00111100,B01000010,B10100101,B10000001,B10011001,B10100101,B01000010,B00111100
};void loop() {matrix.clear();matrix.drawBitmap(1, 0, smile_bmp, 8, 8, LED_ON);matrix.writeDisplay();delay(500);matrix.clear();matrix.drawBitmap(1, 0, neutral_bmp, 8, 8, LED_ON);matrix.writeDisplay();delay(200);matrix.clear();matrix.drawBitmap(1, 0, frown_bmp, 8, 8, LED_ON);matrix.writeDisplay();delay(200);matrix.clear();      // clear displaymatrix.drawPixel(1, 0, LED_ON);matrix.writeDisplay();  // write the changes we just made to the displaydelay(200);matrix.clear();matrix.drawLine(1, 0, 7, 7, LED_ON);matrix.writeDisplay();  // write the changes we just made to the displaydelay(200);matrix.clear();matrix.drawRect(1, 0, 8, 8, LED_ON);matrix.fillRect(2, 2, 4, 4, LED_ON);matrix.writeDisplay();  // write the changes we just made to the displaydelay(200);matrix.clear();matrix.drawCircle(3, 3, 3, LED_ON);matrix.writeDisplay();  // write the changes we just made to the displaydelay(200);matrix.setTextSize(1);matrix.setTextWrap(false);  // we dont want text to wrap so it scrolls nicelymatrix.setTextColor(LED_ON);for (int8_t x = 0; x >= -36; x--) {matrix.clear();matrix.setCursor(x, 0);matrix.print("Hello");matrix.writeDisplay();delay(50);}matrix.setRotation(3);for (int8_t x = 7; x >= -36; x--) {matrix.clear();matrix.setCursor(x, 0);matrix.print("World");matrix.writeDisplay();delay(50);}matrix.setRotation(0);
}

Arduino实验场景图

在这里插入图片描述

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百零七:I2C红色8*8LED点阵模块VK16k33驱动1088BS树莓派物联网可扩展编程
项目十六:滚动的一串数字

实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验二百零七:I2C红色8*8LED点阵模块VK16k33驱动1088BS树莓派物联网可扩展编程项目十六:滚动的一串数字实验接线:VK16k33    UNOVIN        5VGND        GNDSCL        A5SDA        A4
*/#include <Wire.h>
#include "Grove_LED_Matrix_Driver_HT16K33.h"Matrix_8x8 matrix;void setup() {Wire.begin();matrix.init();matrix.setBrightness(0);matrix.setBlinkRate(BLINK_OFF);
}void loop() {// 显示数字“0”并延迟 400nsmatrix.writeNumber(0, 400);matrix.display();// 显示数字 "-2147483648" 并延迟 (300*11)ns// writeNumber()的显示范围是int32_t(从-2147483648到2147483647)matrix.writeNumber(-2147483648, 300);matrix.display();
}

Arduino实验场景图

在这里插入图片描述

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百零七:I2C红色8*8LED点阵模块VK16k33驱动1088BS树莓派物联网可扩展编程
项目十七:变换的笑脸与流淌的字符"Hello",“World”

实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验二百零七:I2C红色8*8LED点阵模块VK16k33驱动1088BS树莓派物联网可扩展编程项目十七:变换的笑脸与流淌的字符"Hello","World"实验接线:VK16k33    UNOVIN        5VGND        GNDSCL        A5SDA        A4
*/#include <Wire.h>
#include <Adafruit_GFX.h>
#include "Adafruit_LEDBackpack.h"Adafruit_BicolorMatrix matrix = Adafruit_BicolorMatrix();void setup() {Serial.begin(9600);Serial.println("8x8 LED Matrix Test");matrix.begin(0x70);  // pass in the address
}static const uint8_t PROGMEM
smile_bmp[] =
{ B00111100,B01000010,B10100101,B10000001,B10100101,B10011001,B01000010,B00111100
},
neutral_bmp[] =
{ B00111100,B01000010,B10100101,B10000001,B10111101,B10000001,B01000010,B00111100
},
frown_bmp[] =
{ B00111100,B01000010,B10100101,B10000001,B10011001,B10100101,B01000010,B00111100
};void loop() {matrix.clear();matrix.drawBitmap(0, 0, smile_bmp, 8, 8, LED_GREEN);matrix.writeDisplay();delay(500);matrix.clear();matrix.drawBitmap(0, 0, neutral_bmp, 8, 8, LED_GREEN);matrix.writeDisplay();delay(500);matrix.clear();matrix.drawBitmap(0, 0, frown_bmp, 8, 8, LED_GREEN);matrix.writeDisplay();delay(500);matrix.clear();      // clear displaymatrix.drawPixel(0, 0, LED_GREEN);matrix.writeDisplay();  // write the changes we just made to the displaydelay(500);matrix.clear();matrix.drawLine(0, 0, 7, 7, LED_GREEN);matrix.writeDisplay();  // write the changes we just made to the displaydelay(500);matrix.clear();matrix.drawRect(0, 0, 8, 8, LED_GREEN);matrix.fillRect(2, 2, 4, 4, LED_GREEN);matrix.writeDisplay();  // write the changes we just made to the displaydelay(500);matrix.clear();matrix.drawCircle(3, 3, 3, LED_GREEN);matrix.writeDisplay();  // write the changes we just made to the displaydelay(500);matrix.setTextWrap(false);  // we dont want text to wrap so it scrolls nicelymatrix.setTextSize(1);matrix.setTextColor(LED_GREEN);for (int8_t x = 7; x >= -36; x--) {matrix.clear();matrix.setCursor(x, 0);matrix.print("Hello");matrix.writeDisplay();delay(50);}matrix.setRotation(3);matrix.setTextColor(LED_GREEN);for (int8_t x = 7; x >= -36; x--) {matrix.clear();matrix.setCursor(x, 0);matrix.print("World");matrix.writeDisplay();delay(50);}matrix.setRotation(0);
}

Arduino实验场景图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/115835.html

相关文章:

  • Typescript]基础篇之 tsc 命令解析
  • 测试人员简单使用Jenkins
  • 使用RecyclerView构建灵活的列表界面
  • linux ubuntu安装mysql
  • 计算机网络各层的功能以及常用协议
  • M. Minimal and Maximal XOR Sum 2023“钉耙编程”中国大学生算法设计超级联赛(7)hdu7359
  • C++基础篇(五)内存模型及详细示例
  • 基于 JMeter API 开发性能测试平台
  • HBase-写流程
  • [mongo]应用场景及选型
  • linux c語言之crc16错误检测的使用
  • 搭建本地开发服务器
  • linux脚本
  • 企升编辑器word编写插件
  • 怎么在JMeter中的实现关联
  • 算法通关村第六关——如何使用中序和后序来恢复一颗二叉树
  • leetcode算法题--判断是否能拆分数组
  • 基于Flask的模型部署
  • 【资料分享】全志科技T507-H开发板规格书
  • 2023华数杯数学建模C题思路 - 母亲身心健康对婴儿成长的影响
  • 【Kaggle】Identify Contrails to Reduce Global Warming 比赛数据集的可视化(含源代码)
  • Spring(12) BeanFactory 和 ApplicationContext 区别
  • git的日常使用
  • 【Spring Boot】请求参数传json对象,后端采用(pojo)CRUD案例(102)
  • layui之layer弹出层的icon数字及效果展示
  • Python selenium对应的浏览器chromedriver版本不一致
  • Redis的安装方法与基本操作
  • 选读SQL经典实例笔记20_Oracle语法示例
  • JAVA细节/小技巧
  • jmeter如何压测和存储