2025年【雕爷学编程】Arduino 手册之辅助工具 delay()

【雕爷学编程】Arduino 手册之辅助工具 delay()什么是 Arduino Arduino 是一款开源的电子原型平台 它可以让你用简单的硬件和软件来创建各种创意的项目 无论你是初学者还是专家 Arduino 都能为你提供无限的可能性 你可以用 Arduino 来控制传感器 灯光 马达 机器人 物联网设备等等 只要你能想到的 Arduino 都能帮你实现

大家好,我是讯享网,很高兴认识大家。

在这里插入图片描述
讯享网
在这里插入图片描述
什么是Arduino?
Arduino 是一款开源的电子原型平台,它可以让你用简单的硬件和软件来创建各种创意的项目。无论你是初学者还是专家,Arduino 都能为你提供无限的可能性。你可以用 Arduino 来控制传感器、灯光、马达、机器人、物联网设备等等,只要你能想到的,Arduino 都能帮你实现。

如果你想了解更多关于 Arduino 的信息,你可以访问 Arduino 的官方网站,那里有丰富的资源和教程供你参考。你也可以加入 Arduino 的社区,和来自世界各地的爱好者、学生、设计师和工程师交流心得和经验。此外,你还可以使用 Arduino 的在线编程工具,在云端编写代码并上传到你的开发板上。

Arduino 是一个不断发展和创新的平台,它有着广泛的应用领域和潜力。这里希望本手册能激发你对 Arduino 的兴趣和热情,让你享受 Arduino 带来的创造力和乐趣

在这里插入图片描述

维基百科的定义
Arduino 是一个开源嵌入式硬件平台,用来供用户制作可交互式的嵌入式项目。此外 Arduino 作为一个开源硬件和开源软件的公司,同时兼有项目和用户社群。该公司负责设计和制造Arduino电路板及相关附件。这些产品按照GNU宽通用公共许可证(LGPL)或GNU通用公共许可证(GPL)许可的开源硬件和软件分发的,Arduino 允许任何人制造 Arduino 板和软件分发。 Arduino 板可以以预装的形式商业销售,也可以作为 DIY 套件购买。

Arduino 2005 年时面世,作为意大利伊夫雷亚地区伊夫雷亚互动设计研究所的学生设计,目的是为新手和专业人员提供一种低成本且简单的方法,以建立使用传感器与环境相互作用的装置。初学者和爱好者可用Arduino制造传感器、简单机器人、恒温器和运动检测器等装置。

Arduino 这个名字来自意大利伊夫雷亚的一家酒吧,该项目的一些创始人过去常常会去这家酒吧。 酒吧以伊夫雷亚的 Arduin(Arduin of Ivrea)命名,他是伊夫雷亚边疆伯爵,也是 1002 年至 1014 年期间的意大利国王。

在这里插入图片描述

十二、Arduino辅助工具 delay()
Arduino辅助工具delay()是一种用于暂停程序执行一定时间的函数。delay()的作用是让Arduino在执行完一段代码后,等待一段时间再执行下一段代码。这样可以实现一些定时或延时的效果,例如闪烁LED灯、控制舵机等。

delay()的应用场景有以下几种:
1)当需要让Arduino按照一定的频率或周期执行某些操作时,例如每隔一秒读取一次传感器的值,或每隔两秒切换一次LED灯的状态。
2)当需要让Arduino在执行某些操作前或后等待一段时间时,例如在发送数据前等待一秒,或在接收数据后等待两秒。
3)当需要让Arduino模拟人为的操作或反应时,例如在按下按钮后等待半秒再触发一个动作,或在检测到声音后等待一秒再发出一个声音。

使用delay()时,需要注意以下事项:
1)delay()函数会阻塞Arduino的主程序,即在等待的时间内,Arduino无法执行其他的代码,也无法响应外部的事件或中断。因此,如果需要同时处理多个任务或事件,或者需要精确的时间控制,那么不建议使用delay()函数,而是使用其他方法,例如定时器中断、多任务调度器等。
2)delay()函数的参数是以毫秒为单位的整数,表示等待的时间。如果参数为0,则不会产生任何延时。如果参数为负数,则会被忽略。如果参数大于最大整数,则会导致溢出,可能会产生意外的结果。
3)delay()函数依赖于Arduino内部的时钟,而这个时钟可能会受到温度、电压、晶振等因素的影响,导致实际的延时时间与预期的不一致。因此,如果需要高精度的时间控制,那么不建议使用delay()函数,而是使用其他方法,例如外部时钟、校准方法等。

