Перейти к содержимому


Фотография

Урок №10. Arduino и датчик звуковых колебаний. Часть первая

Датчик звука

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 admin

admin

    Администратор

  • Администраторы
  • 32 сообщений

Отправлено 22 Ноябрь 2014 - 11:37

  Датчик звуковых колебаний- датчик звука, представляет собой небольшую платку с установленным на ней микрофоном, микрофонным усилителем, регулятором чувствительности в виде переменного резистора. Датчик имеет выход с логическим уровнем. Сработал датчик- на выходе появилась логический ноль. Регулятором чувствительности можно выбирать, от какого звука будет срабатывать датчик- от слабого, громкого или очень громкого звука.

 

Прикрепленный файл  86.jpg   72,14К   6 скачиваний

 

  Датчик з имеет три вывода- «VCC», «GND», и « OUT».  Поэтому соединяем их по схеме из предыдущего урока. Подключите вывод  «OUT» датчика звука к выводу 5 Arduino.

Отрегулируйте с помощью отвертки чувствительность датчика так, что бы индикаторный светодиод на датчике звука кратковременно вспыхивал  от звука хлопка в ладоши. Напишем небольшую программу. Алгоритм действия будет такой. Датчик звука срабатывает от хлопка, при этом на 3 секунда загорается светодиод, встроенный на плату Arduino на 13-м выводе.

int sensorSound =5 ;   // OUT от датчика звука  на  5-ый вывод
int led = 13   // светодиод на  13-ый вывод

void setup() {
  pinMode (sensorSound , INPUT);   // вывод для подключения сенсора  настраиваем как "вход"
}
void loop() {
  sensorStatus = digitalRead (sensorSound);  //считываем уровень на входе 5 и ждем хлопка

  if(sensorStatus ==0){   //если хлопок обнаружен- если появился логический ноль на выходе //датчика звука

  digitalWrite(led, NIGHT);   //включаем светодиод на 13 выводе
delay(3000);  // ждем 3 секунды
  digitalWrite(led, LOW);     //выключаем светодиод на 13 выводе
}

  Записываем программу в Arduino, проверяем работу. При необходимости можно добавить  или уменьшить чувствительность микрофона.

Прикрепленные файлы



#2 Serg-moderator

Serg-moderator

    Новичок

  • Администраторы
  • 6 сообщений
  • ГородХабаровск

Отправлено 11 Апрель 2015 - 14:53

int sensorSound =5 ;   // OUT от датчика звука  на  5-ый вывод
int led = 13 ;  // светодиод на  13-ый вывод
int sensorStatus ;
void setup() {
  pinMode (sensorSound , INPUT);   // вывод для подключения сенсора  настраиваем как "вход"
}
void loop() {
  sensorStatus = digitalRead (sensorSound);  //считываем уровень на входе 5 и ждем хлопка

  if(sensorStatus ==0){   //если хлопок обнаружен- если появился логический ноль на выходе //датчика звука

    digitalWrite(led, HIGH);   //включаем светодиод на 13 выводе
    delay(3000);  // ждем 3 секунды
    digitalWrite(led, LOW);     //выключаем светодиод на 13 выводе
  }
}


#3 geraldic

geraldic

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 26 Декабрь 2015 - 16:20

Друзья, можете мне помочь? Я уже всю голову сломал... Есть два вопроса.

 

1) Если по коду топикстартера следить за монитором порта, то там постоянно сыпятся единицы пока не хлопнешь - тогда появляется ноль. Но в том же учебнике Блума по Ардуино сказано, что на цифровом входе от аналоговых датчиков сигналу LOW соответствует ноль, а не единица. По этой логике в тишине должны сыпаться ноли, а при хлопке должен возникать сигнал HIGHT т.е. единица. Почему здесь получается всё наоборот?

 

2) Поскольку я только учусь всему этому, то лично для себя и для понимания я упростил код:

int soundpin = 2; //пин датчика звука
int sound=0; //исходный сигнал с датчика звука

void setup() {
  Serial.begin(250000);
  pinMode(soundpin,INPUT);
}

void loop() {
  sound = digitalRead(soundpin);
  Serial.println(sound);
  if (sensorStatus==0)
  {
    Serial.println(sound);
    delay(200);
  }
 }

В моём коде тоже сыпятся единицы, вот только сколько я не хлопал ни одного нуля вообще так и не появилось. Что я делаю не так?



#4 admin

admin

    Администратор

  • Администраторы
  • 32 сообщений

Отправлено 27 Декабрь 2015 - 01:43

На самом датчике звука светодиод вспыхивает?



#5 Arduino

Arduino

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 28 Январь 2016 - 19:38

http://ru.aliexpress...2547738018.html подключил такой датчик, при обнаружении шума на датчике светодиод загорается пр и пропадании шума тухнет, а на Arduino как светодиод горел зеленый так и горит. Я что то не так сделал? В чём может быть причина?



#6 admin

admin

    Администратор

  • Администраторы
  • 32 сообщений

Отправлено 30 Январь 2016 - 01:57

Этот датчик не из набора, сложно что либо про него говорить. Ну, а вообще  по фото видно, что это аналого-цифровой датчик, распиновка контактов совсем другая. Проверьте правильность подключения. 



#7 Arduino

Arduino

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 01 Февраль 2016 - 18:42

Этот датчик не из набора, сложно что либо про него говорить. Ну, а вообще  по фото видно, что это аналого-цифровой датчик, распиновка контактов совсем другая. Проверьте правильность подключения. 

Спасибо я уже разобрался)







Темы с аналогичным тегами Датчик звука

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных