Arduino Uno的声音传感器

时间:2019-04-03 04:33:35

标签: c sensor arduino-uno

不久前我有一个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;
     }

  }

0 个答案:

没有答案