使用小型、廉价的 Nano 板入门 Arduino
获取 Arduino Nano 并开始您的物联网项目。
开始使用 Arduino 需要了解什么?
您不需要任何先前的电子学经验。您只需要知道如何使用计算机进行基本操作,例如下载和安装软件。
我将引导您完成构成文章一部分的入门电路的构建的每一步。在进行过程中,我将解释您正在做什么以及它的含义。如果您想加深对我们涉及主题的了解,我也会为您提供其他资源。
您将从本文中学到什么?
本文是一个分步教程,将带您完成从收集所需一切到让您的 Arduino Nano 完成某项工作的全部步骤。
最终项目
最终项目将包含一个独立的电路,使用电池为 Nano 供电。这将为用户提供完整的体验,了解他们如何设计和创建他们的项目,然后将其真正投入实际使用。
图文讲解提供体验
我将使用大量图片来尝试使阅读文章成为您体验的一部分,即使在您自己动手完成项目之前也是如此。本文中有 28 张图片,以帮助读者直观地了解正在发生的事情。我这样做是为了提供一种简单的方法,让读者确定她是否想更深入地参与 Arduino 开发。我希望本文能说服读者,其内容
- 不会不堪重负
- 将保持她的兴趣
- 将打开嵌入式编程的整个想法,让她看到它真的有多么容易。
您需要什么?
我总是喜欢提前知道我的项目需要什么,所以我会在这里为您列出所有这些东西。这样,您可以提前准备好用品,以便能够完成本文。我还会提供亚马逊链接(我是 Prime 会员),以便您可以查看商品及其价格并估算成本。
用品清单
这是您需要的东西,以便您可以尝试本文中的所有实验。
Arduino Nano - 您可以在亚马逊上购买三块(https://amzn.to/2JHO58N),仅需 13 美元。这几乎是每块 4 美元多一点。与 Arduino Uno(大多数初学者都从它开始)相比。
要将 Nano 连接到您的计算机,您需要一根 **micro usb 数据线**。您可能家里随便一处都有。这里有一个便宜的,只需 5 美元(https://amzn.to/2y0pzvg)
通过这条数据线,我们将 Nano 连接到我们的计算机,以便我们可以将 Arduino Sketch(程序)上传到其中,以便 Nano 可以运行它们。如果您有一台较旧的 PlayStation(我相信是 PS3),您可能有一些,因为它们使用 Micro USB 连接器。
面包板 - 它们使您在进行实验时更加轻松,因为您不必焊接任何东西。(https://amzn.to/2JFQtgx)大约 9 美元。相反,您只需将电线的末端插入孔中即可建立连接。
电线 - 对于我们使用面包板进行的实验,我们更喜欢实心导线(非多股线),这样您可以轻松地将电线插入面包板。这是我订购的电线包,我非常满意(https://amzn.to/2JsVKsz)。大约 20 美元。它有很多不同颜色的电线,这样您就可以保持连接正确。当您创建一个有很多连接的项目并且需要检查它们时,您将学会这有多么重要。
剪线钳/剥线钳 - 您需要一种快速的方法来剪切电线到合适的长度并剥去电线。这里有一对非常便宜但不错的剪线钳/剥线钳:(https://amzn.to/2xW9Yg9)大约 7 美元。
电阻器 - 您实际上只需要一个 220 欧姆的电阻器,但这里有一个便宜的套装(7.99 美元),它将为您提供许多有用的值 https://amzn.to/2HJjeDY。它们是我用于实验的。
LED - 同样,您只需要一个,但这里有一个不错的套装 https://amzn.to/2sNoT7p(6.49 美元)
如果您不确定将来是否会做更多事情,那么您可能只想购买一些 **跳线**,这样您就不必剪切或剥线了。这些可以直接插入您的项目(https://amzn.to/2MeoZNA)大约 8 美元。
我们将进行一些焊接以使您的 Nano 准备好进行实验,但我保证它并不可怕。这是一个不错的 **焊锡枪**,它包含各种焊头和一些焊锡,所有这些仅售 17.99 美元:(https://amzn.to/2HDulOR)
9V 电池
9V 电池连接器 -(https://amzn.to/2JPoOtB)4.94 美元
Arduino Nano 初探
让我们直接开始,看看您打开 Nano 收到后会发现什么。
您会发现 Nano 实际上附带了三个额外的组件。如果您以前从未见过它们,可能会有些困惑。这些被称为排针。它们专门用于使 Nano 在面包板上更容易使用。您将这些排针焊接到 Nano 上,然后就可以更容易地连接到面包板,然后将其他东西电气连接到 Nano 上的每个引脚。
我们称它们为引脚,即使这个板子上有孔
另外,请注意,即使我们提到 Nano 上的引脚,如果您不添加排针,那么您基本上就只有那些孔。然而,您在 Nano 上看到的每个孔实际上都连接到板子中间的方形芯片上的引脚。板子中间的那个方形芯片(请看下一张图)实际上是我们正在编程的芯片。在 Nano 上,它是 ATMega328P 芯片。
这是 Nano 的另一张快照,我已标记以显示您看到的一些内容
Micro USB 是我之前提到的连接器,您将用它来连接到您的计算机。如果您要计算 ATMega328P 上每个银色引脚的数量,您会发现方形的每一侧有 8 个引脚,总共 32 个引脚。ATMega328P 的这种封装称为 QFP(Quad Flat Package)。该芯片也有其他形式,如 DIP(Dual Inline Package https://en.wikipedia.org/wiki/Dual-in-line_package)。
芯片上的每个引脚都提供了一个接口来控制芯片——通过读取引脚输入或写入输出来使芯片以不同的方式运行。这些引脚中的每一个都映射到 Nano 侧面的孔。
这样做完全是为了使引脚更容易用于您的实验。
如果您计算每个长侧(在上图所示 Nano 的顶部和底部)的孔数,您会发现每侧有 15 个孔,总共 30 个。
Nano 左侧实际上还有一些其他引脚,它们也映射到中间的 ATMega328P 芯片。
这组 6 个孔(引脚)还有一个单独的排针块,可以添加到 Nano 上以方便访问。
复位按钮和指示 LED
您可以看到 Nano 还提供了一个非常小的按钮,可以按下以重新启动芯片。当您按下该按钮时,Nano 将停止运行您的程序,然后重新供电并从头开始重新运行您的程序。
这些非常小的 LED 非常有用,因为从顶部数第二个 LED(在我们查看芯片时)是一个电源指示灯。当 Nano 获得足够的电源时,该指示灯将为红色。
这个小板子很棒的一点是,当您连接数据线时,它将通过计算机的 USB 端口供电。这意味着在我们开发项目时,我们不必担心有另一个电源。您会看到 Nano 和其他连接的设备(如我们在第一个实验中的 LED)将通过 USB 端口供电。
连接到您的计算机
让我们直接看看当您将电路板直接从包装中取出并连接到计算机时它会做什么。
这张照片不是很好,但您可以看到电源指示灯已亮起。大多数 Nano 已经运行了制造商称为 Blink 的程序。
Blink 程序正在我的 Nano 上运行,它每两秒闪烁一次顶部的 LED(电源指示灯上方)。这只是一个简单的测试应用程序,大多数制造商都会添加它,这样您就可以知道 Nano 开箱即用。
什么是 Arduino 编程?
如果您曾为计算机编写过软件,您就会知道您可以编写程序并运行它。这是因为您需要的输入(键盘、鼠标)和输出(显示器、文件系统等)通常在任何计算机系统上都可用。
用 Arduino 编程时,情况大不相同。
当 Nano 连接到我们的计算机时,我们可以启动 Arduino IDE(集成开发环境)并将程序发送到 Nano。但是,编写程序并将它们上传到 Nano 只是过程的一部分。这是因为 Nano 不提供任何操作系统,没有文件系统(或用于捕获文件的硬件),甚至没有任何显示系统,除了您看到的闪烁的 LED。
我们实际上正在进行一种称为嵌入式编程的更低级别的编程。我们将比在 Microsoft Windows 等计算机系统上编写软件时以更低的级别进行控制。
开发嵌入式系统基本上有两个部分
- 硬件 - 构建电路
- 软件 - 编写将激活或自动化电路的程序
这意味着设计解决方案现在有两个挑战。管理这些挑战的方法是将它们分解成您可以处理的小块。
理解两件事就能了解一切如何运作
了解如何设计您的最终产品或项目很大程度上取决于了解
- 您正在处理的硬件具有什么功能——每个 ATMega328P 引脚公开什么功能,它有多少内存等?
- 您可以将哪些类型的 I/O 设备(传感器、显示器等)连接到引脚,以及如何使用它们?
一切都回到将东西连接到 Nano 上的引脚,因为这是我们读取传感器或输出信号显示内容的方式。这就是为什么我们需要构建围绕 Nano 引脚的电路。
这就是为什么我们要将排针焊接到我们的 Nano 上。
那些排针怎么样?
让您的电子实验生活更轻松的第一件事是焊接排针。我知道。我知道。一两年前我也是这么想的。我担心我会烧坏它,因为我的焊接技术不是很好。我将向您展示一个技巧,可以在大约十分钟内焊接好引脚。
请注意:我需要在另一个(但非常相似的)Arduino 板(Pro Micro)上焊接排针,所以我在焊接的图片将包含 Pro Micro 板,但这没关系,因为我们焊接的方式都一样。
您想做的第一件事是熟悉您的排针和 Nano,只需尝试将它们滑入板中。您希望引脚的较短一侧插入板的底部,这将使它们在顶部稍微露出。当您正确插入时,它看起来会像这样。请注意,此时我不会添加后面的六引脚块。
确保引脚的较短部分刚好穿过(如图所示),这样引脚的长度就足够正确地插入面包板,并且可以用最少的焊锡连接排针和 Nano 上的焊盘(孔)。
使焊接轻松的第一技巧
使这一切变得容易的技巧是,在进行焊接之前,将 Nano 放在排针上并将其推入面包板。这可以确保您的引脚都对齐良好,并且一切都会固定好,这样您的双手就可以自由地进行焊接。
您可以看到底部的引脚现在已牢固地插入面包板。这在实验时也将是我们的使用方式。
为了将引脚推入面包板,我将 Pro Micro 放在排针上,然后向下推并摇动。Pro Micro 的插入相对容易。但是第一次尝试时,您可能会觉得您要弄坏它。
又一次尝试并不容易
我决定继续在同一个面包板上安装一个 Nano 并焊接排针,但 Nano 的那个有点问题。
您可以看到顶部有一个引脚伸得太高了。当我摇动 Nano 时,有几个引脚(右前方的那个也是)没有完全向下。如果发生这种情况,只需拿起一些金属的东西(甚至可能是一枚硬币)并向下按压每个引脚,直到它与其他引脚齐平。
如果它们伸得太远,您可以取下 Nano,然后用剥线钳的前部抓住它们,将它们稍微拉出来。剥线钳的前部有一个很好的抓握工具。
这一切都不难。这都是体验的一部分。而且,很多时候,您不会看到有人解释这些。
警告
如果我们可以在不进行焊接的情况下立即开始实验,那就太好了。但请不要这样做。焊接之前,引脚与焊盘之间的连接不够牢固,这会让你发疯,因为连接松动会导致工作正常和不正常。
现在焊接是多么容易
这是设置焊接区域的步骤。
准备好所有必需品
- 焊锡
- 焊锡枪
- 焊锡枪支架
- 面包板上的 Nano
插入您的焊锡枪并让其预热。请遵守所有适当的安全预防措施,例如为焊锡枪提供合适的支架,并且切勿在焊锡枪处于高温时将其留在无人看管。
额外的焊接技巧
一旦您的焊锡枪变热,请记住以下几点
- 您需要将烙铁头接触焊盘和引脚,并同时加热它们(请参阅下一张图片)。
- 接下来,您需要将焊锡接触焊盘和引脚,以便焊盘和引脚熔化焊锡并将其“吸收”成一个完整的连接。
- 当焊锡球成珠状时,立即移开烙铁,焊锡珠就会变硬。引脚和焊盘的加热以及焊锡的熔化只需要 1 到 2 秒。
请记住,您不希望将烙铁长时间放在引脚和焊盘上,因为热量会沿着电路板回溯,并可能加热 ATMega328P 芯片并损坏它。或者,您可能会简单地熔化电路板本身,因为它很小。
如果您正确地完成了所有这些(我相信您会),那么一滴焊锡将连接引脚和焊盘,就这样。
想要更多焊接帮助?
请查看 SparkFun 的精彩网站和本资源,其中详细介绍了焊接的所有细节。
这是我的。如果仔细看,您可以看到每个引脚上有一个小的(看起来比较暗淡的)焊锡珠。
我将假设您成功了。
这是它的另一张快照,这样您就可以看到引脚现在与面包板上的孔对齐,并且我可以随时随地轻松地将 Nano 添加到任何面包板上进行实验。
再给一个提示:我喜欢在外面焊接以保持通风。但是,如果您因为任何原因不能这样做,那么您也可以放一个小风扇对着您的焊接区域吹,将焊锡烟雾吹离您。
一个好主意
一个好主意是拿出万用表并将其设置为连续性测试,将一个万用表探头接触引脚顶部(在电路板上方,您焊接的地方),另一个探头接触同一引脚底部(在电路板下方),以确保每个引脚都焊接牢固。如果引脚焊接牢固,万用表将发出蜂鸣声,表示连接已完成,您将永远不必担心 Nano 排针,因为您会知道它们是正确的。
现在,我们准备好点亮它了!
Arduino IDE(集成开发环境)
您需要做的第一件事是下载 Arduino IDE。它并不大,您可以在官方 Arduino 网站(http://arduino.cc)免费下载。 Arduino - 软件[^]
下载软件并安装。我在这里不向您展示如何做所有这些,因为它基本上是一个安装向导,并且是自 explanatory 的。
下载并安装后,请启动它。
您会看到类似以下的内容
这是一个基本的 Arduino 程序,他们称之为 Sketch。当然,我们编写的任何程序都将与一些硬件(Nano、LED、显示器、电位器等)配对,这些硬件我们将构建在我们的电路板上。
这就是这些嵌入式芯片——这些微型计算机——的真正强大之处。它们允许我们从其他设备(温度传感器等)获取输入,并控制继电器或 LED 等其他硬件设备。
让我们的 Nano 做点什么
让我们的 Nano 最容易做的事情就是点亮一个 LED。可能已经存在于您的 Nano 上的 Blink 程序会闪烁板载 LED,但让 Nano 点亮一个与板分开的 LED 会更具教育意义。
这个第一个简单实验的价值在于,过程和结果基本上与您控制任何连接设备时所做的事情相同。对于更高级的设备,只会涉及更多细节。
FirstNano:第一个实验
对于第一个实验,我们只需要
- 面包板上的 Nano
- 一个 LED
- 一个 220 欧姆的电阻器
为什么我们需要电阻器?
这就是我们需要电阻器的原因。我们将通过 USB 端口为您的 Nano 供电。USB 端口提供 5 伏特。LED 会降低约 1.7V 的电压。LED 的额定最大电流约为 20mA(毫安)。
如果没有额外的电阻器,将有超过 500mA 的电流流过 LED。我们使用电阻器来限制电流,以免烧毁 LED。
如果包含 220 欧姆的电阻器,则只有 15mA 的电流流过。
使用欧姆定律*,我们可以计算电流。
5V - 1.7V = 3.3V
3.3V / 220 = 0.015 (15mA)
*我们不会在这里详细介绍欧姆定律和所有电子原理,但如果您想更深入地了解电子学,可以尝试我在这里 CodeProject 上的文章系列,从:面向创客的实用电子学(第 N 部分)[^]
您会看到我们将 LED 的电源连接到 Nano 的一个引脚上。这意味着电流实际上将流过该引脚,而 Nano 本身无法承受如此大的电流,否则会损坏。
每个引脚的最大额定电流实际上只有 40mA(毫安),因此允许更多电流流过也会损坏我们的 Nano。
选择一个 Nano 引脚
现在我们要创建一个电路,将我们的电阻器和 LED 连接到 Nano 的一个引脚上,并路由到地(以创建完整的电路)。
我们将任意选择一个引脚。我们将使用一个数字引脚,这样我们就可以使用名为 digitalWrite()
的 Arduino 函数。我们可以使用模拟引脚并使用 analogWrite()
函数,但同样,我现在(任意地)向您展示如何使用数字引脚和数字函数。
为什么是这个引脚或那个引脚
Nano 当然引脚数量有限。因此,随着您的项目增长并使用所有或大部分可用引脚,您的设计的一部分就是选择根据可用引脚来创建电路。
这是 Nano 的放大快照,以便我们可以查看标签并查看哪个引脚是哪个。
我在一个引脚(顶部)用一条红线标记,它看起来像是标记为 V2 或 U2,但实际上是 D2——显然一些印刷被刮掉了或没有正确印刷。
数字和模拟引脚
所有数字引脚都标记为 DX,其中 X 是引脚号。您可以看到大多数数字引脚都在那一侧。模拟引脚标记为 AX,其中 X 是引脚号。您可以看到您拥有比模拟引脚更多的数字引脚。有编号为 2 到 13 的数字引脚(共 12 个数字引脚)和编号为 0 到 8 的模拟引脚(共 7 个模拟引脚)。
我们将为第一个实验使用 D2。我们将把 LED 电路连接到该引脚,并在我们的 Arduino Sketch 中引用该引脚。
我还标记了 Nano 底部的 GND(接地)引脚(在我们查看它时),因为我们将用它来完成我们的电路。每个电路都从高电压区域流向低电压区域(接地),因此我们也需要我们的电路连接到地。
当我们连接到接地引脚时,我们实际上将连接到 USB 端口提供的地,该地连接到我们计算机的地。这仅在我们使用 USB 端口供电时才成立。如果我们想用电池为 Nano 供电(这是可能的),那么我们就必须将 Nano 的地连接到我们电池组的公共地上。
创建最简单的电路
现在,我将通过添加 LED 和电阻器来创建最简单的电路。最简单的意思是我不必添加任何额外的电线即可完成电路。我确保 LED 和电阻器的引脚能够正确连接。
它看起来是这样的:
我已将 LED 的正极连接到 D2。(LED 是极化的,必须正确对齐,否则它们不会允许电流流过。)
我已将 220 欧姆电阻器连接到 LED 的负极。(电阻器没有极性,无论如何都可以工作。)
然后,我将电阻器的另一端连接到 Nano 上的接地引脚 (GND) 以完成电路。
如果您需要有关面包板工作原理的更多信息,可以在 CodeProject 上阅读我的文章,其中对此进行了深入解释:面向创客的实用电子学(第 2 部分)[^]
注意:请确保您的 LED 和电阻器的引脚不要触摸 Nano 上突出的任何其他引脚,否则会造成短路,并可能导致奇怪的行为,甚至损坏 Nano。
此时:无
如果我们插上 Nano,它仍然什么都不会做。
为了拍照,我不得不遮挡住指示灯 LED,因为它会透过我们的独立 LED 发光,看起来像它已经亮了。LED 没有亮,因为我们还没有编写程序或将其上传到 Nano 来打开 D2 引脚。现在就做吧。
回到 IDE
回到 Arduino IDE(集成开发环境),我们将输入一些代码。
在只运行一次的 Setup()
函数中,我们使用以下代码将 D2 引脚设置为输出。由于您可以读取或写入引脚,因此您必须告诉它您正在使用它的目的。
void setup() {
pinMode(2,OUTPUT);
}
我们调用 pinMode()
函数,该函数接受一个引脚值和一个特殊的预定义常量(OUTPUT
),它会设置我们的引脚,以便我们可以写入它。写入引脚意味着将电压设置为高电平,对于 ATMega328P 来说是 5V。
该代码只是设置了引脚,但并没有采取任何措施来点亮 LED。为此,我们需要在 loop()
函数中添加一些代码。
loop()
函数代码在 Nano 有电的情况下会持续运行。
我们要写入引脚,所以我们使用称为 digitalWrite()
的 Arduino 函数。
当我们调用该函数时,我们会告诉它我们要写入哪个引脚。在我们的例子中,它是 D2,这当然是我们之前在 setup()
函数中设置为输出的同一个引脚。我们还想告诉它我们希望引脚变为高电平(5V)。有一个预定义值 HIGH,所以我们的 digitalWrite
看起来如下:
digitalWrite(2, HIGH);
接下来,我们要关闭 LED。为此,我们将向引脚写入低电平(0V)。0V 值还有一个预定义值,即 LOW
。这些预定义值区分大小写,所以 low 在代码中无效,会导致错误。
digitalWrite(2, LOW);
然而,我们希望在关闭 LED 之前暂停一下,这样我们就可以真正看到 LED 关闭和打开,因此我们需要调用一个可以使程序暂停的函数。该函数称为 delay()
,它接受您希望程序暂停的毫秒数(千分之一秒)。
我将暂停程序¾秒,所以我会使用 750 作为我发送给 delay()
的值。
这是 loop()
的完整代码列表
void loop() {
digitalWrite(2,HIGH);
delay(750);
digitalWrite(2,LOW);
delay(750);
}
这是对该代码作用的自然语言解释
- 打开 LED(连接到 D2 引脚)。
- 等待 750 毫秒(ms)(LED 保持开启这么久)。
- 关闭 LED。
- 等待 750 毫秒(LED 保持关闭这么久)。
- 回到步骤 1。
继续并将您的 Arduino Sketch 保存为 NanoFirst(或从本文顶部下载代码并使用 Arduino IDE 打开它——NanoFirst_v001.zip)。
选择正确的 Arduino 板
如果您是第一次使用 Arduino IDE 或第一次为 Nano 构建代码,我们需要设置 Arduino 环境,以便它知道为我们使用的特定板和芯片(ATMega328P)构建代码。
这很容易做到。只需转到 IDE 顶部的 **Tools** 菜单,然后向下移动到 **[Board >]** 菜单项。Nano 板可能已经选择好了,但如果没有,当您移动该项时,将弹出一个包含大量选项的新菜单。向下滚动 Arduino Nano 并单击它以选择它。
IDE 应该会自动为该板选择“Processor: ATMega328P”,因为它是这些板上使用的新处理器。但是,您要确保它已正确选择。
下一张图片向您展示了如何选择正确的处理器。
这两个选项确保 IDE 将为您的板构建正确的代码。
请注意,IDE 的底部状态区域(如图所示)确认您正在为带有 ATMega328P 的 Arduino Nano 构建,并且设备已连接到 COM1。
现在,我们准备构建程序了。
构建程序
一旦您编写了代码并认为它是正确的,您就可以让 Arduino IDE 为您检查它。您可以通过尝试构建程序来做到这一点。要构建程序,请选择 Arduino IDE 顶部的 Sketch 菜单,然后选择第一个菜单项,[Verify/Compile]。
这样做时,Arduino IDE 会将您的(您能理解的)高级语言代码转换为 ATMega328P 能理解的机器语言指令。
当程序被编译时(取决于您计算机的速度),您将在 Arduino IDE 底部看到一些状态信息。
成功完成后,您将看到类似以下内容
您可以看到它告诉您它已完成,并且有一些状态信息可以让您了解您的应用程序的大小以及芯片上还剩下多少内存。内存至关重要,因为这些小计算机的内存非常有限。请记住,此时我们只构建了程序,但我们还没有将其上传到 Nano。
如果出现错误怎么办?
编程可能是一项孤独的活动,而孤独的开发者最应该学会的是如何处理错误。您越能理解和解决错误,就越能成为一名优秀的开发者。
我特意引入了一个错误,这样您就可以看到当您编译时 IDE 的样子,以及它遇到错误时的样子。
它会尝试帮助您显示它认为错误所在的位置。在这种情况下,它会用粉红色突出显示有问题的行。然后在底部的输出窗口中,它会提供一些错误信息。
错误消息有时会令人困惑
错误消息有时会令人困惑,因为有时它们会给您编译器最终的猜测。在这种情况下,它告诉我们
‘DigitalWrite’ was not declared in this scope
什么!?!
基本上,您只需要知道它在说:“我不知道 DigitalWrite
是什么,我以前从未听说过它。”这是因为计算机和计算机语言非常具体。在 Arduino 语言(基于 C/C++)中,区分大小写。这意味着当您看到该错误时,您应该想,“嘿,我是否输入了什么东西?我是否引用了 Arduino IDE 不知道的东西?”
当然,我们要做的就是将 DigitalWrite
中的大写 D 改为小写 d,然后再次构建程序。
上传程序
要让 Nano 运行我们的程序,我们需要将程序上传到它。我们可以单独编译程序,就像我们一直在做的那样,然后上传。但我们也可以一键完成编译并发送到 Nano。要做到这一点,只需单击向右的箭头。
这样做时,IDE 会确定代码是否已更改,如果是,它将编译代码,然后将其发送到您连接的 Nano。
如果您单击该按钮但 Nano 未连接,程序将编译,但您会收到错误,因为 IDE 无法上传程序。
IDE 会告诉您问题所在,并尝试为您提供一些修复建议。
有时您也会遇到该问题,如果由于某种原因 Arduino IDE 错误地猜测了您的 Nano 连接到的 COM(通信)端口。如果您有其他设备连接到其他 USB 端口,IDE 可能会感到困惑,这有时可能会发生。
您可以尝试其他 COM 端口而不会损坏任何东西,所以您可以只下拉菜单,看看您有哪些选择,然后尝试另一个。
这是我的样子,因为我的计算机连接了多个 Arduino 设备。
一旦一切正常,当您单击 **Upload** 按钮时,程序将被编译并发送到您的 Nano。
发生这种情况后,您的 Nano 将开始运行您的程序。
实际写入您 ATMega328P 的代码
请记住,IDE 不会将您在 IDE 中键入文本发送到 Nano。它将纯机器语言程序发送到它,并将其写入 Nano 的闪存中。
在 IDE 构建应用程序的后台,它会将所做的所有工作保存在您计算机上的一个 *temp* 文件夹中。
路径是 *%localappdata%\Temp\arduino_build_<generated_number>*。
如果您进入 *%localappdata%\Temp*,在构建后通常可以轻松找到最新的更新文件夹,如果您愿意,可以找到应用程序。您可以将 *%localappdata%\Temp* 复制并粘贴到您的文件资源管理器中,它将带您到该文件夹。
NanoFirst.ino.hex 文件就是上传到 Nano 的文件。
您可以使用文本编辑器打开它并查看。它看起来是这样的
是的,很无聊,除非您了解 ATMega328P 的机器语言。
观看视频了解其运作情况
如果一切顺利,您的程序正在您的 Nano 上运行,并且您的红色 LED 正在闪烁。
我制作了一个非常快速的视频并将其发布到 YouTube 上,以向您展示电路的实际运行情况:使用小型 Arduino Nano 入门 - YouTube[^]。
What Next?
现在,您已经编写了一个程序,但这可能看起来并不那么神奇,因为它仍然连接到您的计算机。程序上传到 Nano 后,Nano 除了供电外,不需要计算机做任何事情。我的意思是 Nano 正在做所有将 LED 打开和关闭的工作,计算机不控制任何代码。这是因为 Nano 本身就是一台小型计算机。
非常小的片上系统
令我着迷的是,ATMega328P 的功能远超 Steve Wozniak 用来构建 Apple ][ 计算机的 MOS 6502。
6502 每秒可以执行约 120 万条指令(1.2 MIPS)。而运行频率为 16MHz 的 ATMega328P 每秒可以执行约 1600 万条指令(16 MIPS)。
当然,ATMega328P 拥有更多的内存,高达 32K(32 千字节)。
ATMega 是一个完整的片上系统,而 6502 则不是,所以需要做更多的工作(连接内存用于程序存储)。
您所需的一切都已包含在 Nano 上。Woz 克服了如此多的障碍,仍然成功构建了一个完整可用的计算机,这真是令人惊叹。相比之下,我们的障碍少得多,而大多数时候却无法达到 Woz 的成就。
拥有如此小的设备上如此强大的计算能力,其重要之处在于它比您的计算机消耗的能量少得多。这意味着您可以构建一个小型设备并用电池供电,而不是插上电源。这是物联网(物联网)的一个主要关键,因为您可以拥有众多提供特定服务的独立计算机。
我认为看到我们自己的电路由电池供电非常具有启发性,可以帮助我们理解您将如何真正使用基于 Arduino 的设备来创建最终产品。
用电池供电
让我们看看如何用电池为我们的 Nano 供电。这一点也不难。您只需要提供 5 伏特,它就会运行。提供 5 伏特并不难,因为我们可以从 4 节 AA 电池中获得大约 6 伏特。
或者,我们可以使用一个 9V 电池和一个非常简单的连接器。Nano 的数据手册说它可以在引脚 30(VIN -- 电压输入)上接受 6V-12V。
我将使用一个 9V 电池,因为它对您来说会更方便。您可以获得一个简单的连接器,将其卡在 9V 电池上,您就可以准备好了。
像这样卡在 9V 电池上。
不要让这两根电线互相接触,否则会造成短路,您的电池会变得非常热,并可能伤害您。
现在我们将电池连接到面包板以为主板供电。确保断开 Nano 与计算机的连接。不要同时将电池和 USB 连接到 Nano。
我已将黑线连接到面包板的地轨(蓝色侧)。我已将红线(正极)连接到面包板的正极轨。然后,我从正极轨连接了一根绿线(颜色只是为了保持清晰)到 Nano 上的 VIN(引脚 30)。
最后,我将一根黑线连接到 Nano 上的 GND 引脚,以创建完整的电路。
我抓拍到了 LED 闪烁的瞬间。
这是 Nano 上连接的接地和电压输入电线的特写。
独立设备
现在我们有了构建独立设备的能力,您可以开始构思仅靠小型电池供电即可运行的项目。
现在,去做您自己的伟大项目吧。您拥有力量!
历史
- 2018 年 6 月 12 日:首次发布