Ребят помогите http://amperka.ru/collection/sensors/product/microphone я купил её а понять не могу как подключить вот по этой схеме http://wiki.amperka.ru/сенсоры:аналоговые да и еще чтоб светодиод включался И как подключить реле а то боюсь дуньку спалить
Хм, а что именно не работает? Перепутать что-то довольно сложно: красный провод — питание, чёрный — земля, а синий втыкаете в один из аналоговых входов и делаете analogRead(PIN_WHEREVER_YOUR_MIC_IS).
Проще всего: в цикле ждите пока сигнал станет выше некоторого порога громкости, который вы сами подберёте Чуть сложнее: используйте компаратор. Подведите к нему сигнал с микрофона и постоянный сигнал, уровень которого можете настроить потенциометром. Выход компаратора отправьте в пин Arduino и повешайте на него прерывание. Так вы включите светодиод, когда услышите звук, но при этом не будете грузить циклом ожидания «основной поток»
Не совсем понял вопрос. О каком `val` идёт речь? Считать аналоговое значение: analogRead(pin), цифровое — digitalRead(x)
Код (Text): int sensePin =0; int ledPin = 13; void setup (){ analogReference (DEFAULT); pinMode(ledPin, OUTPUT); } void loop (){ int val =analogRead (sensePin); if(val < 1) digitalWrite (ledPin, HIGH); else digitalWrite (ledPin, LOW); } вот сам скетч но у меня почему то диод горит все время хоть хлопай хоть не хлопай Что не так со скетчем?
скорее всего просто в else непопадает. Попробуй так Код (Text): int sensePin =0; int ledPin = 13; boolean state=false; int shum=0; void setup (){ analogReference (DEFAULT); pinMode(ledPin, OUTPUT); shum=analogRead (sensePin); } void loop (){ int val =analogRead (sensePin); if((val > shum) && !(state)) { state=true; } else { state=false; } digitalWrite (ledPin, state); delay(1000); //да простят меня программеры, но для обучающего кода без delay никак }
Код (Text): const int PIN_SENSE = A0; const int PIN_LED = 13; const int N_CAL = 16; // must be power of 2 const int SNR_THRESH = 4; // critical signal to noise ratio const int MAX_NOISE = 1000; boolean state = false; int noise = 0; void setup () { // pin setup analogReference (DEFAULT); pinMode(PIN_LED, OUTPUT); // precalibration for (byte i=(N_CAL-1); i>=0; i--) { noise += analogRead(PIN_SENSE); delay(50); } if (noise>MAX_NOISE) noise = MAX_NOISE; } void loop () { int val = analogRead(PIN_SENSE); if ((val>MAX_NOISE) || (N_CAL*val > SNR_THRESH*noise)) { // process event state != state; if (state) delay(1000); } else { // autocalibration noise -= noise/N_CAL; noise += val; if (noise>MAX_NOISE) noise = MAX_NOISE; } digitalWrite (PIN_LED, state); delay(50); }
Узнайте тогда, сначала, что у вас вообще происходит. Код (Text): const int PIN_SENSE = A0; void setup() { Serial.begin(9600); } void loop() { Serial.println(analogRead(PIN_SENSE)); delay(100); }