你可以使用一个简单的定时器来实现这个功能。假设你使用的是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秒后熄灭,如此反复循环的效果。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号