Датчик звука
- Войдите на сайт для отправки комментариев
Вс, 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 на схеме.