Така че нека започнем. Първо трябва да вземете решение за компонентите и схемата. Принципът на работа на схемата е прост: слаб сигнал от микрофона се усилва и изпраща към аналоговия щифт на Arduino. Като усилвател ще използвам оперативен усилвател (компаратор). Той осигурява много по-голяма печалба в сравнение с конвенционален транзистор. В моя случай чипът LM358 ще служи като този сравнител, може да се намери буквално навсякъде. И струва доста евтино.
Ако не успяхте да намерите LM358, тогава на негово място можете да поставите всеки друг подходящ операционен усилвател. Например, сравненията, показани на снимката, стояха на усилвателната платка на сигнала на инфрачервения приемник в телевизора.
Сега нека разгледаме сензорната верига.
В допълнение към операционния усилвател ще ни трябват още няколко лесно достъпни компонента.
Най-обикновеният микрофон. Ако полярността на микрофона не е посочена, тогава просто погледнете неговите контакти. Минусът едно винаги отива към случая, а във веригата, съответно, той е свързан към "земята".
След това се нуждаем от резистор от 1 kΩ.
Три 10 kΩ резистора.
И още 100 kΩ резистор е 1 MΩ.
В моя случай се използва резистор от 620 kOhm като „златна средна стойност“.
Но в идеалния случай трябва да използвате променлив резистор с подходяща оценка. Освен това, както се вижда от експериментите, по-големият рейтинг само увеличава чувствителността на устройството, но се появява повече „шум“.
Следващият компонент е 0,1 uF кондензатор. Той е обозначен като "104".
И още един кондензатор, с 4.7 uF.
Сега преминаваме към монтажа. Сглобих веригата с монтирана инсталация.
Монтажът приключи.Инсталирах схемата в случай, който направих от малко парче пластмасова тръба.
Пристъпваме към тестване на устройството. Ще го свържа с дъската Arduino UNO. Преминаваме в средата за разработка на Arduino и отваряме примера AnalogReadSerial в секцията Основи.
настройка за невалидност () {
Serial.begin (9600); // свържете серийната връзка при 9600 бод
}
void loop () {
int sensorValue = analogRead (A0); / * прочетете стойността от нулевия аналогов щифт и го запишете в променливата sensorValue * /
Serial.println (sensorValue); // изведете стойността към порта
забавяне (1); // изчакайте една милисекунда за стабилизиране
}
Преди да заредим в дъската, променяме закъснението с 50 милисекунди и го зареждаме. След това правим тестов памук и следваме показанията. По време на пляскане те скачат, опитват се да запомнят приблизително тази стойност и се връщат към скицата.
Добавете няколко реда към скицата.
ако (sensorValue> X) {
Serial.print ("CLAP");
забавяне (1000);
}
Вместо „X“, поставете отново същата стойност, заредете и плеснете. Затова продължете, докато не намерите оптималната стойност на отговора. Със завишена стойност условието ще бъде изпълнено само с памук на много близко разстояние. С по-ниска стойност условието ще бъде удовлетворено при най-малкия шум или звука на стъпките.
Също така, с правилния избор на резистор R5, този сензор може да се превърне в цифров и може да се използва при хардуерни прекъсвания. Потенциалът на този дизайн е огромен, на негова основа можете да съберете куп различни проекти, а неговата простота прави устройството достъпно за всички.
В заключение предлагам да гледате видео, в което всичко е ясно показано. Процесът на калибриране и сглобяването на най-простия памучен превключвател също са обяснени много по-подробно.
Надявам се да ви е харесало. Пожелавам ви успешна асамблея!