Arduino: Опыты с набором 37-in-1, #1 - датчик звука

Oct 10, 2016 15:00

Со стартовым набором Arduino пока все, остались не рассмотренными три элемента. Пока для них едут проводки, займемся набором из 37 модулей с разными датчиками. Выглядит он примерно так:


Набор датчиков 37-in-1

По картинке мы и пойдем по порядку, насколько хватит терпения. Что-то нам уже попадалось в виде отдельных элементов. Здесь оно уже смонтировано, выведены удобные ножки, остается только подключить к питанию и управлению.

1. Small sound. По идее, что-то с маленьким звуком связанное. У этого модуля четыре ножки: "+", "G", "A0" и "D0". Питание с землей - понятно. Остальные ножки обеспечивают аналоговый или цифровой интерфейс. По исполнению это похоже на микрофон, но в любом случае нам нужна подсказка по использованию, поэтому погружаемся в глубины мирового разума.

Из попавшихся страничек по запросу "small sound sensor arduino" больше всего мне понравилась эта: http://www.princetronics.com/sound-sensitive-lights-w-sound-sensor-arduino/. Ее и возьму за основу, только вместо батареи из светодиодов буду выводить сигнал на встроенный диод через внутренний пин D13. Он будет означать, что превышен порог. Дополнительно для понимания процесса в Serial порт общения с компьютером тоже буду показания дублировать. Код там уже есть, в скетче, просто но заремаркирован. Ну и поиграю как с цифровым, так и с аналоговым выходом модуля. Итак, подключаю по табличке эти пины.

Скетч копирую и дорабатываю:
int DO = 2; //Pin for Digital Output - DO
int DA = A0; // Pin for Analog Output - AO
int threshold = 29; //Set minimum threshold for LED lit уже изменено
int sensorAnalog = 0;
int sensorDigital = 0;
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
pinMode(DO, INPUT);
pinMode(DA, INPUT);
}
void loop() {
sensorAnalog = analogRead(DA); //Read the analog value
sensorDigital = digitalRead(DO);
Serial.print("Analog: ");
Serial.print(sensorAnalog); //Print the analog value
Serial.print(" ");
Serial.print("Digital: ");
Serial.println(sensorDigital); //Print the digital value
if (sensorAnalog >= threshold) { //Compare analog value with threshold
digitalWrite(13, HIGH);
}
else {
digitalWrite(13, LOW);
}
}

Выход получаю примерно такой:
Analog: 26 Digital: 1
Analog: 27 Digital: 1

Забегая вперед, пробовал подключить и "Big sound", который шестым по счету на картинке. То же самое. Поэтому почитал повнимательнее и уменьшил порог срабатывания до 29:
Analog: 32 Digital: 0
Analog: 438 Digital: 1
Analog: 830 Digital: 1

Цифровой выход показывает погоду. Но удалось сделать что-то вроде цветомузыки, правда для этого пришлось динамик телефона поднести к микрофону вплотную. Кручение подстройки на синем блочке на модуле ничего не дало. Вот такая невозможная красота. И, пожалуй, это все, что я успел за сегодня.

arduino, картинка, ябьютиблогер, лабораторный журнал

Previous post Next post
Up