虽然Devices Plus已经介绍过Arduino的多种应用程序和示例,但是了解相关基础知识对于任何项目的构建仍然是非常重要的!
这次,我们将介绍Arduino电子产品的基础知识。以编写Arduino入门书籍而闻名的福田和宏先生将作为本文的指导。
在本文中,我们将教您如何进行Arduino的前期准备。
[目录]
- • Arduino与普通PC有什么不同?
- • 准备Arduino开发环境
- • Arduino IDE的屏幕结构
- • 点亮Arduino上的LED
- • 将电子部件与面包板连接
- • 点亮外部LED
Arduino与普通PC有什么不同?
Arduino是操作电子组件的专用板。所以,它和普通PC是不一样的。
计算机可以连接到显示器、键盘等,并且可以启动OS(操作系统),如Windows。通过在OS上运行应用程序,可以实现多种功能。智能手机和平板电脑也是如此。此外,在用户进行开发时,必须在个人计算机上运行开发环境才能够创建程序。
而Arduino不需要连接显示器或者键盘,也不需要运行Windows之类的OS。Arduino会在内存中编写一个用于操作的程序,在打开电源时,该程序会自动启动并进行电子组件的相关控制。
Arduino没有像OS那样的可以自由运行应用程序的开发环境,因此您不能在开发环境中创建程序。
创建Arduino程序时,请在计算机上启动Arduino开发环境“Arduino IDE”,然后通过USB将其传输到Arduino。之后,该程序将会被保存在Arduino内存中,并在重新启动Arduino后自动执行,然后您就可以控制电子组件了。
准备Arduino开发环境
要开发Arduino程序,需要先启动开发环境“Arduino IDE”。Arduino IDE支持Windows、macOS、Linux等操作系统,并且是免费的。今天,我们将以Windows版本的Arduino IDE为例。
在网页浏览器上访问Arduino IDE 官网。点击“下载Arduino IDE”中的“Windows Installer”选项。接下来,系统会询问是否愿意资助,但是您可以点击“仅下载(JUST DOWNLOAD)”进行免费下载。
点击所下载的文件来启动安装程序。之后,请按照安装程序的步骤来完成安装。
可能会弹出一个对话框,询问您是否安装驱动程序。出现这种情况的时候,点击“安装(Install)”对其进行安装。
安装完成后,可以从开始菜单中选择“Arduino”来启动Arduino IDE。
Arduino IDE的屏幕结构
Arduino IDE的屏幕结构如下图所示:
① 该区域用于创建程序:创建新文件时,将显示“void setup ()”和“void loop ()”。在“void setup ()”中描述的是启动Arduino时仅执行一次的程序。“void loop ()”中描述的是要重复执行的程序。将相关设置写入setup ()中,一般处理程序写入loop ()中。屏幕上将会显示出以“//”开头的消息,但是即使把这些消息删除也不会对程序造成任何影响。
② 显示程序检查结果和存在的错误:如果程序本身存在问题,请通过此处显示的信息查找错误。
③ 检查所创建的程序:点击以检查创建的程序是否正确。
④ 将创建的程序发送到Arduino:发送该程序后,该程序将会在Arduino上被执行,然后就可以进行电子组件的相关控制。该程序还会在传输之前检查一切是否正常。
⑤ 创建一个新的程序:当您创建了一个新的标签时,它将会被单独显示出来。
⑥ 读取文件
⑦ 将程序保存到文件中
⑧ 显示来自Arduino的数据并显示“Silaru Monitor(可以向Arduino发送指令)”。
⑨ 当打开多个程序时,该区域将分别显示出各自的标签。
⑩ 显示对各标签进行操作的选项菜单,如关闭和切换标签。
点亮Arduino上的LED
现在,让我们试一试使用由Arduino IDE所创建的程序对电子组件进行操作。Arduino Uno上的LED可以通过一个具有打开和关闭功能的程序进行控制,所以我们创建一个可以使LED每秒闪烁一次的程序。启动Arduino IDE,并按照以下步骤输入程序。
输入完成后,点击工具栏上的“验证(Validate)”(钩号),以确保内容没有错误。
如果没有问题,将程序传输到Arduino上。将Arduino通过USB连接到您的计算机上以传输程序。然后,Windows可以识别出Arduino并进行通信。为了实现通信,需要在Arduino IDE进行设置。从“工具(Tools)”菜单中选择“串行端口(Serial Port)”,以列出当前可用的端口。选择含有所连接Arduino名称的端口,例如“COM4 (Arduino / Genuino UNO)”。
此外,还需要选择连接类型。在“工具(Tools)”菜单里的“开发板(Board)”中选择想要使用的Arduino。如果想要使用Arduino Uno,选择“Arduino / Genuino UNO”。
现在,单击工具栏上的“写入微机主板(Write to microcomputer board)”(箭头图标)进行程序传输。传输完成后,程序将会被运行,LED将会开始闪烁。
将电子组件与面包板连接。
电子组件配有金属端子。通过将金属引线和其他电子组件连接到此端子上,就可以实现电流的流通,进行电子组件的相关控制。
使用焊料连接电子组件。金属焊料在较低温度下(约200度)就可以熔化。您可以使用烙铁来熔化焊料,然后将熔化的焊料倒在端子的接头上来实现组件的连接。
但是,焊接过程很耗时,而且如果您想要拆解电子组件,将会很难将其分开。
子弹头面包板可用于检查电子组件的操作以及创建用于原型制造的电子电路。面包板上有许多孔,您可以将带电子组件插到这些孔中。由于该板是插入式的,所以可以很容易地将电子组件拆解下来。
面包板通常与位于中间的一个大面包板以及位于顶部和底部的细长面包板相连。中间的面包板上有在竖直方向上相互连接的排孔,所以插入同一排的孔中的电子组件之间是相互连接的。同时,在中央有一个凹槽,排孔沿凹槽分成上下两部分。
细长的面包板具有在水平方向上相互连接的排孔,用于连接常用的端子,如电源端子。
想要在面包板或者Arduino的不同排之间进行连接时,请使用“跳线”。跳线是金属导体,两端均为针形,因此可以将其插入面包板的孔中或者连接到Arduino的端子上。
面包板和跳线可以从电子零件商店购买。如果您选择了稍微大点的面包板,那么就不必花时间购买更多的电子组件了,而是需要购买几十根的跳线。
面包板:具有63列、10行孔的面包板,配有上下两部分分别具有50列、2行孔的面包板。
跳线:大约有60种不同长度的跳线。
点亮外部LED
让我们使用面包板来设置一个闪烁的“LED”。这次,对于如何通过使用电子组件来验证面包板上电子组件的连接和操作是否成功,我们将不再进行说明。详细的功能和用法将会在以后的文章中进行介绍。
使用以下电子组件:
红色LED:通电后,该LED亮起红光。这次,我们将使用5mm直径的红色LED“SLR-56VC3F”。您也可以替换成其他相似的LED,因为它们的工作原理通常是相同的。
电阻330Ω(1/4W):用于防止流入LED的电流量过大。我们将使用330Ω的电阻器。
准备好所有的LED和电阻后,使用面包板将其连接到Arduino。连接电子组件时,请从Arduino上拔下USB电缆,以切断电源。如果您在供电的状态下连接组件,有可能会由于操作失误造成组件和Arduino的损坏。
按照如下所示的方式插入孔中:
LED具有极性。长端子为“阳极”,连接到电源的正极,而短端子为“阴极”,连接到电源的负极。请注意,如果接反了,LED将不会被正常点亮。
在LED阴极的顶端连接一个电阻。电阻没有极性,因此可以与任意一端连接。
将LED的阳极连接到Arduino用于控制电子组件的端子。在这种情况下,使用跳线将其连接到Arduino Uno上侧“DIGITAL”端子中标有“13”的端子。该端子与安装在Arduino上的LED并联连接,并且可以通过相同的输出端口控制连接在外部的电子组件。如果LED从外部连接到“13”端子,操作方式与安装Arduino上的LED相同。
使用跳线将电阻器LED连接到Arduino“GND”端子的另一端。
连接后,将LED闪烁程序写入Arduino。由于在程序中它与Arduino上的LED控件连接到同一个端子,所以如果您使用了上述的LED闪烁程序,外部LED也会被点亮。如果您尚未写入程序,请参考以上内容写入程序。
写入后,程序将会被运行,外部LED灯将开始闪烁。
您现在已经可以开始使用Arduino了!下一篇文章中,我们将介绍“必备电学基础”和“LED的控制方法”。
Arduino基础:通过数字输出控制LED照明
这篇文章来源于DevicePlus.com英语网站的翻译稿。本文为英译版,原文发表于deviceplus.jp。
虽然Devices Plus已经介绍过Arduino的多种应用程序和示例,但是了解相关基础知识对于任何项目的构建仍然是非常重要的!
这次,我们将介绍Arduino电子产品的基础知识。以编写Arduino入门书籍而闻名的福田和宏先生将作为本文的指导。
本文将介绍可以通过Arduino进行开启和关闭的数字输出的有关内容,并且说明如何创建使用LED的数字输出程序。
另外,为了使用电子部件,需要了解电气的有关术语,例如“电压”和“电流”。如果不理解这些术语的含义,您在购买电子元件的时候将无法确认其是否适用于您的用途。
[目录]
- • Arduino上的接口
- • “数字输出”的两种输出状态
- • 通过程序点亮LED
- • 程序结构
- • 需要了解的电气术语
- • 通过电阻控制电流
- • 将LED与电阻连接并点亮LED
Arduino上的接口
Arduino具有类似插孔的串联分布的端子,作为连接和控制电子组件的接口。这些接口可以实现多种控制功能,例如在这里连接一个LED或电机来对电子组件的运行进行控制,连接开关或类似的控件以进行打开/关闭的操作,或连接温度传感器来测量室温。
Arduino UNO的顶部有14个(0至13)“数字输入/输出”端子,右下方有6个(A0至A5)“模拟输入/输出”端子。
数字输入/输出端子的输出具有两种状态:“高电平状态”和“低电平状态”,以实现对电子组件的操作,并且可以检查电压状态。
而模拟输入是一个可以输入连续变化电压的端子。给每个端子分配一个数字编号,在通过程序控制电子组件时会指定其数字编号。
“数字输出”的两种输出状态
数字输出是一种可以更改程序中每个引脚状态的接口。您可以在两种状态之间进行切换:“高电平”或“低电平”。例如,如果连接LED且电压是高电平,那么LED将会被点亮。相反,如果是低电平,则LED会熄灭。
在Arduino中,当电压是高电平时,端子电压为“5V”,是低电平时,端子电压切换为“0V”。高电压状态被称为“高电平”,低电压状态被称为“低电平”。在程序中使用“HIGH”和“LOW”来分别指定高电平和低电平。数字输入和模拟输入将在本系列的后面部分内容中进行介绍。
通过程序点亮LED
我们通过用程序控制数字输出来打开LED。本节将介绍如何打开连接到第13个数字输入/输出端子的LED。按照以下步骤创建程序。创建程序后,像之前介绍的那样将其写入Arduino,然后检查LED是否被点亮。
- const int LED_PIN = 13
- void setup(){
- pinMode( LED_PIN, OUTPUT );
- }
- void loop(){
- digitalWrite( LED_PIN, HIGH );
- }
当对数字输出进行控制时,第4行和第8行的内容非常重要。数字输入/输出有两种方式:可以改变端子状态的“数字输出”以及可以读取端子状态的“数字输入”。因此,必须预先指定要使用的设置。该设置的内容就是第4行的“pinMode ()”。
pinMode( LED_PIN, OUTPUT );
在pinMode ()的括号中输入目标引脚编号以及模式。本项目中使用了第13个端子,所以目标端子编号为“13”,如果使用的是数字输出模式,则输入“OUTPUT”。但是,由于本项目中将端子编号设置为“LED_PIN”,所以将目标端子编号指定为“LED_PIN”(稍后解释)。
通过第8行上的“digitalWrite ()”更改输出。
digitalWrite( LED_PIN, HIGH );
指定所要更改输出的端子编号以及端子输出的状态。引脚编号指定为和pinMode ()中一样的“LED_PIN”。如果端子状态被指定为“HIGH”,将会输出5V的电压。如果您连接了一个LED,那么将会产生电流,LED会亮起。如果要关闭LED,请将状态指定为“LOW”,使端子电压变为0。
程序结构
本节将会介绍程序中数字输出以外的内容。以下所示的第一行代码将电子组件所连接的端子编号进行了命名。
const int LED_PIN = 13
将电子组件连接到Arduino的接口被进行了编号。例如,将“13”分配给了上次连接了外部LED的端子。在实际控制LED时,必须在程序中指定所连接的接口编号。但是,如果您直接在程序中输入数字,将很难分清数字的含义,并且如果您之后对程序进行了修改,就要花费更多的时间来研究这些数字。另外,如果更改了连接的对象,就需要在程序中所有指定接口编号的位置进行更改,这非常耗时,并且有可能造成其他部分被意外更改,从而导致故障的发生。
因此,最好为电子部件所连接的接口编号指定为一个描述性的名称。本文中,我们指定了“LED_PIN”(变量名)的名称,并且在变量中存储了“13”。之后,如果想要对LED进行控制,输入“LED_PIN”即可。需要注意的是,变量名前面的“int”表示变量为整型,“const”可以防止程序中的变量内容被更改。
如下所示的第3行到第5行为setup ()函数,该函数仅被执行一次。
void setup() {
:
}
Arduino开启后,将根据其中的程序执行该函数。本项目中的setup ()函数中的程序仅被执行一次。因此,setup ()被用于初始设置。该程序用于设置数字输入/输出端子的模式。
如下所示的第7行到第9行为loop ()函数,该函数将被重复执行。
void loop(){
:
}
setup ()函数中的程序被执行后,将开始执行loop ()函数。当程序运行到loop ()函数的结尾时,将会返回到loop ()的开头再次运行。程序的主体内容(如LED照明和电机控制)将会在这里进行描述。在该程序中,可以对数字输出进行切换从而点亮LED。
需要了解的电气术语
现在我们来了解一些电气术语的基本含义。当您挑选电子元件或者使用电子元件时,对电气术语有一定了解会帮助您进行的更加顺利。第一个要知道的电气术语是“电流”。
金属中存在一种被称为“正电荷”的正静电。静电这一概念很难理解,我们可以把正电荷视作带有正电荷的粒子,如图所示。
这些正电荷由电池或其他电源产生,穿过导体,然后流入电子组件(如LED)。“电流”表示在金属中流动的正电荷量。如果有大量正电荷流过,则LED等电子部件就能够获取大量的电能(能量),光照强度更大。相反,如果电流较小,那么供给的正电荷就较少,在使用LED时,光照强度将会更弱。
电流的单位是“A”(安培)。
除此之外,带负电的电荷被称为“负电荷”,但是,在电子电路中,我们通常将正电荷在电路中的移动方向作为电流方向。
需要了解的另一个电气术语是“电压”。金属中的正电荷是电力的来源。正电荷可以在电场力的作用下进行移动。这种可以移动正电荷的力被称为“电压”。如果电压很大,就可以驱动更多的正电荷移动,从而产生更大的电流。而如果电压较小,那么移动的正电荷数量也会较少,因此产生的电流较小。
电压的单位是“V(伏特)”。
电池可以提供1.5V的电压,Arduino的电源端子可以提供5V的电压,家用电源可以提供120V的电压。
通过电阻控制电流
许多电子组件都具有可承受的最大电流值,如果通过的电流超过了这个值,电子组件会发生损坏。例如,如果流经LED的电流超过了LED可以承受的极限值,那么LED可能会冒出烟雾或者发热至破裂。损坏的LED将会无法使用。触摸热的LED还有烧伤的危险。
因此,对流经电子组件的电流进行调整很重要。电阻器的作用是限流。电阻器是可以阻止电流流动,并且阻碍正电荷流入其内部的电子元件。因为电阻器抑制了电流,所以流经电子组件的电流量减少了,电子组件就可以安全地进行工作。
电阻器对正电荷流动的抑制程度用“电阻值”来表示。电阻值越小,流动的正电荷量就越多,电流越大。反之,如果电阻值较大,那么电流就会更小。电阻值的单位为“Ω(欧姆)”。电阻值、电压和电流之间的关系可以用“欧姆定律”的公式来表示。当电压施加到具有固定电阻值的电阻器两端时,将电压除以电阻值就可以得到流经的电流值。
例如,如果将1kΩ电阻连接到Arduino的5V端子上,可以用以下公式计算电流量。1kΩ 是1000Ω。
5V ÷ 1000Ω = 0.005A = 5mA
如果流经电子组件的电流值恒定,您就可以计算出所连接电阻器的电阻值。在这种情况下,用施加的电压值除以流经的电流值就可以得到电阻值。例如,要在施加5V电压的同时施加10mA的电流,使用以下公式得到所连接电阻器的电阻值。10mA是0.01A。
5V ÷ 0.01A = 500Ω
您可以在此处获取有关欧姆定律的更多信息:Learn About Ohm’s law, GPIO, and transistors by simple LED circuit on Raspberry Pi(通过Raspberry Pi上的简单LED电路了解欧姆定律、GPIO和晶体管)。
电阻器的侧面印有4个或5个色带。您可以通过色带知道其电阻值。色带的含义如下表所示。第一个和第二个数字组合起来是一个两位数的数字,第三个数字是倍数,第四个表示的是电阻误差。
例如,印有“Brown Black Red Gold(棕色 黑色 红色 金色)”的电阻器的电阻值是1 kΩ。
将LED与电阻连接并点亮LED
使用LED时,必须连接适当的电阻器来点亮LED。可以通过简单的计算知道需要连接多少阻值的电阻器。当LED和电阻器串联连接并且两端连接了电源时,电阻值可以用以下公式计算得到。
电源电压即为所连接电池的电源电压。连接到Arduino的数字输出时,将高电平状态下输出的5V作为电源电压。对于流经LED的电流和电压,使用电子元件销售点和数据手册上所提供的“正向电压(VF)”值和“正向电流(IF)”值。如果将流经LED的电流设置为正向电流值,那么其两端的电压即为正向电压。例如,如果使用了红色LED“SLR-56VC3F”,正向电压是2V(光电特性中的正向电压Vf项),正向电流是10mA(光电特性中的If项)。将该值作为“LED电压”和“LED电流”进行计算。如果电源电压是5V,LED电压是2V,电流是10mA,那么如下所示,得到的电阻值为“300Ω”。
(5V – 2V) ÷ 0.01A = 300Ω
另外,如果您想要将LED灯调暗,可以减小电流值。鉴于LED电压几乎不会发生改变,所以仍然使用正向电压值。例如,当流经电流为1 mA时,计算结果如下:
(5V – 2V) ÷ 0.001A = 3000Ω = 3kΩ
我们将具有计算得到的电阻值的电阻器与LED连接。如果无法获取与计算得到的电阻值完全一致的电阻器,可以使用阻值相近的电阻器。
在本文中,我们讲解了数字输出方式、电压以及电流。
来源:techclass.rohm