Датчик звука
- Войдите на сайт для отправки комментариев
Вс, 01/01/2017 - 04:26
Объясните, что я должен испаравить, чтоб можно было нормально выключить мигание светодиодов. А то мне приходится на них сильно наорать, чтоб они выключились. Датчик звука пороговый.
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); } }
В нём есть переменный резистор, его крутить. Если нету, можно сделать перед микрофоном предусилитель на LM358, тогда он будет включен между входом (-) и выходом. Такой резистор называется "отрицательная обратная связь". R5 на схеме.