Arduino AtTiny85 使用SPI驱动8*8 LED点阵

上次分享了《用Arduino IDE USB 驱动 AtTiny 85》,这次记录一下使用Tiny85点亮LED点阵。

准备材料:

1. AtTiny 85芯片一只
2.8*8 LED Matrix一块
3.USB数据线一条

先说接线方式:

VCC——5V
GND——GNDDIN——PB1 MISO ( Master in Slave Out )
CS——PB3
CLK——PB2 SCK/ADC1

接线方式困扰我的是DIN针,之前一直是接在MOSI口上,想当然的理解为主机输出(哎,半路和尚老被欺负),外设输入,却怎么也显示不对;后来换过来试了一下,才正确输出,看来是自己理解的有错误:应该理解为主机(M)负责输出,外设(S)负责接收来自M的输出,不知道这样理解是否正确。

来个接线的图:

Led 点阵针脚接线方式
Led 点阵针脚接线方式
AtTiny85连接Led点阵接线2
AtTiny85连接Led点阵接线2
AtTiny85连接Led点阵接线1
AtTiny85连接Led点阵接线1

如果照着上图接的话,注意对应好颜色就可以了。

再来张运行中的:

Tiny85点亮LED点阵效果图
Tiny85点亮LED点阵效果图

目前只是实现了0-9几个数字的变化,并伴有一个刷新的效果
程序代码如下:

 

AtTiny85是不能直接使用Arduino的SPI库的,这个问题困扰了我很长时间,最后在谷歌找到了答案,并且在github找到了这个类库

然后分享一下用到的取模软件:LED Matrix Animator,感谢geek-workshop@幻生幻灭,虽然使用的板子不一样 :–)

最后看下动画效果:

用Arduino IDE USB 驱动 AtTiny 85 (原创)

网上看到有朋友说心血来潮买了个AtTiny 85,结果不会玩。其实我也是这种情况,有时间会玩玩树莓派,看到这么小巧的板子觉得以后肯定会用到,然后就买了。结果放了几个月后才要拿出来玩一下。属于对硬件嵌入式基本上一窍不通但又比较感兴趣的。

刚开始玩的时候是直接找了跟手机USB线,连上AtTiny 85,插上电脑(win7 x64系统),就听到发现硬件、断开硬件来回不断的这种声音。

OK,笔记本没有com口,想想应该没关系啊,我这是USB直连的,刚买回来就是这么戳了两下,然后没成功就放起来了。

先来两张AtTiny 85的靓照吧,旁边没有使用一角硬币对比,但是高度真的跟一角硬币直径差不多,如果你的项目对空间要求比较苛刻的话,Tiny 85应该能够很好的满足。

Arduino AtTiny 85  正面图这是正面照

Arduino AtTiny 85  背面图

背面照

得幸那天加了Arduino DIYer群,请教了一下大神,就把过程记录一下,感谢@dq。

开始记录点亮AtTiny 85的折腾:

1.首先下载DigisparkArduino-Win32,ok,我认为这是修改过的Arduino IDE。

2.下载完成后直接解压,得到如下目录。

DigisparkArduino-Win32目录列表

 

 

 

第一个是Digispar-Arduino的主程序目录。

第二个是usb模拟串口的驱动目录?我不是很清楚啊。这是度娘告诉我的关于libusb的两篇介绍:

http://www.cnblogs.com/image-eye/archive/2011/08/30/2159897.html

http://blog.sina.com.cn/s/blog_63447c1f01012rwb.html

第三个是一些程序实例目录。

ok,先装驱动,然后打开Digispark-Arduino,开始软件方面的工作,界面看起来是这样的:Digispark-Arduino-1.0.4主界面

3.点击Tools -> Board -> Digispark(Tiny Core) 选择Tiny Core为当前开发版核心。

4.然后选择File -> Example -> Digispark_Example -> Start,选择一个最简单的示例,来验证Arduino IDE驱动AtTiny。装载之后的程序代码如下:

5.直接点击上传按钮,等到出现如下图示后:

上传AtTiny 85提示插入设备

再插入板子,跟普通的Arduino板子是有一点区别的。

然后就会看到AtTiny 85的贴片LED一闪一闪的效果了。

最后得到一个结论是,要驱动AtTiny 85,Arduino IDE加一条USB线就够了,不需要其他的编程器、下载器这些外设了。

如果要烧bootloader,就需要AVRMKII。这个具体还没弄明白,因为我的AtTiny 85已经烧了bootloader。

 

搞定了这个之后,下面就要学习一下如何点亮LED点阵了

各种LED点阵