2014-8-8 14:53:45 [显示全部楼层]
6666浏览
查看: 6666|回复: 1

[讨论] 【求助】Arduino 8*8点阵模块 桃心呼吸灯效果 代码分析

[复制链接]
【求助】Arduino 8*8点阵模块 桃心呼吸灯效果 代码分析图1
http://www.alsrobot.cn/goods-107.html


请问大神,我购买了一个8*8点阵屏,根据自带的说明书,已经测试通过了显示“桃心”的效果。

但我看不懂说明书里的代码,不知道控制原理。

经过测试、修改后,发现说明书中的代码有一些没有用处,就给删了。

总结出来一份精简版,并且可以正常显示桃心效果。

const int DINPin = 2; //数据引脚 连接到数字2 口
const int CLKPin = 4; //时钟引脚 连接到数字4 口
const int LTHPin = 7; //锁存引脚 连接到数字7 口
byte LieScan[4] = { //列扫描,点阵只点亮一行
0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F
};
byte HanZi_1[] = {
0x1c,0x3e,0x7e,0xfc,0xfc,0x7e,0x3e,0x1c //心形图案
};
void setup() {
pinMode(DINPin,OUTPUT); //设置数据引脚为输出
pinMode(CLKPin,OUTPUT); //设置锁存引脚为输出
pinMode(LTHPin,OUTPUT); //设置时钟引脚为输出
}
void loop() {
{
for(char x = 0;x <4;x++) {
shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]); //先选择列
shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_1[x]); //再送行数据
digitalWrite(LTHPin, LOW); //刷新显示
digitalWrite(LTHPin, HIGH);
}
}
}



问题1:我想把桃心做成呼吸灯的效果,可以渐强减弱,请问代码怎么写?我没有编程基础。。
问题2:哪位大神能讲一下,控制点阵屏的代码规则,假如我想换图案呢?应该怎么写,目前找不到规律。
非常感谢!


【这个是说明书中,原始的代码,供参考】
const int DINPin = 2; //数据引脚 连接到数字2 口
const int CLKPin = 4; //时钟引脚 连接到数字4 口
const int LTHPin = 7; //锁存引脚 连接到数字7 口
byte LieScan[16] = { //列扫描,点阵只点亮一行
0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F
};
byte HanZi_1[] = {
0x1c,0x3e,0x7e,0xfc,0xfc,0x7e,0x3e,0x1c //心形图案
};
byte HanZi_2[] = {
0x1c,0x3e,0x7e,0xfc,0xfc,0x7e,0x3e,0x1c //心形图案
};
byte HanZi_3[] = {
0x1c,0x3e,0x7e,0xfc,0xfc,0x7e,0x3e,0x1c //心形图案
};
void setup() {
pinMode(DINPin,OUTPUT); //设置数据引脚为输出
pinMode(CLKPin,OUTPUT); //设置锁存引脚为输出
pinMode(LTHPin,OUTPUT); //设置时钟引脚为输出
}
void loop() {
for(unsigned char times_1 = 0;times_1 <250;times_1++) { //持续刷新250 次
for(char x = 0;x <9;x++) {
shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]); //先选择列
shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_1[x]); //再送行数据
digitalWrite(LTHPin, LOW); //刷新显示
digitalWrite(LTHPin, HIGH);
}
}
for(unsigned char times_2 = 0;times_2 <250;times_2++) { //持续刷新250 次
for(char x = 0;x <8;x++) {
shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]); //先选择列
shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_2[x]); //再送行数据
digitalWrite(LTHPin, LOW); //刷新显示
digitalWrite(LTHPin, HIGH);
}
}
for(unsigned char times_3 = 0;times_3 <250;times_3++) { //持续刷新250 次
for(char x = 0;x <8;x++) {
shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]); //先选择列
shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_3[x]); //再送行数据
digitalWrite(LTHPin, LOW); //刷新显示
digitalWrite(LTHPin, HIGH);
}
}
}

Phoebe  高级技匠

发表于 2014-8-8 16:38:09

你好,你可以参考下DFRobot的跳动的心  https://www.dfrobot.com.cn/goods-982.html  可以直接用图形化编程软件画图案。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail