用arduino写一个红灯闪烁频率1Hz蓝灯闪烁频率3Hz的程序
以下是一个使用Arduino编写的程序,可以让红灯以1Hz的频率闪烁,蓝灯以3Hz的频率闪烁。
// 定义红灯引脚
int redLedPin = 10;
// 定义蓝灯引脚
int blueLedPin = 11;
// 红灯闪烁的时间间隔(单位:毫秒)
int redLedInterval = 500;
// 蓝灯闪烁的时间间隔(单位:毫秒)
int blueLedInterval = 333;
// 记录红灯、蓝灯当前状态
int redLedState = LOW;
int blueLedState = LOW;
// 记录红灯、蓝灯上一次闪烁的时间
unsigned long previousRedLedMillis = 0;
unsigned long previousBlueLedMillis = 0;
void setup() {
// 设置红灯引脚为输出模式
pinMode(redLedPin, OUTPUT);
// 设置蓝灯引脚为输出模式
pinMode(blueLedPin, OUTPUT);
}
void loop() {
// 获取当前时间
unsigned long currentMillis = millis();
// 控制红灯闪烁
if (currentMillis - previousRedLedMillis >= redLedInterval) {
// 记录当前时间
previousRedLedMillis = currentMillis;
// 切换红灯状态
if (redLedState == LOW) {
redLedState = HIGH;
} else {
redLedState = LOW;
}
// 更新红灯状态
digitalWrite(redLedPin, redLedState);
}
// 控制蓝灯闪烁
if (currentMillis - previousBlueLedMillis >= blueLedInterval) {
// 记录当前时间
previousBlueLedMillis = currentMillis;
// 切换蓝灯状态
if (blueLedState == LOW) {
blueLedState = HIGH;
} else {
blueLedState = LOW;
}
// 更新蓝灯状态
digitalWrite(blueLedPin, blueLedState);
}
}
在上述程序中,我们首先定义了红灯和蓝灯的引脚,分别为10和11。接下来定义了红灯闪烁的时间间隔为500毫秒,蓝灯闪烁的时间间隔为333毫秒。然后,我们使用pinMode函数将红灯引脚和蓝灯引脚设置为输出模式。
在loop函数中,我们使用millis函数获取当前时间,并与上一次闪烁时间进行比较,以控制红灯和蓝灯的闪烁频率。如果当前时间与上一次闪烁时间的差值大于等于闪烁时间间隔,我们就切换相应灯的状态,并更新引脚的输出电平。
这样,就可以实现红灯以1Hz的频率闪烁,蓝灯以3Hz的频率闪烁
原文地址: https://www.cveoy.top/t/topic/hzBf 著作权归作者所有。请勿转载和采集!