以下是一个示例代码,使用Arduino Uno的Millis函数同时点亮LED并运行舵机:
#include
int ledPin = 13; // LED连接到数字引脚13
int servoPin = 9; // 伺服舵机连接到数字引脚9
Servo servo; // 创建Servo对象来控制舵机
unsigned long previousMillis = 0; // 上一次更新时间
const long interval = 1000; // LED闪烁的间隔时间
void setup() {
pinMode(ledPin, OUTPUT); // 设置LED引脚为输出模式
servo.attach(servoPin); // 将舵机连接到引脚
}
void loop() {
unsigned long currentMillis = millis(); // 获取当前时间
// 控制LED闪烁
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis; // 更新上一次更新时间
// 如果LED处于关闭状态,则打开它;否则关闭它
if (digitalRead(ledPin) == LOW) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
// 控制舵机旋转
int pos = map(currentMillis, 0, 10000, 0, 180); // 根据时间映射舵机位置(0-180度)
servo.write(pos); // 将位置发送给舵机
delay(15); // 延迟一小段时间以使舵机旋转到指定位置
}
在此示例中,我们使用了Millis函数来跟踪时间,以便在一定的时间间隔内点亮LED并旋转舵机。LED每隔1秒闪烁一次,同时舵机根据时间从0度到180度旋转。请注意,舵机的控制需要使用Servo库,并将舵机连接到数字引脚9。