极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24532|回复: 12

求教:32X64点阵屏问题

[复制链接]
发表于 2013-5-31 13:51:23 | 显示全部楼层 |阅读模式
我有一块32X64双色点阵屏,已知74hc595控制行,74hc245控制列,有高手知道怎么用Arduino UNO驱动吗?感谢!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-5-31 20:06:25 | 显示全部楼层
貌似昨天就有人发过驱动贴,你可以找找,另外245D不是列控制,仅仅是个电平转换,列控制一般都是用138
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-31 23:34:51 | 显示全部楼层
好的,是错了。确实是138控制列。但有一个问题不明白,为什么一共只有3片138呢
回复 支持 反对

使用道具 举报

发表于 2013-6-1 09:31:09 | 显示全部楼层
这么大个。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-5 14:55:40 | 显示全部楼层
问题解决,参考了X宝上卖家的图片和说明,成功用最小系统点亮,是分上下两个16X32控制的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-6 09:57:30 | 显示全部楼层
发现一个新问题:用半片(16X64)显示四个汉字,发现整体下移了一行,第16行移到了最上面,成了第一行,不知什么原因,检查了138的行扫描代码没问题,单独显示每一行都正确,就是显示整个汉字的时候就移位了,不知道什么原因,求高手指点。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-6 10:28:30 | 显示全部楼层

