不久前我有一个Arduino套件,我正在尝试一个小项目。我想使用声音传感器依次打开3个LED。意思是一个拍手转动LED1,然后第二个拍子转动第二个,依此类推。问题是,这种情况仅发生在LED 1和LED2上,并且无需等待第三个拍子点亮,而没有第四个拍子点亮,即使我正在对它们进行计数并从传感器重置值,灯也会熄灭。 我不明白为什么此代码适用于第一和第二个LED,但是第三和第四阶段会自动进行。 谢谢!
我尝试了以下代码,但是它仅适用于第一个和第二个LED,当计数器为0和1时,当计数器达到2或3时,即使我没有激活传感器,它也会激活。
int soundSensor=2;
int LED1=4;
int LED2=5;
int LED3=6;
int counter =0;
int SensorData=0;
void setup() {
Serial.begin(9600);
pinMode(soundSensor,INPUT);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
counter = 0;
}
void loop() {
SensorData=digitalRead(soundSensor);
if(SensorData==1 && counter == 0){
digitalWrite(LED1,HIGH);
counter++;
SensorData=2;
delay(1000);
}
if(SensorData==1 && counter == 1){
digitalWrite(LED2,HIGH);
counter++;
SensorData=2;
delay(1000);
}
if(SensorData==1 && counter == 2){
digitalWrite(LED3,HIGH);
counter++;
SensorData=2;
delay(1000);
}
if(SensorData==1 && counter == 3){
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
counter++;
SensorData=2;
delay(1000);
counter =0;
}
}