查看8*8点阵模块的源代码
←
8*8点阵模块
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
你刚才请求的操作只对属于该用户组的用户开放:
用户
您可以查看并复制此页面的源代码:
[[Image:点阵模块.jpg|400px|thumb|点阵模块]] === 产品简介 === <br> 8*8点阵模块是采用2片74HC595芯片驱动红色8X8点阵管,只需要使用控制器3路IO口,根据点阵管动态扫描原理进行显示,可以显示多种图案。 === 规格参数 === <br> *供电电压:DC5V *使用芯片:74HC595 *模块尺寸:32.5*32.5*14.7MM(长*宽*高) *模块重量:10.6g === 引脚说明 === <br> *1. VCC -- Vcc(电源+5V) *2. GND -- Gnd(地) *3. SER -- 串行移位输入 *4. RCK -- 存储寄存器的时序输入 *5. SRCK -- 移位寄存器的时序输入 === 应用示例 === <br> '''电路连接示意图''' <br> {|border="1" cellspacing="0" align="center" cellpadding="5" width="700px" |- |align="left"|'''点阵模块''' |align="left"|'''Arduino UNO''' |- |align="left"|VCC |align="left"|+5V |- |align="left"|GND |align="left"|GND |- |align="left"|SER |align="left"|D10 |- |align="left"|RCK |align="left"|D11 |- |align="left"|SRCK |align="left"|D12 |} <!--[[Image: 点阵模块接线图.jpg|400px|center|点阵模块模块接线图]]--> 库函数下载:[https://eyun.baidu.com/s/3o7EWj70 TimerOne] '''示例代码''' <br><br> <font color="darkcyan">'''示例一'''</font>:基本显示 <br><br> <font color="seagreen">'''Face.ino:'''</font> <pre > /************************************************** Face ( 8x8 Led Dot Matrix with two 74HC595 on Arduino) by YFROBOT ***************************************************/ #include "TimerOne.h" #include "face.h" // 默认显示 #define ROW_DATA ((row[0]<<7)|(row[1]<<6)|(row[2]<<5)|(row[3]<<4)|(row[4]<<3)|(row[5]<<2)|(row[6]<<1)|(row[7]<<0)) #define COL_DATA ((col[0]<<7)|(col[1]<<6)|(col[2]<<5)|(col[3]<<4)|(col[4]<<3)|(col[5]<<2)|(col[6]<<1)|(col[7]<<0)) // 垂直翻转 //#define ROW_DATA ((row[0]<<0)|(row[1]<<1)|(row[2]<<2)|(row[3]<<3)|(row[4]<<4)|(row[5]<<5)|(row[6]<<6)|(row[7]<<7)) //#define COL_DATA ((col[0]<<0)|(col[1]<<1)|(col[2]<<2)|(col[3]<<3)|(col[4]<<4)|(col[5]<<5)|(col[6]<<6)|(col[7]<<7)) // flip horizontal #define flip_horizontal 7-screenCol // 默认显示 //#define flip_horizontal screenCol // 水平翻转 //Pin connected to DS of 74HC595 int SER = 10; //Pin connected to ST_CP of 74HC595 int RCK = 11; //Pin connected to SH_CP of 74HC595 int SRCK = 12; int row[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; int col[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; byte screen[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; volatile byte screenRow = 0; volatile byte screenCol = 0; // A counter to know what frame we're showing int animationIndex = 0; // 8x8 Point temporary array byte brightnesses[64]; void setup() { // Timer1.initialize(100); pinMode(RCK, OUTPUT); pinMode(SRCK, OUTPUT); pinMode(SER, OUTPUT); // Timer1.attachInterrupt(doubleBuffer); Serial.begin(9600); } void doubleBuffer() { int k = 8; while (k--) { row[screenRow] = 0; col[screenCol] = 1; screenCol++; if (screenCol >= 8) { screenCol = 0; screenRow++; if (screenRow >= 8) { screenRow = 0; } } if ((screen[screenRow] >> flip_horizontal) & B1 == B1) { row[screenRow] = 1; col[screenCol] = 0; digitalWrite(RCK, LOW); shiftOut(SER, SRCK, MSBFIRST, COL_DATA); //先选择列 shiftOut(SER, SRCK, MSBFIRST, ROW_DATA); //再送行数据 digitalWrite(RCK, HIGH); } } } void UpdataDate() { if (animationIndex < animationFrames) { for (int i = 0; i < 64; i++) { int Dot = (animation[animationIndex][i / 4] >> (i % 4 * 2)); brightnesses[i] = (Dot & B1) || (Dot & B10); screen[7 - i / 8] |= (brightnesses[i] << (i % 8)) ; } } unsigned long startime = millis(); while (millis() - startime < animationDelays[animationIndex]) { doubleBuffer(); } animationIndex ++; if (animationIndex >= animationFrames) { //restart animation index animationIndex = 0; } for (int i = 0; i < 8; i++) screen[i] = B0; } void loop() { UpdataDate(); } </pre> <br> <font color="seagreen">'''face.h:'''</font> <br> <pre> int animationFrames = 2; int animationDelays[] = { 1000, 1000 }; // Animation is designed for 8x8 pixels uint8_t animation[][16] = { { 0x55, 0x55, 0x11, 0x44, 0x5, 0x50, 0x1, 0x40, 0x51, 0x45, 0x11, 0x44, 0x11, 0x44, 0x55, 0x55 }, { 0x5, 0x50, 0x5, 0x50, 0x0, 0x0, 0x40, 0x1, 0x40, 0x1, 0x0, 0x0, 0x4, 0x10, 0x50, 0x5 } }; </pre> 程序下载地址:[https://eyun.baidu.com/s/3qYkanve Face] 程序运行结果:点阵模块显示笑脸和囧脸~ [[File:囧脸.png]][[File:笑脸.png]] <br> <br> <font color="seagreen">'''face.h'''</font>文件通过[https://eyun.baidu.com/s/3jIDsGL4 点阵取模软件] 获得: <br> <br> [[File:点阵取模软件演示1.png]][[File:点阵取模软件演示2.png]] <br> <!-- '''示例代码''' <br><br> <font color="darkcyan">'''示例二'''</font>:滚屏显示 <br> 程序下载地址:[http://pan.baidu.com/s/1pJMkfIb Face] 程序运行结果:点阵模块 '''示例代码''' <br><br> <font color="darkcyan">'''示例三'''</font>:乒乓游戏 <br> 程序下载地址: --> 点阵模块滚屏显示,请移步:[http://www.yfrobot.com/thread-11735-1-1.html 点阵模块滚屏显示] 点阵模块配合[http://www.yfrobot.com/wiki/index.php?title=%E6%AC%A7%E5%A7%86%E9%BE%99%E6%8C%89%E9%94%AE%E5%BC%80%E5%85%B3%E6%A8%A1%E5%9D%97 按键模块],做打乒乓游戏!请移步下面网址查看:[http://www.yfrobot.com/thread-2408-1-1.html Arduino驱动8*8点阵模块 附原理图及一个打乒乓球的游戏代码] 乒乓游戏程序下载地址:[http://pan.baidu.com/s/1kT2FGHL 乒乓游戏] ===参考资料=== <br> * [[ Media:点阵模块原理图.jpeg|点阵模块原理图 ]] * [http://pan.baidu.com/s/1pJORDAb 74HC595 datasheet] * [http://pan.baidu.com/s/10pE4e 74HC595 中文数据手册] ---- [[首页 | 返回首页]] 更多建议和问题欢迎反馈至 [http://www.yfrobot.com YFRobot论坛] 购买方式:[http://yfrobot.taobao.com/ YFRobot 电子工作室]
返回
8*8点阵模块
。
导航菜单
个人工具
登录
名字空间
页面
讨论
不转换
变种
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
台灣正體
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
YF-论坛提问
YFRobot-直营店
YFRobot-企业店
Arduino
Arduino之入门篇
Arduino入门教程
Arduino语法参考
Arduino库
Arduino核心代码
编程平台
Mixly库
Mind+库
MakeCode扩展
传感器系列
积木式传感器系列
黑板传感器系列
蓝板传感器系列
Micro:Bit
Micro:Bit 通用基础教程
Valon智能车
Valon-I
帮助
帮助
wiki语法参考
工具箱
链入页面
相关更改
特殊页面
页面信息