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 ); }  
view rawcode01.ino hosted with ❤ by github
当对数字输出进行控制时,第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连接。如果无法获取与计算得到的电阻值完全一致的电阻器,可以使用阻值相近的电阻器。
在本文中,我们讲解了数字输出方式、电压以及电流。下次,我们将会改变led的亮度。


专家指导 影院级投影银幕的正确选择
AT&T利用GPU优化速度、成本和效率
小米MIX尊享版完美运行苹果IOS系统, 它不仅仅是安卓手机?
关于户用储能系统中的电池配置的分析和应用介绍
水流开关工作原理
Arduino基础:通过数字输出控制LED照明
工作温度范围扩大到Ta=105℃的XCL220和XCL222系列产品
在激光电视发展路径上 海信显然已成为了行业变革的开拓者
红魔5G游戏手机有什么亮点?
AMD向主板厂商发放最新的Ageda 1004 到底更新了什么
虚拟现实技术将是冲击零售业的新兴科技
光电传感器发展趋势
鸿蒙怎么更新
详细分析Verilog编写程序测试无符号数和有符号数的乘法
大赛获奖丨上海爱可生连续三年蝉联中国金融科技创新大赛奖
感谢红米4X,让我找到了买魅蓝5s的理由
Intel新路线图透露将开辟一个新的A系列,或为超级发烧平台,最多28核心!
联电前CEO孙世伟传加入武汉新芯 接棒高启全
不重视它 你的爱车就可能接连出现问题
松下参展2023工博会 发布伺服电机MINAS A7系列等多种新品