pipihua 发表于 2013-5-31 13:51:23

求教:32X64点阵屏问题

我有一块32X64双色点阵屏,已知74hc595控制行,74hc245控制列,有高手知道怎么用Arduino UNO驱动吗?感谢!


swim 发表于 2013-5-31 20:06:25

貌似昨天就有人发过驱动贴,你可以找找,另外245D不是列控制,仅仅是个电平转换,列控制一般都是用138

pipihua 发表于 2013-5-31 23:34:51

好的,是错了。确实是138控制列。但有一个问题不明白,为什么一共只有3片138呢

friskit 发表于 2013-6-1 09:31:09

这么大个。。。

pipihua 发表于 2013-6-5 14:55:40

问题解决,参考了X宝上卖家的图片和说明,成功用最小系统点亮,是分上下两个16X32控制的

pipihua 发表于 2013-6-6 09:57:30

发现一个新问题:用半片(16X64)显示四个汉字,发现整体下移了一行,第16行移到了最上面,成了第一行,不知什么原因,检查了138的行扫描代码没问题,单独显示每一行都正确,就是显示整个汉字的时候就移位了,不知道什么原因,求高手指点。

pipihua 发表于 2013-6-6 10:28:30


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

unsigned char g={
{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      }
,/*"测",0*/
{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      }
,/*"试",1*/
{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      }
,/*"成",2*/
{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      }
,/*"功",3*/
};
unsigned char b[]={
{    0,0,0,0      },
{    1,0,0,0      },
{    0,1,0,0      },
{    1,1,0,0      },
{    0,0,1,0      },
{    1,0,1,0      },
{    0,1,1,0      },
{    1,1,1,0      },
{    0,0,0,1      },
{    1,0,0,1      },
{    0,1,0,1      },
{    1,1,0,1      },
{    0,0,1,1      },
{    1,0,1,1      },
{    0,1,1,1      },
{    1,1,1,1      }
};

void setup ()
{
pinMode(r1,OUTPUT);
pinMode(r2,OUTPUT);
pinMode(g1,OUTPUT);
pinMode(g2,OUTPUT);
pinMode(lt,OUTPUT);
pinMode(sk,OUTPUT);
pinMode(pa,OUTPUT);
pinMode(pb,OUTPUT);
pinMode(pc,OUTPUT);
pinMode(pd,OUTPUT);
pinMode(en,OUTPUT);
digitalWrite(en,HIGH);
digitalWrite(g1,HIGH);
digitalWrite(g2,HIGH);
digitalWrite(r1,HIGH);
digitalWrite(r2,HIGH);
}
void loop()
{
unsigned char a=0;
for(a=0; a<16;a++)
{
    digitalWrite(pa,b);
    digitalWrite(pb,b);
    digitalWrite(pc,b);
    digitalWrite(pd,b);

    digitalWrite(lt,LOW);
    shiftOut(r1,sk,MSBFIRST,g);
    shiftOut(r1,sk,MSBFIRST,g);
    shiftOut(r1,sk,MSBFIRST,g);
    shiftOut(r1,sk,MSBFIRST,g);
    shiftOut(r1,sk,MSBFIRST,g);
    shiftOut(r1,sk,MSBFIRST,g);
    shiftOut(r1,sk,MSBFIRST,g);
    shiftOut(r1,sk,MSBFIRST,g);

    digitalWrite(lt,HIGH);
}
}

pipihua 发表于 2013-6-6 10:40:43

同志们,问题解决!刚才突然觉得有点不对,把138扫描的代码移到了595扫描代码的后面,一切OK!

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

windseeker 发表于 2013-7-15 23:00:18

pipihua 发表于 2013-6-6 10:40 static/image/common/back.gif
同志们,问题解决!刚才突然觉得有点不对,把138扫描的代码移到了595扫描代码的后面,一切OK!

但全屏显 ...

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

pipihua 发表于 2013-7-16 17:27:38

本帖最后由 pipihua 于 2013-7-16 17:29 编辑

windseeker 发表于 2013-7-15 23:00 static/image/common/back.gif
我这几天也弄了一块,多谢你的帖子,我的也点亮了,但是闪的厉害,请问您的问题解决了

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

windseeker 发表于 2013-7-16 22:28:32

pipihua 发表于 2013-7-16 17:27 static/image/common/back.gif
优化了代码,感觉好些,但还是闪,但是显示半屏是不闪的,还不清楚原因。等待高手指点。
经过测试,在 ...

我开了新帖求解决:
http://www.geek-workshop.com/forum.php?mod=viewthread&tid=5335&page=1#pid39085
大大们的意思是使用digitalWrite速度太慢,其他的方法我不会,如果你研究透了麻烦告诉我啊,多谢多谢!

geek123 发表于 2015-2-1 12:06:31

请问,楼主您的32*64点阵屏在哪里买的?我最近刚买了一个16*64的点阵,还不懂怎么用,还望楼主多多指教啊{:soso_e154:}

zfx2017 发表于 2017-1-6 19:24:09

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

但全屏显 ...

代码不行啊,没反应
页: [1]
查看完整版本: 求教:32X64点阵屏问题