乐正

Actions speak louder than words.

Arduino 学习笔记——LED 闪烁实验中隐含的简单原理

我是软件出身,但是许久以前便对硬件充满了兴趣,终于在最近买了一套 Arduino 基础开 发套件,希望能在硬件上学习一些知识。

几乎所有单片机学习的第一个实验都是blink,在这个小小的实验中也蕴含着一些我不知 道的电子电路知识,所以记录下在这个实验中所学习的知识,方便回顾整理。

代码回顾

blink.ino
1
2
3
4
5
6
7
8
9
10
11
12
int ledPin = 10

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

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

这一段类似 C 的 Arduino 代码对于软件出身的我来说并不难理解。但是,这里要注意的是 Arduino 程序必须包含 setup()loop() 两个函数,否则它将不能工作。顾名思义, 前者只在程序开始时运行一次,一般做初始化用,如设置引脚形式,设置波特率等等。后者 则是在程序中循环执行的,是主要的过程函数。

在这段代码的 setup() 函数中,只执行了一句代码:pinMode(ledPin, OUTPUT),它告 诉 Arduino 设置引脚的模式为输出模式。由此易知,对应的应该还有一个 INPUT 的输入 模式。

loop() 函数中,让 LED 以一秒的频率闪烁,主要依靠 digitalWritedelay 函数。其中,digitalWrite(ledPin, HIGH) 告诉数字引脚打开电源,delay(1000)让程 序暂停1秒,而 digitalWrite(ledPin, LOW) 则要求数字引脚关闭电源。

硬件回顾

在 LED 闪烁实验中,用到的硬件有:

  • 面包板
  • 5mm LED
  • 220Ω 电阻(或者其他适合你 LED 的数值)
  • 跳线(也称面包线)

面包板

面包板是一个可重复使用的非焊接单元,用于制作一个电子线路原型或者线路设计实验。这 个板在一个栅格中有一系列的孔,在板子背面,这些孔通过两条导电金属条相连。 如图:

面包板排列

电阻

电阻会对电流产生一定的阻力,引起它两端的电压下降。在我的 LED 闪烁实验里面,数字 引脚输出5V、40mA 直流电,而我的 LED 需要的是2V、35mA 电流,因此我需要一个电阻降 低电压和电流。

计算需要的电阻阻值的公式是:

R = (VS - VL) / I

就是用电源电压减去 LED 电压除以 LED 电流。

那么怎样找到所需要的阻值的电阻呢?电阻使用色环代码表示电阻阻值的大小。

颜色 1st 2nd 3rd(幂) 4th(误差)
黑色 0 0 x100
棕色 1 1 x101 +/- 1%
红色 2 2 x102 +/- 2%
橘黄 3 3 x103
黄色 4 4 x104
绿色 5 5 x105 +/- 0.5%
蓝色 6 6 x106 +/- 0.25%
紫色 7 7 x107 +/- 0.1%
灰色 8 8 x108 +/- 0.05%
白色 9 9 x109
金色 x10-1 +/- 5%
银色 x10-2 +/- 10%
+/- 20%

LED

LED 是一个标准的发光二极管。二极管是一种器件,值允许电流从一个方向流进。二极管用 来防止在电路中意外地将电流和地连接以至于损坏其他元件。

LED 的引脚的长度不同,长的一边为正极,需要连接电源;短的一边为负极,需要接地。给 LED 串联一个电阻是必要的,以确保提供给 LED 正确的电流。

总结

实验虽然简单,确也有许多我不曾知道的知识点。希望自己能坚持下去,完成对于 Arduino 的学习。

arduino

« Redis 基础教程 第一次与 Arduino 交互 »

Comments