如图,第一行的点应该出现在第16行的
程序如下:
  1. int g1 = 10;
  2. int g2 = 9;
  3. int lt = 7;
  4. int sk = 8;
  5. int pa=2;
  6. int pb=3;
  7. int pc=4;
  8. int pd=5;
  9. int en=6;
  10. int r1=12;
  11. int r2=11;

  12. unsigned char g[4][32]={
  13.   {255,251,216,59,235,187,235,171,122,171,186,171,186,171,234,171,234,171,218,171,26,171,222,251,221,123,221,187,219,235,247,247        }
  14.   ,/*"测",0*/
  15. {255,215,223,219,239,219,239,223,248,1,255,223,15,223,232,31,238,223,238,239,238,239,234,239,230,53,232,245,253,249,255,253        }
  16.   ,/*"试",1*/
  17. {255,175,255,183,255,191,192,1,223,191,223,191,223,187,193,187,221,187,221,215,221,215,221,237,213,205,187,181,191,121,126,253        }
  18.   ,/*"成",2*/
  19. {255,191,255,191,255,191,1,191,238,3,239,187,239,187,239,187,239,187,239,123,239,123,225,123,14,251,190,251,253,215,251,239        }
  20.   ,/*"功",3*/
  21. };
  22. unsigned char b[][4]={
  23.   {    0,0,0,0        }  ,
  24.   {    1,0,0,0        }  ,
  25.   {    0,1,0,0        }  ,
  26.   {    1,1,0,0        }  ,
  27.   {    0,0,1,0        }  ,
  28.   {    1,0,1,0        }  ,
  29.   {    0,1,1,0        }  ,
  30.   {    1,1,1,0        }  ,
  31.   {    0,0,0,1        }  ,
  32.   {    1,0,0,1        }  ,
  33.   {    0,1,0,1        }  ,
  34.   {    1,1,0,1        }  ,
  35.   {    0,0,1,1        }  ,
  36.   {    1,0,1,1        }  ,
  37.   {    0,1,1,1        }  ,
  38.   {    1,1,1,1        }
  39. };

  40. void setup ()
  41. {
  42.   pinMode(r1,OUTPUT);
  43.   pinMode(r2,OUTPUT);
  44.   pinMode(g1,OUTPUT);
  45.   pinMode(g2,OUTPUT);
  46.   pinMode(lt,OUTPUT);
  47.   pinMode(sk,OUTPUT);
  48.   pinMode(pa,OUTPUT);
  49.   pinMode(pb,OUTPUT);
  50.   pinMode(pc,OUTPUT);
  51.   pinMode(pd,OUTPUT);
  52.   pinMode(en,OUTPUT);
  53.   digitalWrite(en,HIGH);
  54.   digitalWrite(g1,HIGH);
  55.   digitalWrite(g2,HIGH);
  56.   digitalWrite(r1,HIGH);
  57.   digitalWrite(r2,HIGH);
  58. }
  59. void loop()
  60. {
  61.   unsigned char a=0;
  62.   for(a=0; a<16;a++)
  63.   {
  64.     digitalWrite(pa,b[a][0]);
  65.     digitalWrite(pb,b[a][1]);
  66.     digitalWrite(pc,b[a][2]);
  67.     digitalWrite(pd,b[a][3]);

  68.     digitalWrite(lt,LOW);
  69.     shiftOut(r1,sk,MSBFIRST,g[0][a*2]);
  70.     shiftOut(r1,sk,MSBFIRST,g[0][a*2+1]);
  71.     shiftOut(r1,sk,MSBFIRST,g[1][a*2]);
  72.     shiftOut(r1,sk,MSBFIRST,g[1][a*2+1]);
  73.     shiftOut(r1,sk,MSBFIRST,g[2][a*2]);
  74.     shiftOut(r1,sk,MSBFIRST,g[2][a*2+1]);
  75.     shiftOut(r1,sk,MSBFIRST,g[3][a*2]);
  76.     shiftOut(r1,sk,MSBFIRST,g[3][a*2+1]);  

  77.     digitalWrite(lt,HIGH);  
  78.   }
  79. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-6 10:40:43 | 显示全部楼层
同志们,问题解决!刚才突然觉得有点不对,把138扫描的代码移到了595扫描代码的后面,一切OK!

但全屏显示时又出现一个问题,屏幕有抖动,好像刷新率跟不上一样。相信还是扫描代码的原因,还要继续研究啊!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2013-7-15 23:00:18 | 显示全部楼层
pipihua 发表于 2013-6-6 10:40
同志们,问题解决!刚才突然觉得有点不对,把138扫描的代码移到了595扫描代码的后面,一切OK!

但全屏显 ...

我这几天也弄了一块,多谢你的帖子,我的也点亮了,但是闪的厉害,请问您的问题解决了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-16 17:27:38 | 显示全部楼层
本帖最后由 pipihua 于 2013-7-16 17:29 编辑
windseeker 发表于 2013-7-15 23:00
我这几天也弄了一块,多谢你的帖子,我的也点亮了,但是闪的厉害,请问您的问题解决了


优化了代码,感觉好些,但还是闪,但是显示半屏是不闪的,还不清楚原因。等待高手指点。
经过测试,在半屏上通过两次向595输入数据来显示黄色,也会闪烁,原因不明。
回复 支持 反对

使用道具 举报

发表于 2013-7-16 22:28:32 | 显示全部楼层
pipihua 发表于 2013-7-16 17:27
优化了代码,感觉好些,但还是闪,但是显示半屏是不闪的,还不清楚原因。等待高手指点。
经过测试,在 ...

我开了新帖求解决:
http://www.geek-workshop.com/for ... amp;page=1#pid39085
大大们的意思是使用digitalWrite速度太慢,其他的方法我不会,如果你研究透了麻烦告诉我啊,多谢多谢!
回复 支持 反对

使用道具 举报

发表于 2015-2-1 12:06:31 | 显示全部楼层
请问,楼主您的32*64点阵屏在哪里买的?我最近刚买了一个16*64的点阵,还不懂怎么用,还望楼主多多指教啊{:soso_e154:}
回复 支持 反对

使用道具 举报

发表于 2017-1-6 19:24:09 | 显示全部楼层
pipihua 发表于 2013-6-6 10:40
同志们,问题解决!刚才突然觉得有点不对,把138扫描的代码移到了595扫描代码的后面,一切OK!

但全屏显 ...

代码不行啊,没反应
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 12:36 , Processed in 0.054612 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表