1.2.3 电源电源电路并不会真的给Arduino**提供**任何电源,它只是把外部电源传输、稳压和过滤给Arduino。现在的电路已经经过了多年的演变,易于使用——基本上是傻瓜式的过程。电路会自己选择最高可用电压的来源,供给其他各个部分。板上甚至还装了一个可恢复保险丝,以防短路造成损坏,减少过热造成损坏的几率。这正是Arduino团队在过去这些年中倾听用户群体的声音,不断对产品加以改进的成果。
有多种办法可以给Arduino供电。最简单也是最初始的方法,就是通过连接到PC的USB线给它供电。USB标准允许向一个未枚举的USB设备(就是插入插座但是没有向主机报告自己身份的设备,比如USB电源线)提供5.0V上最大100mA(即0.1A)的电流,而枚举了的USB设备可以获得多达500mA(0.5A)的电流。这足以提供电力来点亮几个LED灯或是驱动几个低功耗的传感器,但是对于大电流负载,比如继电器、加热器、风扇、马达或电磁阀还是不够的。
若Arduino没有通过USB线连接到PC,可以通过扩展插座上标着5V和GND(地)的引脚向它输入稳压过的5V电源。
警告 通过5V和GND引脚从外部接电时必须接稳压过的5V电源。未经稳压的电源的电压会随着电网电压以及板上负载的变化而变化,就很可能会突破狭小的正常电压范围,造成处理器在内的若干器件的永久损坏。标准的Arduino I/O板上有一个稳压器,接未稳压的电源时应该用上它。
对于未稳压的电源,板上有一个圆孔插座,从这里可以输入7V到12V的电源,它直接接到一个5V的稳压电路。理论上输入的电压可以高达20V,但是这样的话,稳压芯片就有可能过热,而过热则可能永久损害PCB。
最新设计的Arduino的PCB极大地改善了稳压芯片焊在板上的接地面,提高了铜箔散热的能力。不过尽管如此,保守估计这个芯片的热阻也会超过100°C/W,也就是说如果有1W的功率要消耗在这个器件上,器件表面的温度就要比环境温度升高100°C。这真是太热了!千万别欺它太甚!
圆孔插座内部有一个2.1 mm直径的针,插座中央的这个针是接正极的,外圈的套管是接地的。插座内芯的针也直接接到扩展插座的Vin引脚。Vin引脚可以用来给插在扩展插座上的盾板(shield)供电,也可以从盾板向Arduino板供电。
现在的Arduino I/O板有一个非常好的设计,允许同时连接多个电源。智能电源切换电路会选择最高可用电压的电源,然后将其接入稳压器。
如果跳过这个电路直接向Arduino提供稳压的5V电源——很可能有人会这样做——一定要小心确认接的是5V的电源,因为所有提供保护的安全措施都被跳过了。当然,如果你头脑很清楚,这样做也无妨 。
Arduino Uno板上还设了一个专用的3.3V稳压器。之前的I/O板便依赖于FTDI USB接口芯片内部的小稳压器提供的3.3V电。虽然这样做没给系统增加任何成本,但是这个小稳压器只能在3.3V上提供最大50mA(0.05A)的电流。Arduino Uno自己配了一个3.3V稳压器(美国国家半导体公司的LP2985;美国国家半导体公司即National Semiconductors,简称国半),可以提供最大150mA(0.15A)的电流,不过Arduino网站上还是只承认提供50mA的电流。
1.2.4 扩展插座
Arduino板上提供了四组扩展插座,以便于连接Arduino到外部电路。在PCB上边缘的两组插座包括数字引脚,以及模拟参考电平输入和额外的接地连接。USART的TX和RX引脚也在其中。
在PCB下边缘的是电源和模拟插座。电源插座提供了到主要的电源电压(Vin、5V、3V3和地)以及到单片机的-RESET引脚的连接。模拟插座接了六个模拟输入,需要时也可以用作数字I/O线。
Arduino PCB的印字有个非常方便的特点,它清晰地标明了每个引脚,这极大地减少了在器件手册和源代码之间反复交叉查证的无聊劳动。参见图1-5。
图1-5 I/O板的扩展插座可以方便地连接外部电路
图中文字: PORT B:端口B; PORT D:端口D; DIGITAL:数字端口; POWER:电源; ANALOG IN:模拟输入; PORT C:端口C
Arduino扩展插座上I/O引脚的编组和命名有个鲜为人知的技术细节。对于Arduino来说,这些引脚就是简单地编号为14个数字引脚D0~D13和6个模拟引脚A0~A5,数字引脚放在板子的上边缘,模拟引脚在下边缘。
这个命名规则,尽管被广泛接受,也在Arduino文档和软件中使用,其实是不准确的,会误导用户。有些数字引脚提供模拟输出能力(见analogWrite()函数),但实际上是脉宽调制(PWM)或纯数字输出。而模拟输入可以和其他数字引脚一样方便地用作数字输入或输出,但是绝对做不了模拟输出。
注意 用做数字引脚时,可以用D14~D19来指代A0~A5。参见表1-1。
从AVR的角度看,Arduino Uno用的ATmega328所属的ATmega8系列有三个通用I/O端口。在ATmega8上,这三个端口分别被命名为Port B、Port C和Port D,每个端口最多有八个I/O引脚。第3章详细介绍了AVR的I/O端口。
这种引脚名字和功能的错乱,以及命名规则的误导,伴随着器件引脚的多功能特性,很容易使人们产生混淆。ATmega328的每个通用I/O引脚都有另外的通过软件可以选择的外围设备功能。比如之前提过的串口引脚RX和TX。对于AVR来说, 第二个引脚(28脚DIP封装)是PD0(I/O端口D,位0)、USART设备的RXD(接收数据输入),也是PCINT16(引脚变化中断16)。而对于Arduino来说,它就是D0(数字引脚0)或RX。
这所有的命名和重命名冲突也有好的一面,Arduino和AVR的命名规则在各自的领域都应用良好,给电路设计提供了很好的排列。表1-1提供了所有扩展插座引脚的详细信息。
表1-1 Arduino I/O板扩展插座引脚名称
注意 贴片封装的ATmega328芯片(不是DIP的版本)有两个额外的模拟输入引脚:ADC6和ADC7。遗憾的是,这两个引脚没有连到Arduino Uno SMB PCB的任何电路上。如果你真的非常非常需要这两个模拟输入,如果你眼不花手不颤,焊接技术很高,可以从芯片的引脚上直接焊出非常细的线来使用。
1.2.5 盾板
扩展插座是安装盾板的地方。盾板使得I/O板可以像一个小型主板一样工作,给其他电路提供机械的和电气的连接。坊间有很多种盾板,给Arduino提供了令人难以置信的扩展能力。
提示 在http://shieldlist.org可以找到Arduino盾板列表,它列出了可用的盾板,以及指向盾板作者的链接,包括关于兼容性、用到的资源(比如用到了哪些引脚)和许可证的信息。
有些(但不是所有的)盾板具有和主I/O板一样的外形,一旦插上,它们的全尺寸电路板就会完全盖住(像盾牌一样保护)下面的I/O板。Marc de Vinck做的创客盾板(Maker Shield)是一个多功能原型盾板,它使用堆叠的接插件,不仅能连接到Arduino I/O板,还复制了相同的扩展插座,使得它上面的盾板可以和其下的Arduino I/O板保持机械和电气连接。创客盾板中央的原型区域可以焊一些元件来扩展Arduino的功能。参见图1-6。
图1-6 创客盾板是一个全尺寸的Arduino盾板,完全盖住了下面的Arduino板。层叠的接插件使得扩展插座上的信号可以传递到上面,这样另一块盾板就可以安装在上面。中间的“洞海”用来安装其他元件以扩展Arduino的功能
对于不需要那么多空间的盾板,或是只需要几个靠得很近的电气引脚的盾板,就可以使用较小的盾板形式。如果用智能的查理复用(charlie-plexing)技术连线,只要4个输出引脚就可以驱动一个12个LED的阵列。第8章详细介绍了查理复用。图1-7是可以使用扩展插座上任意4个连续引脚的原型盾板。
图1-7 只使用几条I/O线的较小盾板可以安装在扩展插座上。使用多路复用连接时可以用Arduino板上四条指定的控制线来独立控制一打LED中的每一颗LED
甚至可以做出远远大于I/O板的盾板来。Critter & Guitari ()出品的 Arduino钢琴盾板(Arduino Piano Shield)为用户提供两个八度类似钢琴的键盘和其他一些控制旋钮,把Arduino变成一个音乐合成器。参见图1-8。
图1-8 Critter & Guitari的Arduino钢琴盾板。这可能是世界上最大的Arduino盾板了。它把Arduino变成了一个完整的音乐合成器,具有两个八度的键盘和其他一些控制旋钮。照片由Critter & Guitari提供并授权使用
扩展插座的间距有点不规整。上边缘的两个插座相对的两个引脚之间相距0.160英寸(4.064 mm),这和0.100英寸(2.54 mm)网格的面包板(breadboard)以及其他很多原型工具不兼容。尽管一直有强烈的呼声要求加以修正,而且改动起来不难,但是为了与之前的Arduino板兼容,这个偏差一直保持了这么多年。主要的原因是一旦这样做,就会使现在本可重用的大量盾板退役。因此,这个不规整就保留了下来。
有一些变通方法来纠正扩展插座间距的问题。Seeedstudio在它的Seeduino Arduino兼容产品上加了额外的两行网格对齐的插针。参见图1-9。
图1-9 Seeedstudio的Seeeduino额外加装了严格位于0.100英寸×0.100英寸网格上的扩展插座,这样就很容易在上面安装面包板和其他标准原型产品。图片由Seeedstudio提供并授权使用
另一个解决引脚间距问题的方案是完全放弃盾板兼容。美国公司Gravitech (www.gravitech.us)——制造了Arduino Nano,它可以直接插在面包板上,所有的接插件(除了USB的mini-B插座)全部都是0.100英寸间距的插针。参见图1-10。
图1-10 Gravitech制造的Arduino Nano,可以轻松地插在一个DIP插座或是面包板上。除了没有圆形电源插座和自恢复保险丝,Nano具有和Duemilanove (详见1.4.6节)相同的电气特性。照片由Gravitech提供并授权使用
1.3 Arduino Mega 2560
几乎无论从哪方面说,Arduino Mega 2560和它的小兄弟们都是一样的,一样跑在16 MHz的主频上,消耗差不多的功率,执行相同的软件,使用相同的开发工具。
Uno和Mega主要的区别在于处理器,ATmega2560比ATmega328内存更大,外围设备更多。Mega的PCB也要大一些,但是保持了和标准Arduino接口的兼容,在右边缘增加了三个扩展插座,PCB的长度增加了大约1英寸(2.54 mm)。电路的其他部分基本上和Arduino Uno是一样的。参见图1-11。
图1-11 Arduino Mega 2560
Mega和Mega 2560型号也主要是所用的处理器不同。最初的Mega用的是128 KB程序存储器的ATmega1280,而Mega 2560用的是256 KB程序存储器的ATmega2560。这两个芯片的其他特性基本上是一样的。
关于Arduino Uno、最初的Arduino Mega和Arduino Mega 2560的比较,见表1-2。
表1-2 Arduino Uno和Arduino Mega功能的比较
技术参数 | Arduino Uno | Arduino Mega 1280 | Arduino Mega 2560 |
处理器 | ATmega328 | ATmega1280 | ATmega2560 |
程序存储器 | 32 KB | 128 KB | 256 KB |
数据存储器 | 2 KB | 8 KB | 8 KB |
EEPROM | 1 KB | 4 KB | 4 KB |
芯片引脚 | 28/32* | 100 | 100 |
数字I/O引脚 | 14 | 54 | 54 |
模拟输入 | 6 | 16 | 16 |
PWM输出 | 6 | 14 | 14 |
串口 | 1 | 4 | 4 |
ATmega328的DIP版本是28脚,而SMD版本是32脚。
更多试读内容请移步图书社区:http://www.ituring.com.cn/article/12060
活动规则:在文章下方发表评论或书评等内容,将活动分享到新浪微博或微信
主办单位:图灵教育
名额:3名
活动日期:2013年10月11日至2013年11月11日