以下是可能的 Arduino 代码实现:

const int leftLedPin = 6;
const int rightLedPin = 7;
const int buzzerPin = 8;

void setup() {
  pinMode(leftLedPin, OUTPUT);
  pinMode(rightLedPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  // 检查左转信号
  if (digitalRead(2) == HIGH) {
    digitalWrite(leftLedPin, HIGH);
    digitalWrite(rightLedPin, LOW);
    tone(buzzerPin, 1000, 500);
    delay(500);
  }
  // 检查右转信号
  else if (digitalRead(3) == HIGH) {
    digitalWrite(leftLedPin, LOW);
    digitalWrite(rightLedPin, HIGH);
    tone(buzzerPin, 2000, 500);
    delay(500);
  }
  // 没有检测到任何信号
  else {
    digitalWrite(leftLedPin, LOW);
    digitalWrite(rightLedPin, LOW);
    noTone(buzzerPin);
  }
}

代码中定义了左右 LED 灯和蜂鸣器的引脚,然后在 setup() 函数中设置这些引脚为输出模式。在 loop() 函数中,首先检查左转信号是否被触发,如果是,则左侧 LED 灯点亮,右侧 LED 灯熄灭,并且蜂鸣器发出 1kHz 的声音。然后延迟 500ms 再检查右转信号是否被触发,如果是,则右侧 LED 灯点亮,左侧 LED 灯熄灭,并且蜂鸣器发出 2kHz 的声音。最后,如果没有检测到任何信号,所有 LED 灯都熄灭,蜂鸣器停止发声。


原文地址: https://www.cveoy.top/t/topic/oyAG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录