有两组灯A、B,要求:按下启动按钮后,A亮2秒后熄灭,接着亮B2秒熄灭,然后再A亮2秒后熄灭,重复

1个回答

写回答

Mavis Georgiana

2025-08-02 08:11

+ 关注

你可以使用一个简单的定时器来实现这个功能。假设你使用的是Arduino来控制这些灯,下面是一个示例代码:

<code>cpp<br/>// 定义灯A和灯B的引脚 const int pinA = 13; const int pinB = 12; // 定义状态变量 int state = 0; unsigned long previousMillis = 0; void setup()   // 初始化灯A和灯B的引脚为输出模式 pinMode(pinA, OUTPUT); pinMode(pinB, OUTPUT); } void loop()   unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= 2000)  // 每2秒检查一次状态 previousMillis = currentMillis; switch (state)       case 0: // 灯A亮,灯B灭 digitalWrite(pinA, HIGH); digitalWrite(pinB, LOW); state = 1; // 切换到下一个状态 break; case 1: // 灯A灭,灯B亮 digitalWrite(pinA, LOW); digitalWrite(pinB, HIGH); state = 2; // 切换到下一个状态 break; case 2: // 灯A亮,灯B灭 digitalWrite(pinA, HIGH); digitalWrite(pinB, LOW); state = 0; // 回到第一个状态,实现循环 break; } } }</code>
这段代码首先定义了灯A和灯B所连接的引脚,以及一个状态变量state和一个记录上一次切换时间的变量previousMillis。在setup函数中,将引脚设置为输出模式。在loop函数中,通过millis()函数获取当前时间,并与previousMillis比较。如果时间超过2秒,就根据state变量的值来决定哪个灯亮哪个灯灭,并切换到下一个状态。这样就可以实现灯A亮2秒后熄灭,接着灯B亮2秒熄灭,然后再A亮2秒后熄灭,如此反复循环的效果。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号