Тел. (495) 972-27-12

Датчик шума вместе с сервоприводом

Обсуждаем Arduino, Raspberry Pi и другие электронные компоненты и проекты DIY

Датчик шума вместе с сервоприводом

Сообщение inokris » 17 мар 2015, 12:45

Здравствуйте,
прошу помощи в синхронизации сервопривода с датчиком шума. Задача: заставить поворачиваться сервопривод на 90 градусов если шум превышает допустимую норму. Датчик шума прекрасно работает с пьезопищалкой, но с серваком он просто игнорирует наличие датчика шума и проварачиватся на 90 градусов с интервалом. В чем может быть проблема? Вот код.


Code: [Выделить всё] [Expand/Collapse]
#include <Servo.h>
Servo servo;
int threshold = 600;
int volume;

void setup()
{
Serial.begin(9600); // For debugging
pinMode(A0, INPUT); // вход
pinMode(10, OUTPUT);// выход
servo.attach (10); // моторчик из порта 10

}

void loop()
{
volume = analogRead(A0);
Serial.println(volume);
delay(45);

if(volume>=threshold){
servo.write (90); // если звук громкий то поворот на 90 градусов
delay ( 1000);
}
else{
servo.write (0) ; // если нет звука то находится в нуле
}
}
GeSHi © Codebox Plus
inokris
 
Сообщения: 6
Зарегистрирован: 17 мар 2015, 12:35

Re: Датчик шума вместе с сервоприводом

Сообщение Mr.Kubikus » 17 мар 2015, 13:31

Привет!

Скажите, пожалуйста, что за устройство подключено у вас к входу A0? И еще - как организовано питание платы?
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 880
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Датчик шума вместе с сервоприводом

Сообщение inokris » 17 мар 2015, 14:21

Mr.Kubikus писал(а):Привет!

Скажите, пожалуйста, что за устройство подключено у вас к входу A0? И еще - как организовано питание платы?





К А0 подключен микрофон. Питание идет от компьютера, подключали к батарейке- реакция такая же. Вот схемку быстро начертила ( сорри что так криво под рукой линейки нет).
Вложения
Снимок экрана 2015-03-17 в 14.27.40.png
Снимок экрана 2015-03-17 в 14.20.07.png
inokris
 
Сообщения: 6
Зарегистрирован: 17 мар 2015, 12:35

Re: Датчик шума вместе с сервоприводом

Сообщение Mr.Kubikus » 17 мар 2015, 15:00

Проводочки к плате с микрофоном хорошо припаяны?
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 880
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Датчик шума вместе с сервоприводом

Сообщение inokris » 17 мар 2015, 15:16

Mr.Kubikus писал(а):Проводочки к плате с микрофоном хорошо припаяны?


Да, я тоже думала об этом. Однако, с пьезопищалкой все работает. Не думаю что проблема может быть в этом.
inokris
 
Сообщения: 6
Зарегистрирован: 17 мар 2015, 12:35

Re: Датчик шума вместе с сервоприводом

Сообщение Mr.Kubikus » 17 мар 2015, 15:55

А что показывает отладочный вывод в терминале во время работы?

Кстати, строка "pinMode(A0, INPUT);" лишняя.
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 880
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Датчик шума вместе с сервоприводом

Сообщение inokris » 17 мар 2015, 16:06

Mr.Kubikus писал(а):А что показывает отладочный вывод в терминале во время работы?

Кстати, строка "pinMode(A0, INPUT);" лишняя.

Он вообще не реагирует на динамик, а лишь выдают цикличные значения во время работы сервопривода.
Вложения
Снимок экрана 2015-03-17 в 16.06.05.png
inokris
 
Сообщения: 6
Зарегистрирован: 17 мар 2015, 12:35

Re: Датчик шума вместе с сервоприводом

Сообщение Mr.Kubikus » 17 мар 2015, 16:39

Ну вот, в отладочном выводе все видно.

Смотрите - порог срабатывания threshold у вас установлен 600. Когда контроллер считывает из АЦП значение больше 600, то сервомашинка поворачивается на 90 градусов и затем процессор "застревает" на вызове delay(1000) на 1 с. После этого цикл повторяется. Если АЦП в следующий раз вернет значение меньше или равно 600, то сервомашинка вернется в исходное положение. И так повторяется каждый раз.

Кстати, какие значения переменной volume соответствуют "шуму", а какие "тишине"? Вы проводили эксперимент?
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 880
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Датчик шума вместе с сервоприводом

Сообщение inokris » 17 мар 2015, 17:44

Mr.Kubikus писал(а):Ну вот, в отладочном выводе все видно.

Смотрите - порог срабатывания threshold у вас установлен 600. Когда контроллер считывает из АЦП значение больше 600, то сервомашинка поворачивается на 90 градусов и затем процессор "застревает" на вызове delay(1000) на 1 с. После этого цикл повторяется. Если АЦП в следующий раз вернет значение меньше или равно 600, то сервомашинка вернется в исходное положение. И так повторяется каждый раз.

Кстати, какие значения переменной volume соответствуют "шуму", а какие "тишине"? Вы проводили эксперимент?



Да, так и должно быть. Однако, сервомашинка проворачивается даже в абсолютной тишине. И вообще периодически живет своей жизнью, например меняет угол. То есть весь этот цикл происходит без участия микрофона, как подключаешь питание так и сервомашинка вертится туда обратно без перерыва. В этом и заключается проблема.
Да, что то вроде эксперимента. Когда все прекрасно работало с пьезопищалкой идеальными значениями threshold были 600-750. При значениях около 200 пищалка издавала звук не переставая, а при значениях свыше 1000 была очень низка чувствительность.

P.S.
Огромное спасибо, что оказываете такое внимание!
inokris
 
Сообщения: 6
Зарегистрирован: 17 мар 2015, 12:35

Re: Датчик шума вместе с сервоприводом

Сообщение Mr.Kubikus » 17 мар 2015, 17:54

Хорошо. Тогда посмотрите, что показывает отладочный вывод в абсолютной тишине. По идее на экране должны быть значения близкие к нулю.
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 880
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

След.

Вернуться в Arduino и Ко. ♥♥♥



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron