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

参考

时间: 2024-12-09 18:51:25

Arduino 翻译系列 - LED 灯闪烁的相关文章

STM32通用定时器实现LED灯闪烁

刚才看了一下STM32通用定时器的教程,其实和51的定时器使用差不多.只是因为32的时钟更复杂,可操控的寄存器更多,所以写的时候可能更复杂. 使用通用定时器中断的一般步骤:1.使能定时器时钟 这个需要看时钟树,使能对应的时钟就好了.这里我使用的是TIM3,所以使能APB1的时钟即可. 2.设置定时器的分频系数和重装载值 定时器中断的时间为:Tout = (arr+1)/[Tclk/(psc+1)] 其实这个定时器中断时间还是要具体分析,这里是这样,其他地方或许不是这样,具体还是要参考<STM32

TQ2440上LED灯闪烁效果的驱动程序实现

本篇文章的驱动程序实现的要点:一是实现了设备文件的自动创建,不用每次运行驱动都要使用mknod指令自动创建设备文件,本文通过udev(mdev)来实现设备文件的自动创建.二是对LED灯的控制不是通过直接设置相关GPIO的二进制位来实现,本文使用linux系统中提供的对S3C2410 GPIO的操作函数,直接实现对相关GPIO的控制.三是实现了LED灯的闪烁效果,本文虽然没有在驱动程序代码中直接实现LED灯的闪烁效果,但是通过上层应用程序调用驱动程序中的ioctl间接实现了LED灯的闪烁效果. 一

arduino入门学习实现语音控制LED灯

需要的准备的硬件arduino+PC+麦克风实现语音命令控制LED灯的亮灭. 首先需要将写好的arduino程序烧录到arduino uno主板中,下面是代码如下: int val;//定义变量val int ledpin=10;//定义数字接口13 void setup() { Serial.begin(9600);//设置波特率为9600,这里要跟软件设置相一致.当接入特定设备(如:蓝牙)时,我们也要跟其他设备的波特率达到一致. pinMode(ledpin,OUTPUT);//设置数字10

arduino 红外遥控器控制LED灯

/* 日期:2016.9.1 功能:红外遥控器控制LED灯 开,关,闪烁 元件: 跳线公公头 * 5 led, 220欧电阻 红外接收管,红外遥控 接线: 红外灯面向自己从左到右分别接 IO3, GND, 5V LED 负极接GND 正极串联电阻接 IO5 红外1-9口编码: FF30CF 1 FF18E7 2 FF7A85 3 FF10EF 4 FF38C7 5 FF5AA5 6 FF42BD 7 FF4AB5 8 FF52AD 9 参考:http://www.arduino.cn/threa

Arduino不使用Delay的定时(灯闪烁)

看到一篇关于Arduino不使用Delay的定时灯闪烁.主要是millis()方法,这个用法非常强大,很多时候需要使用,也不用担心溢出. // constants won't change. Used here to set a pin number: const int ledPin =  LED_BUILTIN;// the number of the LED pin // Variables will change: int ledState = LOW;             // l

arduino + ld3320语音识别模块实现语音控制LED灯

材料准备: 1.arduino UNO开发板 2.LD3320语音识别模块 面包板,杜邦线,LED灯等 接线: LE3320     ----      arduino 1.3.3v(两个都接)  --  3.3v 2.GND(两个都接)  --  GND 3.MISO  --  D12 4.MOSI  --  D11 5.SCK  --  D13 6.NSS  --  D4 7.NC  --  空着 8.RST  --  D9 9.WR  -- GND 10.IRQ  -- D2 8号引脚串联

Raspberry PI 系列 —— 裸机点亮LED灯

背景 最近刚买了Raspberry PI B+,配置运行了官方提供的Raspbian系统,折腾了一周Linux系统,感觉没啥意思,于是就试着想了解底层的启动流程,通过几天的研究,发现最底层部分的启动是由官方提供的bootcore.bin和start.elf文件来执行(应该是对硬件设备的初始化,如MMU等),之后由下一部分kernel.img的_start接管.为了真正验证此流程,于是想利用GPIO控制LED灯,几经折腾终于成功点亮LED,现记录于此. 外设地址编码 要想控制GPIO管脚就必须知道

LED灯的闪烁与熄灭也成了一个iptables target,强汗

只要有符合规则数据包到达,LED灯就XY一下,这个效果怎么实现?我有很多的办法,比较绕的就是:使用LOG target发内核日志,rsyslogd截获,redirect到filter,调用shell操作LED灯.虽然很绕,但是UNIX上不都是提倡这么玩的吗?最为直接的办法是什么?我觉得应该是写一个事件target,只要匹配就通过netlink把这个数据包报告给user space,有了这个事件target之后,甚至LOG都可以通过user space的listen daemon来分发,毕竟pri

CC2640R2F&amp;TI-RTOS 创建 一个任务 和 使用 信号量 超时来闪烁 LED灯

/* * data_process.c * * Created on: 2018年7月5日 * Author: admin */ #include <ti/sysbios/knl/Task.h> #include <ti/sysbios/knl/Clock.h> #include <ti/sysbios/knl/Event.h> #include <ti/sysbios/knl/Queue.h> #include <ti/sysbios/knl/Sem