admin管理员组

文章数量:1567009

2024年4月26日发(作者:)

Arduino教程一: 数字输出

Arduino, 教程

11 Comments »

Arduino的数字I/O被分成两个部分,其中每个部分都包含有6个可用的I/O管脚,即管脚2到管脚7和管脚8到管脚13。除了管脚

13上接了一个1K的电阻之外,其他各个管脚都直接连接到ATmega上。我们可以利用一个6位的数字跑马灯,来对Arduino数字I/O

的输出功能进行验证,以下是相应的原理图:

电路中在每个I/O管脚上加的那个1K电阻被称为限流电阻,

由于发光二极管在电路中没有等效电阻值,使用限流电阻可

以使元件上通过的电流不至于过大,能够起到保护的作用。

该工程对应的代码为:

int BASE = 2;

int NUM = 6;

int index = 0;

void setup()

{

for (int i = BASE; i < BASE + NUM; i ++)

{

pinMode(i, OUTPUT);

}

}

void loop()

{

for (int i = BASE; i < BASE + NUM; i ++) {

digitalWrite(i, LOW);

}

digitalWrite(BASE + index, HIGH);

index = (index + 1) % NUM;

delay(100);

}

下载并运行该工程,连接在Arduino数字I/O管脚2到管脚7上的发光二极管会依次点亮0.1秒,然后再熄灭:

这个实验可以用来验证数字I/O输出的正确性。Arduino上一共有十二个数字I/O管脚,我们可以用同样的办法验证其他六个管脚的正

确性,而这只需要对上述工程的第一行做相应的修改就可以了:

int BASE = 8;

SEP

01

Arduino教程二: 数字输入

Arduino, 教程

3 Comments »

在数字电路中开关(switch)是一种基本的输入形式,它的作用是保持电路的连接或者断开。Arduino从数字I/O管脚上只能读出高电

平(5V)或者低电平(0V),因此我们首先面临到的一个问题就是如何将开关的开/断状态转变成Arduino能够读取的高/低电平。解

决的办法是通过上/下拉电阻,按照电路的不同通常又可以分为正逻辑(Positive Logic)和负逻辑(Inverted Logic)两种。

在正逻辑电路中,开关一端接电源,另一端则通过一个10K的

下拉电阻

接地,输入信号从开关和电阻间引出。当开关断开的时候,

输入信号被电阻“拉”向地,形成低电平(0V);当开关接通的时候,输入信号直接与电源相连,形成高电平。对于经常用到的按压式

开关来讲,就是按下为高,抬起为低。

在负逻辑电路中,开关一端接地,另一端则通过一个

10K的

上拉电阻

接电源,输入信号同样也是从开关

和电阻间引出。当开关断开时,输入信号被电阻“拉”

向电源,形成高电平(5V);当开关接通的时候,输

入信号直接与地相连,形成低电平。对于经常用到的

按压式开关来讲,就是按下为低,抬起为高。

为了验证Arduino数字I/O的输入功能,我们可以将

开关接在Arduino的任意一个数字I/O管脚上(13除

外),并通过读取它的接通或者断开状态,来控制其

它数字I/O管脚的高低。本实验采用的原理图如下所

示,其中开关接在数字I/O的7号管脚上,被控的发

光二极管接在数字I/O的13号管脚上:

Arduino教程三: 模拟输入

Arduino, 教程

5 Comments »

Arduino的优势在于对数字信号的识别和处理,但我们所生活的真实世界并不是数字(digital)化的,简单到只要用0和1就能够表示

所有的现象。例如温度这一我们已经司空见惯的概念,它只能在一个范围之内连续变化,而不可能发生像从0到1这样的瞬时跳变,

本文标签: 管脚开关数字