首页 > 代码库 > Arduino 翻译系列 - LED 灯闪烁

Arduino 翻译系列 - LED 灯闪烁

原文地址 - https://www.arduino.cc/en/Tutorial/Blink

闪烁

这个例子展示了你能拿 Arduino / Genuino 板子来干的最简单的事:使开发板上的 LED 灯闪烁。

硬件需求

Arduino 开发板

LED (非必要)

220欧电阻(非必要)

电路

这例程使用了大部分 Arduino / Genuino 开发板上都有的 LED 指示灯。这 LED 灯是连接到数字引脚的,而它在不同型号的开发板上的引脚号都不一样。为了方便大家,我们已经每种开发板的描述档定义了一个常量 LED_BUILTIN。有了这常量,大家在控制板上 LED 灯时就更方便了。以下是各开发板常量的值和对应数字引脚号的对照:

  • D13 - 101
  • D13 - Due
  • D1 - Gemma
  • D13 - Intel Edison
  • D13 - Intel Galileo Gen2
  • D13 - Leonardo and Micro
  • D13 - LilyPad
  • D13 - LilyPad USB
  • D13 - MEGA2560
  • D13 - Mini
  • D6 - MKR1000
  • D13 - Nano
  • D13 - Pro
  • D13 - Pro Mini
  • D13 - UNO
  • D13 - Yún
  • D13 – Zero

如果你希望使用本代码来点亮外部的 LED,你是需要自己搭建电路的。首先把电阻的一只引脚连接到 LED_BUILTIN 常量所指定的数字引脚,然后把 LED 灯较长的一只脚与电阻相连,最后把 LED 较短的另一只脚(负极、阴极)接到 GND 地。下图我们展示了 UNO 板的接法,而它 LED_BUILTIN 的常量值为 D13。

连接 LED 的电阻阻值可以比 220欧更高,只要低于 1K欧 LED 都能点亮。

技术分享

原理图

 

技术分享

代码

当你把以上电路搭建好并且把你的 Arduino / Genuino 开发板连上电脑之后,你就可以打开 Arduino IDE 软件并且输入以下代码了。另外你还可以在菜单 File/Examples/01.Basics/Blink 中直接调出此代码。代码中你要做的第一件事就是配置 LED_BUILTIN 引脚为输出引脚,如下:

pinMode(LED_BUILTIN, OUTPUT);

在主循环代码内,你需要用这句代码点亮 LED:

digitalWrite(LED_BUILTIN, HIGH);

这会对 LED 阳极供电 5V。这就会使 LED 的两只引脚产生电压差并且把它点亮。然后你会用以下代码把 LED 熄灭:

digitalWrite(LED_BUILTIN, LOW);

这行代码使 LED_BUILTIN 引脚回到 0V,使 LED 熄灭。在点亮与熄灭之间,你会希望有足够的时间间隔,使人肉眼能看出点亮和熄灭的变化,delay() 命令就是让开发板在 1000毫秒(1秒)时间内停下来什么都不做。当你使用 delay() 命令,在你指定的延时时间内什么都不会发生。当你明白各个基本例子后,可以查看 BlinkWithoutDelay 例程去学习如何产生一个延时,同时让开发板做别的事情。

当你明白了此例子后,请参看 DigitalReadSerial 例程,学习如何读取一个连接开发板的按键。

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO 
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino model, check
  the Technical Specs of your board  at https://www.arduino.cc/en/Main/Products
  
  This example code is in the public domain.
  
  闪烁
  点亮 LED 一秒,然后熄灭一秒,不断循环

  几乎所有 Arduino 的开发板都有板上的 LED 灯可以供控制。在 UNO, MEGA, 和 ZERO 它
  是连到 D13 引脚,而 MKR1000 是连在 6 引脚。LED_BUILTIN 的值是已经设置到对应开发
  板的正确引脚值。
  如果你希望了解你的 Arduino 开发板上的 LED 到底连到那个引脚,请参与你开发板的技术
  说明书,可以在此链接查阅 https://www.arduino.cc/en/Main/Products
  
  modified 8 May 2014
  by Scott Fitzgerald
  
  modified 2 Sep 2016
  by Arturo Guadalupi
  
  modified 8 Sep 2016
  by Colby Newman
*/


// setup 函数是当你给开发板上电或重启后执行一次
void setup() {
  // 初始化数字引脚 LED_BUILTIN 为输出
  pinMode(LED_BUILTIN, OUTPUT);
}

// loop 函数是不断循环执行
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // 点亮LED灯(高电平)
  delay(1000);                       // 等待一秒
  digitalWrite(LED_BUILTIN, LOW);    // 给低电平使LED灯熄灭
  delay(1000);                       // 等待一秒
}

QQ 群

欢迎加入我们的大家庭 技术分享 点击加入 Arduino 发烧玩家群号 8580606

参考

  • setup()
  • loop()
  • pinMode()
  • digitalWrite()
  • delay()
  • AnalogReadSerial - 读取电位器, 并把它的状态输出到 Arduino 串口窗口
  • BareMinimum -  编写一个 Arduino 代码的必要代码块
  • DigitalReadSerial - 读取一个按键, 并把它的状态输出到 Arduino 串口窗口
  • Fade - 示范使用模拟输出使 LED 变暗.
  • ReadAnalogVoltage - 读取模拟输入,并把电压输出到 Arduino 串口窗口

Arduino 翻译系列 - LED 灯闪烁