Датчик звука

cls
Offline
Зарегистрирован: 31.12.2016

Объясните, что я должен испаравить, чтоб можно было нормально выключить мигание светодиодов. А то мне приходится на них сильно наорать, чтоб они выключились. Датчик звука пороговый.

int ledPin1 = 12; // LED connected to digital pin 13
int ledPin2 = 3;
int ledPin3 = 2;
int ledPin4 = 1;
int ledPin5 = 4;
int ledPin6 = 11;
int m1 = 10;
int m2 = 9;
int m3 = 8;
int m4 = 7;
int m5 = 6;
int m6 = 5;
int m7 = 0;
int inPin = 13;   // pushbutton connected to digital pin 7
int val = 0;     // variable to store the read value

void setup()
{
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  pinMode(ledPin5, OUTPUT);
  pinMode(ledPin6, OUTPUT);
  pinMode(m1, OUTPUT);
  pinMode(m2, OUTPUT);
  pinMode(m3, OUTPUT);
  pinMode(m4, OUTPUT);
  pinMode(m5, OUTPUT);
  pinMode(m6, OUTPUT);
  pinMode(m7, OUTPUT);// sets the digital pin 13 as output
  pinMode(inPin, INPUT);      // sets the digital pin 7 as input
}

void loop()
{
  digitalWrite(ledPin2, LOW);
  digitalWrite(ledPin4, LOW);
  digitalWrite(ledPin6, LOW);
  digitalWrite(ledPin1, LOW);
  digitalWrite(ledPin3, LOW);
  digitalWrite(ledPin5, LOW);
  digitalWrite(m7, LOW);

  val = digitalRead(inPin);   // read the input pin
   if (val!=0) {
    delay(250);
    val = digitalRead(inPin); 
    while (val==0) {
     val = digitalRead(inPin); 
      delay(100);
      digitalWrite(ledPin1, HIGH);
      digitalWrite(ledPin3, HIGH);
      digitalWrite(ledPin5, HIGH);
      digitalWrite(m1, HIGH);
      delay(100);
      val = digitalRead(inPin); 
      digitalWrite(ledPin2, HIGH);
      digitalWrite(ledPin4, HIGH);
      digitalWrite(ledPin6, HIGH);
      digitalWrite(ledPin1, LOW);
      digitalWrite(ledPin3, LOW);
      digitalWrite(ledPin5, LOW);
      digitalWrite(m2, HIGH);
      digitalWrite(m1, LOW);
      delay(100);
     val = digitalRead(inPin); 
      digitalWrite(ledPin1, HIGH);
      digitalWrite(ledPin3, HIGH);
      digitalWrite(ledPin5, HIGH);
      digitalWrite(ledPin2, LOW);
      digitalWrite(ledPin4, LOW);
      digitalWrite(ledPin6, LOW);
      digitalWrite(m3, HIGH);
      digitalWrite(m2, LOW);
      delay(100);
     val = digitalRead(inPin); 
      digitalWrite(ledPin2, HIGH);
      digitalWrite(ledPin4, HIGH);
      digitalWrite(ledPin6, HIGH);
      digitalWrite(ledPin1, LOW);
      digitalWrite(ledPin3, LOW);
      digitalWrite(ledPin5, LOW);
      digitalWrite(m4, HIGH);
      digitalWrite(m3, LOW);
      delay(100);
      val = digitalRead(inPin); 
      digitalWrite(ledPin1, HIGH);
      digitalWrite(ledPin3, HIGH);
      digitalWrite(ledPin5, HIGH);
      digitalWrite(ledPin2, LOW);
      digitalWrite(ledPin4, LOW);
      digitalWrite(ledPin6, LOW);
      digitalWrite(m5, HIGH);
      digitalWrite(m4, LOW);
    delay(100);
      val = digitalRead(inPin); 
      digitalWrite(ledPin2, HIGH);
      digitalWrite(ledPin4, HIGH);
      digitalWrite(ledPin6, HIGH);
      digitalWrite(ledPin1, LOW);
      digitalWrite(ledPin3, LOW);
      digitalWrite(ledPin5, LOW);
      digitalWrite(m6, HIGH);
      digitalWrite(m5, LOW);
      delay(100);
      val = digitalRead(inPin); 
      digitalWrite(ledPin1, HIGH);
      digitalWrite(ledPin3, HIGH);
      digitalWrite(ledPin5, HIGH);
      digitalWrite(ledPin2, LOW);
      digitalWrite(ledPin4, LOW);
      digitalWrite(ledPin6, LOW);
      digitalWrite(m7, HIGH);
      digitalWrite(m6, LOW);
     
      val = digitalRead(inPin); 
      
    }
  delay(1000);
   }
 
}

 

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

В нём есть переменный резистор, его крутить. Если нету, можно сделать перед микрофоном предусилитель на LM358, тогда он будет включен между входом (-) и выходом. Такой резистор называется "отрицательная обратная связь". R5 на схеме.