一起用面包板自制arduino吧!——《无线电》第08期
2012-09-05 10:15:11前言:各个arduino产品其实都是对arduino最小系统的各种功能扩展与集成,万变不离其宗,如果自己会做arduino最小系统了,就可以很方便地定制出特殊功能的专用arduino。另外,相信通过这篇文章,大家也会改变“arduino就是买来的一块控制板”的印象。
我们就用市面上最常见的atmega8芯片来介绍怎样自己搭建一个最小系统。先来看一下芯片实物图(见图1),这是一个标准dip封装的atmega8。
图1 dip封装的atmega8
然后我们再看一下dip封装的atmega8芯片的引脚图(见图2),每个引脚对应的是arduino的哪个端口,图上也已经标出。
图2 atmega8芯片引脚及与arduino端口的对应关系
中标:硬件连接
一个最小系统,我们只需要一个16mhz晶体振荡器与两个22pf电容,按照如图3所示的样子连接9、10引脚即可,大家可以参照在面包板上的实物连接来看。
最小系统的硬件部分其实就这么简单,但是arduino之所以叫做arduino,并不单单是硬件,一定要有配套的软件,我们现在就用arduino 1.0.1 ide把bootloader下载进这个最小的硬件系统。
中标:通过下载器下载程序
下载器使用usbtinyisp,icsp接口的1号口接d12,3号口接d13,5号口接reset,2号口接vcc,3号口接d11,6号口接gnd,如图4所示。
图4 arduino最小系统与usbtinyisp下载器连接
先把usb线接上,给usbtinyisp安装驱动后,我们点击进入arduino 1.0.1 ide,“板卡”选择“arduino ng or older w/atmega8”,“编程器”选择usbtinysip,点击“烧写bootloader”,就可以看到下载器的busy灯开始亮,过不到1分钟后,bootloader就下载好了,如图5所示。
图5下载bootloader
然后我们打开官方例子里的blink代码,如图6所示,也就是让d13引脚输出1s高电平,然后输出1s低电平,循环往复,如果d13引脚接上一个led,就会有闪烁的效果。
图6 打开官方例子里的blink代码
这里很关键,编译程序后,选择“文件”里的“使用编程器下载”,如图7所示。下载好以后,给d13引脚接上一个led,就可以看到led在闪烁了。
图7编译程序后,选择 “使用编程器下载”
中标:通过串口下载程序
除了使用编程器下载,我们也可以对下载好bootloader的最小系统通过串口下载,但是因为面包板电路的电器环境比较差,无法使用高速通信的bootloader,所以如果要进行下面的最小系统实验,我们需要更换0022版本的ide。
首先,按照上面的步骤重新给atmega8芯片刷0022 ide的arduino ng控制板的bootloader(此bootloader速度慢一些,但是容易实现手工复位下载程序)。
我们给d13引脚串联一个220ω的电阻和一颗led(用作指示灯);给rst引脚串联一个10kω电阻,接vcc;同时再给rst引脚接一个按钮,按钮另一端接gnd,用来做手工复位。实物连接如图8所示。
图8 在面包板上连接电阻、led和按钮
然后,我们把usb to ttl的vcc接最小系统面包板上的vcc,gnd接gnd,tx接d0,rx接d1,如图9所示。
图9 arduino最小系统与usb to ttl连接
运行arduino 0022 ide,“板卡”选择“arduino ng or older w/atmega8”,选好识别出来的端口号,同样选择blink程序例子,编译,下载。
请注意,下载时有一个最关键的步骤,那就是在点击下载按钮后(见图10),要立刻手工按一下面包板上的复位按钮,程序才可以正常下载。下载好以后,我们就可以看到led在闪烁了。
arduino最小系统只是一个系统运行的最低要求,其他可以根据自己的实际需要进行扩展,做出来自己个性化的arduino。
图10 点击下载按钮后,要立刻按一下面包板上的复位按钮,程序才可以正常下载