суббота, 9 октября 2010 г.

Датчик удара

Это учебное руководство показывает Вам, как использовать пьезоэлемент, чтобы обнаружить звук, в данном случае, удар по двери или столу.

Пьезоэлемент - электронное устройство, которое генерирует напряжение при физической деформации. Точно так же, когда Вы подаете напряжение на пьезоэлемент, он вибрирует. Это используется, чтобы проигрывать звук и обнаруживать звуки. В этом примере мы соединим пьезоэлемент с контактом аналогового входа 0 платы Arduino.

Проект считывает изменяющееся напряжение, используя функцию analogRead(), приводя диапазон напряжений от 0 до 5 вольт к числовому диапазону от 0 до 1023. Это называется аналого-цифровое преобразование, или АЦП (по англ. ADC, analog-to-digital conversion). Аналого-цифровое преобразование выполняет функция analogWrite().




Пьезоэлементы полярны. Это означает, что напряжение проходит через них (или из них) в определенном направлении. Подключите черный провод (более низкое напряжение) к «земле» и красный провод (более высокое напряжение) к входному контакту. Также необходимо соединить параллельно с пьезоэлементом резистор сопротивлением 1 мОм, чтобы ограничить напряжение и ток, произведенные пьезоэлементом и защитить аналоговый контакт Arduino и, соответственно, вывод микроконтроллера ATmega.

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

Проект, описанный ниже, считывает состояние контакта, подключенного к пьезоэлементу. Если значение будет больше определенного порога, то Arduino отправит строку "Удар!" в компьютер через последовательный порт. Запустите терминал последовательного порта, чтобы увидеть этот текст.

Схема соединения

Программа

/* Датчик удара

Этот проект считывает пьезоэлемент, чтобы обнаружить стучащий звук.
Программа считывает аналоговый контакт и сравнивает результат с пороговым значением.
Если результат больше порогового значения, программа пишет
"Удар!" через последовательный порт, и переключает светодиод на контакте 13.


Схема соединения:
* «+» пьезоэлемента соединяется с аналоговым контактом 0
* «-» пьезоэлемента соединяется с «землей»
* резистор 1мОм соединяется между аналоговым контактом 0 и «землей»

http://www.arduino.cc/en/Tutorial/Knock

created 25 Mar 2007
by David Cuartielles
modified 30 Jun 2009
by Tom Igoe

Код этого примера размещен на официальном сайте Arduino

*/

// неизменяемые константы:
const int ledPin = 13; // светодиод подключен к цифровому выводу 13
const int knockSensor = 0; // пьезоэлемент соединен с аналоговым контактом 0
const int threshold = 100; // пороговое значения, определяющее ударный звук

// изменяемые переменные:
int sensorReading = 0; // переменная для хранения значения, считанного с контакта датчика
int ledState = LOW; // переменная , хранящая последний статус светодиода

void setup() {
pinMode(ledPin, OUTPUT); // устанавливаем ledPin в режим выхода OUTPUT
Serial.begin(9600); // используем последовательный порт
}

void loop() {
// считываем значение датчика и сохраняем его в переменной sensorReading:
sensorReading = analogRead(knockSensor);

// если считанное значение датчика выше порогового:
if (sensorReading >= threshold) {
// переключаем статус контакта ledPin:
ledState = !ledState;
// выводим это значение статуса на контакт светодиода:
digitalWrite(ledPin, ledState);
// посылаем строку "Удар!" в компьютер
Serial.println("Удар!");
}
delay(100); // пауза для исключения переполнения буфера последовательного порта
}


1 комментарий:

  1. прикольно. о таком применении не знал. то есть один пьезоэлемент можно использовать и как датчик и как звукоизлучатель

    ОтветитьУдалить