极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 103550|回复: 68

面包板搭建Arduino最小系统(修订版)

  [复制链接]
发表于 2012-8-12 21:09:38 | 显示全部楼层 |阅读模式
各个Arduino产品其实都是对Arduino最小系统的各种功能扩展与集成,万变不离其宗,如果自己会做Arduino最小系统了,就可以很方便的定制出特殊功能的专用Arduino。

我们就用市面上最常见的ATMEGA8芯片来介绍怎样自己搭建一个最小系统。先来看一下芯片实物图,这是一个标准DIP封装的ATMEGA8。




然后我们再看一下DIP封装的ATMEGA8芯片的引脚图,每个引脚对应的是Arduino哪个端口,图上也已经标出。



一个最小系统我们只需要一个16M晶振与两个22PF电容,按照下图这样子连接9,10引脚。



在面包板上实物连接是这样子的。



最小系统的硬件部分其实就这么简单,但是Arduino之所以叫做Arduino并不单单是硬件,一定要有配套的软件,我们现在就用Arduino 1.0.1 IDE把Bootloader下载进入这个最小的硬件系统。

下载器使用USBTINYISP,ICSP接口1号口接D12,3号接D13,5号接RESET,2号口接VCC,3号口接D11,6号口接GND。如图:




我们看看实物连接图。



先把USB线接上,给USBTINYISP安装驱动后,然后我们点击进入Arduino 1.0.1 IDE,“板卡”选择Arduino NG,“编程器”选择USBTINYSIP,点击“烧写Bootloader”,就可以看到下载器的BUSY灯开始亮,过不到1分钟后,Bootloader就下载好了,





然后我们打开官方例子BLINK代码,就是让D13引脚1秒输出高电平,1秒输出低电平,如果D13引脚接上一个LED,就会有闪烁的效果。



这里很关键,我们编译后,选择文件里的“使用编程器下载”。



下载好以后,我们给D13引脚接上一个LED,就可以看到LED在闪烁了。

除了使用编程器下载,我们也可以对下载好Bootloader的最小系统通过串口下载,但是因为面包板电路电器环境比较差,导致无法使用高速通信的Bootloader,所以如果要进行下面的最小系统实验,我们需要更换0022版本IDE。

首先按照上面的步骤重新给ATMEGA8芯片刷0022 IDE的NG控制板的Bootloader(此Bootloader速度慢一些,但是容易实现手工复位下载程序)。

我们给13引脚串联一个220欧姆的电阻接一颗LED用来做指示灯。RST引脚串联一个10K电阻接VCC,RST引脚同时接一个按钮,按钮另一端接GND用来用作手工复位。实物连接如图:




然后我们把USB TO TTL的VCC接最小系统面包板上的VCC,GND接GND,TX接D0,RX接D1。这样子进行接好,如下图:



运行Arduino 0022 IDE 控制板选择NG ATMEGA8,选好识别出来的端口号,同样选择BLINK例子,点击编译,下载。

点击下载后就有一个最关键的步骤,那就是要点击下载后,要立刻手工按下面包板上的复位按钮,这样子程序才可以正常下载。




下载好以后,我们就可以看到LED在闪烁了。

Arduino最小系统,只是一个系统运行的最低要求,其他可以根据自己的实际需要进行扩展,做出来自己个性化的Arduino。

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2012-8-13 02:45:53 | 显示全部楼层
通过实际验证,AVCC、VCC和VGND、GND之间的105独石电容,还有AREF和GND之间的105独石电容不接的话,这个最小系统不稳定。比如说做按键PWM控制LED的实验的时候,LED不是渐亮渐灭的,而是按下按键一段时间之后忽然亮,或者忽然灭。不知道我这是不是个例,不过之前有看过帖子说加这个可以自动复位什么的。
回复 支持 反对

使用道具 举报

发表于 2012-8-13 09:39:43 | 显示全部楼层
我必须的试试了
回复 支持 反对

使用道具 举报

发表于 2012-8-13 19:28:45 | 显示全部楼层
这篇文章好眼熟,你不会是把....发了吧{:soso_e151:}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-13 20:15:41 | 显示全部楼层
幻生幻灭 发表于 2012-8-13 19:28
这篇文章好眼熟,你不会是把....发了吧

被你发现了
回复 支持 反对

使用道具 举报

发表于 2012-8-23 15:45:34 | 显示全部楼层
无线电上我也看见了
回复 支持 反对

使用道具 举报

发表于 2012-8-26 22:05:33 | 显示全部楼层
求大神指点
arduino和51有什么不同?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-26 23:35:00 | 显示全部楼层
lanse2pty 发表于 2012-8-26 22:05
求大神指点
arduino和51有什么不同?

额。。。。这个不同太多了,总体来说呢,Arduino相对51更适合新手入门,Arduino有很多高手写的库,封装了复杂的协议,使用起来相对简单很多。
回复 支持 反对

使用道具 举报

发表于 2012-8-29 08:31:52 | 显示全部楼层
对于新手来说,这篇文章不错!
回复 支持 反对

使用道具 举报

发表于 2012-8-29 22:09:28 | 显示全部楼层
老大,这里的atmega8用8MHZ的行吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-29 23:37:39 | 显示全部楼层
花花和尚 发表于 2012-8-29 22:09
老大,这里的atmega8用8MHZ的行吗?

可以用8MHz,不过bootloader也得刷入对应的8M的版本~~~
回复 支持 反对

使用道具 举报

发表于 2012-8-30 09:19:31 | 显示全部楼层
我已成功自制第一个Arduino,谢谢弘毅大哥。


还要请教问题:1.每次下载程序都的用这个下载器用同样的方式下载吗?
              2.能不能把空集成块安到Arduino板子的Arduino座里,插ICSP座接口用你教的方法下载?
              3.能不能下载其他型号的AVR集成块,比如:ATmega328。还有其它的。怎么下?

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2012-9-29 15:43:28 | 显示全部楼层
弘毅 发表于 2012-8-26 23:35
额。。。。这个不同太多了,总体来说呢,Arduino相对51更适合新手入门,Arduino有很多高手写的库,封装了 ...

谢谢了,为什么一定要10个字。。
回复 支持 反对

使用道具 举报

发表于 2012-10-23 23:28:53 | 显示全部楼层
cnkids 发表于 2012-8-13 02:45
通过实际验证,AVCC、VCC和VGND、GND之间的105独石电容,还有AREF和GND之间的105独石电容不接的话,这个最小 ...

我服你了哈!
回复 支持 反对

使用道具 举报

发表于 2012-10-24 08:57:58 | 显示全部楼层
LZ你用的芯片和ICSP那张图是配套的,普通芯片根本没有D12之类的标记,我第一次还被误导了
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-4-25 20:19 , Processed in 0.044748 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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