查看: 973|回复: 0

【跟二叔玩AVR】之三:学大家玩8*8点阵

[复制链接]
  • TA的每日心情
    擦汗
    2015-3-6 13:14
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2015-1-16 17:39:51 | 显示全部楼层 |阅读模式
    分享到:
    文前说明:二叔科技原创,首发于52pi.net,运行平台为卓泰的arduino mini(属于AVR 328p)
    最近见好多朋友在玩彩色点阵,二叔也手痒了,
    好吧,点阵也走起,点阵是52pi的老邓给的,是为香蕉派设计的,
    不过在香蕉派上有些问题二叔还没解决,

    先用AVR玩吧,芯片是328P,测试环境是arduino 1.0.x,驱动板是老邓的4x595驱动板,
    下面就是接线图了,估计手里有的也都有香蕉,
    如果确实没有打算自己搞的或许有些麻烦,
    Arduino        26PIN
    Vcc(3.3V)        1
    GND             6
    (CS)D10        24
    (MOSI)D11     19
    (CLK)D13     23
    大概就需要这么五根线,
    由于模块上没有电阻,所以没敢试5V,Arduino需要用3.3V,
    由于线不够长,只能又发床照了

    下边上代码,没啥技术含量:
    #include <SPI.h>unsigned char elscode[24] = {    0x30, 0x30, 0x30, 0x18, 0x18, 0x18,    0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0,    0x01, 0xc0, 0x81, 0x07, 0xe6, 0x81,    0x0f, 0x42, 0x21, 0x0f, 0x02, 0x71};const int slaveSelectPin = 10;void setup() {  pinMode (slaveSelectPin, OUTPUT);  SPI.begin();}void loop() {  int  k=0;  int i;  for(i=1;i<256;i*=2)  {    digitalWrite(slaveSelectPin, LOW);    SPI.transfer((byte)i);     SPI.transfer((byte)(0xff-elscode[k+2]));     SPI.transfer((byte)0xff);     SPI.transfer((byte)0xff);     digitalWrite(slaveSelectPin, HIGH);    digitalWrite(slaveSelectPin, LOW);    SPI.transfer((byte)i);     SPI.transfer((byte)0xff);     SPI.transfer((byte)(0xff-elscode[k+1]));     SPI.transfer((byte)(0xff-elscode[k+0]));     digitalWrite(slaveSelectPin, HIGH);    k+=3;  }}运行效果如下,是张静态图,大家可以试着玩玩,有能力的朋友可以改成游戏

    小撸发给二叔的效果图,据说5V也可以,亮瞎了,不过后果自负
    回复

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-12-19 03:56 , Processed in 0.115505 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.