下面是几个实际运用程序案例,展示了在Arduino中使用delay()的应用场景:

案例一:时间控制:

void setup() { 
    pinMode(13, OUTPUT); } void loop() { 
    digitalWrite(13, HIGH); delay(1000); // 等待1秒 digitalWrite(13, LOW); delay(1000); // 等待1秒 } 

讯享网

在这个案例中,使用delay()函数在LED上创建一个简单的闪烁效果。通过在LED点亮和熄灭之间添加适当的延迟,实现了每秒闪烁一次的效果。

案例二:传感器采集:

讯享网void setup() { 
    pinMode(A0, INPUT); Serial.begin(9600); } void loop() { 
    int sensorValue = analogRead(A0); Serial.println(sensorValue); delay(1000); // 每秒读取一次传感器数据 } 

在这个案例中,使用delay()函数在每次读取传感器数据之间添加了1秒的延迟。这样可以控制传感器数据读取的频率,确保稳定的数据输出。

案例三:状态机控制:

void setup() { 
    pinMode(3, OUTPUT); } void loop() { 
    static int state = 0; switch (state) { 
    case 0: digitalWrite(3, HIGH); delay(500); // 等待0.5秒 state = 1; break; case 1: digitalWrite(3, LOW); delay(1000); // 等待1秒 state = 0; break; } } 

在这个案例中,使用delay()函数在不同状态之间添加了延迟。通过控制状态转换之间的时间,可以实现LED灯的闪烁效果,每0.5秒亮一次,然后熄灭1秒,不断循环。

案例四:使用delay()实现LED灯的循环闪烁

讯享网void setup() { 
    // 设置LED灯引脚为输出模式 pinMode(13, OUTPUT); } void loop() { 
    // 将LED灯引脚设为高电平,即点亮LED灯 digitalWrite(13, HIGH); // 等待500毫秒 delay(500); // 将LED灯引脚设为低电平,即熄灭LED灯 digitalWrite(13, LOW); // 等待500毫秒 delay(500); } 

案例五:使用delay()实现舵机的往复旋转

// 引入舵机库 #include <Servo.h> // 创建一个舵机对象 Servo servo; void setup() { 
    // 将舵机连接到9号引脚 servo.attach(9); } void loop() { 
    // 定义一个局部变量angle,表示舵机的角度,并初始化为0 int angle = 0; // 循环从0度到180度 for (angle = 0; angle <= 180; angle++) { 
    // 将舵机旋转到指定角度 servo.write(angle); // 等待15毫秒 delay(15); } // 循环从180度到0度 for (angle = 180; angle >= 0; angle--) { 
    // 将舵机旋转到指定角度 servo.write(angle); // 等待15毫秒 delay(15); } } 

案例六:使用delay()实现声光报警器

讯享网void setup() { 
    // 设置蜂鸣器引脚为输出模式 pinMode(3, OUTPUT); // 设置LED灯引脚为输出模式 pinMode(13, OUTPUT); // 设置红外传感器引脚为输入模式 pinMode(2, INPUT); } void loop() { 
    // 定义一个局部变量sensorValue,表示红外传感器的值,并从2号引脚读取 int sensorValue = digitalRead(2); // 如果sensorValue为高电平,表示有人靠近,则触发报警 if (sensorValue == HIGH) { 
    // 循环10次 for (int i = 0; i < 10; i++) { 
    // 将蜂鸣器引脚设为高电平,即发出声音 digitalWrite(3, HIGH); // 将LED灯引脚设为高电平,即点亮LED灯 digitalWrite(13, HIGH); // 等待100毫秒 delay(100); // 将蜂鸣器引脚设为低电平,即停止声音 digitalWrite(3, LOW); // 将LED灯引脚设为低电平,即熄灭LED灯 digitalWrite(13, LOW); // 等待100毫秒 delay(100); } } } 

这些案例展示了在Arduino中使用delay()辅助工具的实际应用场景。通过使用delay()函数,可以简单地控制时间间隔,实现时间控制、传感器采集和状态机控制等功能。然而,需要注意避免长时间的延迟以及可能引起系统不响应的问题。

在这里插入图片描述

小讯
上一篇 2025-03-02 21:01
下一篇 2025-03-10 08:18

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/42732.html