《动手玩转Arduino》—— 第11章 认识Arduino系列 11.1 作品37:在面包板上做自己的Arduino

###第11章 认识Arduino系列

在本章,我们将:

  • 学习如何在面包板上做自己的Arduino电路;
  • 研究各种Arduino兼容板的特性和优点;
  • 学习开源硬件。

我们要把整个Arduino分解成若干个元件,然后在面包板上搭出自己的Arduino电路来。自己搭电路可以省钱,在作品和原型都在不断变化时特别有用。我们还会学习一些新的元件和电路知识。然后研究如何能不借助额外的硬件把程序上传到自己做的Arduino上去。最后,我们要尝试Arduino Uno以外的常见的版本,找出它们的不同。

11.1 作品37:在面包板上做自己的Arduino

随着作品和实验在复杂度和数量上逐渐加大,为每个任务购买Arduino板的成本很容易会失去控制,特别是当你希望同时做不止一个作品的时候。因此,如果在面包板上搭一个Arduino电路,然后再扩展来搭出整个电路,以这样的方式把Arduino板组合进整个电路,会更便宜也更方便。在面包板上把基本的Arduino电路搭出来所需的元件成本应该低于10美元,而且如果没有损坏,这些元件通常还可以再用于其他作品。如果作品需要大量外部电路,自己做会更容易,这样可以省下大量在Arduino板和面包板之间来来回回的导线。

11.1.1 元件

要做一个最小集的Arduino,需要以下的元件:

  • 一块面包板;
  • 一些导线;
  • 一个7805线性稳压器;
  • 一个16MHz晶体振荡器(比如Newark的元件编号为16C8140的晶体振荡器);
  • 一个ATmega328P-PU单片机,预先烧录了Arduino的引导装载程序;
  • 一个1μF/25V电解电容(C1);
  • 一个100μF/25V电解电容(C2);
  • 两个22pF/50V瓷片电容(C3和C4);
  • 两个100nF/50V瓷片电容(C5);
  • 两个560Ω电阻(R1和R2);
  • 一个10kΩ电阻(R3);
  • 两个任意规格的LED(LED1和LED2);
  • 一个按钮(S1);
  • 一个6位插针;
  • 一个PP3型电池扣;
  • 一个9V PP3型电池(叠层电池)。

有些元件可能你还没见过。在下面的小节里,我会解释每个元件,给你看每个元件的样子和电路图符号。

1.7805线性稳压器

线性稳压器里有一个简单的电路,能把一个电压转换成另一个。元件清单里的稳压器的型号是7805,它能把7~30V的电压转换成固定的5V,最大的电流是1A,所以用它来给面包板Arduino供电是很合适的。图11-1所示是一种TO-220封装的7805,封装是指它的外形。

图11-2所示是7805的电路图符号。把7805标字的一面朝向自己,左边的管脚是输入电压,中间的管脚是地,而右边的管脚是5V输出。顶部的金属层钻了个孔,这样它就可以和一个更大的金属固定在一起,那片金属就成了散热器。当电流接近它的最大能力1A的时候要用散热器,因为那样使用的话,7805会变得非常热。金属层也是接在地上的。我们的电路需要一个7805稳压器。

2.16MHz晶体振荡器

这东西一般就叫做晶振,晶体振荡器能产生非常准确频率上的电信号。这里用的频率是16MHz,图11-3所示是我们要用的晶振的样子。

和你的Arduino板上的晶振比较一下,它们的形状和尺寸应该都是相同的。

晶振是没有极性的,它的电路图符号如图11-4所示。

晶振决定了单片机的运行速度。比如,我们要组装的单片机电路运行在16MHz,意思是它每秒能执行1600万条处理器指令。不过,这并不是说它能那么快地运行一行程序或是一个函数,因为一行代码要用很多处理器指令来执行。

3.Atmel ATmega328-PU单片机集成电路

单片机是一台微型计算机,里面有执行指令的处理器、不同类型的存放数据和程序指令的存储器,还能以各种方式收发数据。第2章讲到,单片机是面包板Arduino的大脑。图11-5所示就是一片ATmega328P。图中这样的集成电路的1脚,是在集成电路的左下角,标着一个小点的那个脚。

这个单片机的电路图符号如图11-6所示。

Arduino引导装载程序是一个软件,能将程序写入Arduino,不是所有的单片机芯片都有这样的引导装载程序的。自己做Arduino的时候,要购买已经烧录了引导装载程序的芯片。一般卖Arduino板的店家也会卖这样的芯片,比如adafruit、Freetronics和SparkFun。

11.1.2 电路图

图11-7所示是电路图。

这个电路图由两个部分组成。首先,左边是电源部分,能把电压降到稳压的5V。当有电的时候,一个LED就会亮。右边的部分,包括单片机、重启按钮、编程引脚和另一个LED。这个LED接到ATmega328上用在Arduino引脚13的那个管脚上。按照这个电路图接好Arduino。别忘了接线到那个6位插针(见图11-8),这个6位插座就是电路图中底部的6个圆圈。本章后面我们会用这个插针来上传程序到自己做的Arduino。

