Привет. Есть вот такой микрофон - И скетч - Код (C++): #include "Arduino.h" int val; const int bPin = 12; void setup(/* arguments */) { Serial.begin(9600); pinMode(bPin, OUTPUT); digitalWrite(bPin, LOW); } void loop(/* arguments */) { val = analogRead(0); Serial.println(val, DEC); if(val > 555) { digitalWrite(bPin, HIGH); delay(700); } else{ digitalWrite(bPin, LOW); } } Проблема в том что после любого изменения кода, или просто перезагрузки того-же, чувствительность на микрофоне меняется. И ещё очень плохо чувствует разницу в звуке, то-есть, что-бы значение изменилось хотя бы на одну единицу нужно делать звук НАМНОГО больше. Может можно val преобразовать в double?
Микрофон не бракованный, а просто паршивый. И звук аналоговым входом вы не поймаете без детектора пиков.
Типичная ситуация: покупаем китайский микрофон за три копейки, залезаем на форум и спрашиваем, почему же не работает. На самом деле, тут много вариантов: либо микрофон вообще сломан, либо попутаны компоненты микрофона (резистор не тот поставили и т.д.). Так же есть ещё в районе 20 вариантов, почему микрофон не корректно работает. Среди них и тот, что используете Вы и ардуинку тоже, китайскую. Может быть, что микрофон и хорошо работающий, а косяк в ардуинке... Но скорее всего, дело в нечестных китайцах-производителях микрофонов
Подключила через цифровой, теперь что бы загрузить скетч в плату нужно отключить все от платы, ждать около 120 секунд и тогда не будет ошибки...
"Разницу в звуке" вы не измерите этим модулем никак. Он срабатывает по порогу громкости, установленному подстроечным резистором на модуле. И то делает из рук вон плохо.