Blink Without Delay: 不使用 delay() 函数而使 LED 闪烁

您所在的位置:网站首页 arduino乱执行代码delay Blink Without Delay: 不使用 delay() 函数而使 LED 闪烁

Blink Without Delay: 不使用 delay() 函数而使 LED 闪烁

2024-07-10 20:38:20| 来源: 网络整理| 查看: 265

不使用 delay() 函数而使 LED 闪烁

有些时候你需要同时做两件事。例如,你可能希望在读取按键按下状态同时让LED闪烁。 在这种情况下,你不能使用 delay(),因为Arduino程序会在delay()中停顿。 如果按键被按下的同时,Arduino正在暂停等待 delay()结束 ,你的程序也将会错过按键的按下.

这个演示展示了如何闪烁LED而不使用 delay()。它点亮了LED,然后记录下时间。然后,每一次通过 loop()循环, 检查闪烁设置时间是否到达。 如果是,它的点亮或熄灭LED, 并且刷新时间。以这种方式让LED不断闪烁, 而代码的执行不会因一个指令而滞后.

类似的,你用微波炉热比萨,并同时等待一些重要的电子邮件。你把比萨放进微波炉10分钟。使用 delay()的类比,你坐在微波炉前面看着定时器计数,倒计时10分钟直到定时器达到零为止。如果在这期间重要的邮件到达,你将会错过它。

在现实生活中你会做的是开始热萨饼,然后检查你的电子邮件,然后可能再做别的事情(不太长时间的事!)偶尔你会回到微波炉,看看定时器是否已经达到零,即你的比萨饼是否已经完成。

在本教程中,你将学会如何建立一个类似的计时器 .

硬件需求

Arduino 开发板 LED (非必要) 220欧电阻(非必要)

电路

要构建这电路,请把电阻的一端连接到板子的pin13,电阻的另一端连接到LED的长引脚(长的引脚,称为阳极),LED的短引脚连接到(短的引脚,称为阴极)板子的GND,如上图所示和下面的原理图。

大多数Arduino和Genuino板子已经将板上的LED附加在板子本身的pin13。如果你不附加任何硬件中运行这个例子,您应该看到,LED闪烁。

原理图

点击图片放大

图像使用fritzing.开发。电路的例子, 看到fritzing项目页面

构建电路后将板子插入到你的电脑,开始Arduino软件(IDE),输入下面的代码。

代码

下面的代码使用millis() 函数,从板子开始运行时,就会返回很多个毫秒的命令。当前的演示,是使LED闪烁.

/* 不使用 delay() 函数而使 LED 闪烁 点亮和熄灭一个连接到数字引脚的发光二极管(LED),不使用delay()延迟函数。 这意味着其他代码可以同时运行而不被LED代码干扰 电路 * LED 连到引脚13 和 地 * 注:大部分 Arduino 已经有板上的LED并且是连到引脚13,所以此示例无需额外硬件 created 2005 by David A. Mellis modified 8 Feb 2010 by Paul Stoffregen modified 11 Nov 2013 by Scott Fitzgerald 这个示例代码是在公共领域. http://www.arduino.cc/en/Tutorial/BlinkWithoutDelay */ //一个不会改变的常量。这里用来定义一个引脚: const int ledPin = 13; // LED引脚号 // 一个会变化的变量: int ledState = LOW; //ledState将LED置低电平 //一般来说,应该使用 "unsigned long" 类型的变量来保存时间 // 如果用int类型来存储值,它很快就会变得过大而该类似无法储存 unsigned long previousMillis = 0; // 将存储的LED值最后一次更新 //一个不会改变的常量: const long interval = 1000; // 闪烁的时间间隔(毫秒) void setup() { // 设置数字引脚作为输出: pinMode(ledPin, OUTPUT); } void loop() { // 在这里,你放置的代码需要一直运行. // 检查闪烁的时间,就是if // 当前时间和上次闪烁的时间 //设置你想要的 LED更大的时间间隔 // LED闪烁. unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { // 保存上次LED闪烁时间 previousMillis = currentMillis; // 如果LED是点亮的,反之亦然: if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } // 设置LED的电平为ledState值: digitalWrite(ledPin, ledState); } }

 

参考 pinMode() digitalWrite() digitalRead() if else BlinkWithoutDelay - Blink an LED without using the delay() function. Debounce - Read a pushbutton, filtering noise. DigitalInputPullup - Demonstrates the use of INPUT_PULLUP with pinMode(). StateChangeDetection - Count the number of button pushes. toneKeyboard - A three-key musical keyboard using force sensors and a piezo speaker. toneMelody - Play a melody with a Piezo speaker. toneMultiple - Play tones on multiple speakers sequentially using the tone() command. tonePitchFollower - Play a pitch on a piezo speaker depending on an analog input.


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