这个电路只是用一个9V电池和对应的电池扣供电,如图11-9所示。左边电路的正极(+)接电池扣的红色线,而负极(−)接黑色线。

)

![screenshot](https://yqfile.alicdn.com/75a1e651f4f5a3246ceeea7b56be81e8b9d6f060.png

在自制的Arduino上,那些Arduino的引脚在哪里?普通Arduino板上有的那些模拟、数字和其他用途的引脚在我们的面包板版本上也都是有的,只要直接接到单片机上就行。

在面包板Arduino上,R2和LED2是接在数字引脚13上的。表11-1的左边列出了Arduino引脚,而右边是对应的ATmega328的管脚。

为避免混淆,像adafruit和Freetronics这样的厂家卖一种贴在单片机芯片上的不干胶标签,如图11-10所示的这个单片机(在http://www.freetronics.com/mculabel/ 可以购买)。

11.1.3 运行测试程序

现在可以上传一个程序了。我们用一个简单的闪烁LED的程序开始。

// 作品37 - 做自己的面包板Arduino 

void setup() 
{        
 pinMode(13, OUTPUT);   
} 

void loop() 
{
 digitalWrite(13, HIGH);
 delay(1000);      
 digitalWrite(13, LOW); 
 delay(1000);      
}

有3种方法上传这个程序。

1.用交换单片机的方法

上传程序最便宜的方法,是把已有的Arduino里的单片机拔出来,插上我们自制的Arduino里的单片机,上传程序,然后再插回自制的Arduino里。

要从Arduino里安全地拔出单片机,要用到集成电路拔取钳,如图11-11所示。

在拔出单片机的时候,要保证慢慢地同时均衡地拔两端,别心急。拔出来可能不那么容易,但是最终单片机会出来的。

把单片机插进面包板或Arduino的时候,可能先得把管脚稍微向内弯一下,这样就能比较容易插进去。为此,把芯片的一边放在一个平面上,小心地按下,然后重复另一边,如图11-12所示。

最后,把原来的单片机插回到Arduino板的时候,要注意有标记的那端应该在右侧,如图11-13所示。

2.连接到另一块Arduino板

我们可以用Arduino Uno的USB接口上传程序给面包板上的Arduino的单片机。用这个方法既不会磨损Arduino板上的集成电路插座,又可以省钱,因为不需要另外购买USB编程线了。

以下是使用Arduino板的USB接口电路给另一块单片机上传程序的步骤。

(1)拔掉USB线,取下单片机芯片。

(2)断开面包板Arduino电路的电源。

(3)从Arduino的数字引脚0接一根线到面包板上的ATmega328P的管脚2,另一根线从Arduino的数字引脚1接到ATmega328的管脚3。

(4)把Uno的5V和GND接到面包板上对应的地方。

(5)从Arduino的RST接一根线到ATmega328的管脚1。

(6)给Arduino Uno板插上USB线。

这样,这个系统就好像是一个普通的Arduino Uno一样,我们就可以正常地把程序上传到面包板电路去了,需要的时候也可以使用串口监视器。

3.用FTDI编程线

最后的方法也是最简单的,但是需要购买一根USB编程线,叫做FTDI线(这个名字是因为里面用的接口电路的芯片是一家叫做FTDI的公司生产的)。在购买FTDI线的时候,要确认是5V型号的,因为3.3V型号的不能正常工作。这种线(见图11-14)的一头有一个USB插头,另一头是6线的插头。线的USB那头有等价于Arduino Uno板上的USB接口的电路。6线的插头是连到图11-7和图11-8所示的插针那里的。

连接这根线的时候,要确保插头的黑线这边插在面包板的插针的GND上。一旦这根线接好,它也会给电路供电,就像普通的Arduino板子一样。

在上传程序或使用串口监视器之前,要选择Tool -> Board确定板子类型为“Arduino Duemilanove”或“Nano(ATMega328)”,然后选择正确的单片机型号(见图11-15)。

一旦选择了一种上传的方法,就上传作品37的程序来做测试。现在,我们应该可以只用一块面包板来设计更复杂的电路了,这样我们能用更少的钱做出更多的作品来。如果学会了如何做自己的印刷电路板,甚至可以做出更长久的作品来。

时间: 2024-10-03 16:57:17

《动手玩转Arduino》—— 第11章 认识Arduino系列 11.1 作品37:在面包板上做自己的Arduino的相关文章

《动手玩转Arduino》——11.1 作品37:在面包板上做自己的Arduino

11.1 作品37:在面包板上做自己的Arduino 随着作品和实验在复杂度和数量上逐渐加大,为每个任务购买Arduino板的成本很容易会失去控制,特别是当你希望同时做不止一个作品的时候.因此,如果在面包板上搭一个Arduino电路,然后再扩展来搭出整个电路,以这样的方式把Arduino板组合进整个电路,会更便宜也更方便.在面包板上把基本的Arduino电路搭出来所需的元件成本应该低于10美元,而且如果没有损坏,这些元件通常还可以再用于其他作品.如果作品需要大量外部电路,自己做会更容易,这样可以

《JavaScript设计模式》——第11章 牛郎织女——代理模式 11.1无法获取图片上传模块数据

第11章 牛郎织女--代理模式 代理模式(Proxy):由于一个对象不能直接引用另一个对象,所以需要通过代理对象在这两个对象之间起到中介的作用. 由于用户相册模块上传的照片量越来越大,导致服务器端需要将图片上传模块重新部署到另外一个域(可理解为另一台服务器)中,这样对于前端来说,用户上传图片的请求路径发生变化,指向其他服务器,这就导致跨域问题. 11.1 无法获取图片上传模块数据 "小铭,你帮我看看,为什么我向咱们图片上传模块所在的服务器发送的请求,得不到数据呢?"小白问小铭. //

《深入解析IPv6(第3版)》——11章 IPv6过渡技术11.1 概述

11章 IPv6过渡技术 在完成本章的学习之后,读者应该能够完成以下任务: 列举并描述IPv4到IPv6的过渡技术: 列举并描述不同类型的节点: 列举并描述不同类型过渡技术的使用: 描述IPv4与IPv6共存的机制: 列举并描述各类隧道技术的配置: 描述手工配置和自动配置的隧道技术: 描述Windows的PortProxy组建的目的与配置. 11.1 概述 协议之间的过渡并不容易实现,从IPv4到IPv6的过渡也不例外.通常来说,实现协议过渡的方法都是先网络的所有节点上安装并配置上新的协议,然后

《动手玩转Arduino》——第11章 认识Arduino系列

第11章 认识Arduino系列 动手玩转Arduino在本章,我们将: 学习如何在面包板上做自己的Arduino电路:研究各种Arduino兼容板的特性和优点:学习开源硬件.我们要把整个Arduino分解成若干个元件,然后在面包板上搭出自己的Arduino电路来.自己搭电路可以省钱,在作品和原型都在不断变化时特别有用.我们还会学习一些新的元件和电路知识.然后研究如何能不借助额外的硬件把程序上传到自己做的Arduino上去.最后,我们要尝试Arduino Uno以外的常见的版本,找出它们的不同.

《动手玩转Arduino》——导读

前 言 Arduino是当今世界上最流行的开源硬件,具有价格低廉.便捷灵活.容易上手等特点,在机器人.艺术.科学实验等领域受到了广泛关注. 本书精心整合了65个Arduino作品,而且其难易程度依次递增,旨在让读者以感性的方式,来掌握更多的Arduino知识和经验.通过这65个动手实践,读者除了学到基础的电子学概念.巩固已有的Arduino知识之外,还将学会如何创建功能更为强大复杂的Arduino作品. 本书适合对Arduino感兴趣的硬件DIY爱好者.电子爱好者阅读,也非常适合学生进行电子制作

《动手玩转Arduino》——11.2 众多的Arduino板

11.2 众多的Arduino板 虽然在这本书中,我们只会使用Arduino Uno板,不过你可以自己选择很多另外的板子.这些板子具有不同的外形尺寸.输入和输出引脚的数量.程序存储空间的大小,以及购买的价格. 板子之间最关键的不同是所用的单片机.目前的板子主要是使用ATmega328或ATmega2560单片机,Due用的是另外的更强大的版本.这些单片机(包括ATmega328的两个版本)的主要区别总结在表11-2中. 用来比较不同的Arduino兼容的板子的主要参数是板上存储器的类型以及每种类

《动手玩转Arduino》——11.3 展望

11.3 展望 本章描述了各种类型的硬件的总体情况,包括自己做的一种面包板Arduino.我们了解了做Arduino要用的元件,学习了如何用面包板自己做一个Arduino,这样我们就不用再购买新的板子做基于多个Arduino板的原型了.我们还了解了市场上各种Arduino板的情况,这样就能选择最适合需要的板子了.最后,我们还对Arduino开源运动本身有了一点了解. 下一章我们要学习如何使用几种电机,开始做自己的Arduino控制的电动坦克.

《动手玩转Arduino》——第10章 用触摸屏获得用户输入 10.1 触摸屏

第10章 用触摸屏获得用户输入 在本章,我们将: 学习如何把一个电阻触摸屏连接到Arduino: 研究触摸屏返回的数值: 做一个简单的触摸开关: 做一个有渐变效果的触摸开关. 今天触摸屏到处可见,如智能手机.平板电脑和手持游戏机.所以,为什么不用触摸屏来接受用户的输入呢? 10.1 触摸屏 触摸屏非常贵,不过我们要用SparkFun提供的廉价型号(元件编号LCD-08977和BOB-09170),它们原本是为任天堂的DS游戏终端设计的. 这个触摸屏的尺寸大约为5厘米× 7厘米,图10-1是它插在

《动手玩转Arduino》——10.5 展望

10.5 展望 本章我们介绍了另一种接收用户数据.控制Arduino的手段.下一章,我们要关注Arduino板本身,学习不同的版本,然后在面包板上做出自己的版本来.