Прошу помощи с сервоприводом

inokris
Offline
Зарегистрирован: 17.03.2015

Здравствуйте,

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







#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) ; // если нет звука то находится в нуле

}

}

bwn
Offline
Зарегистрирован: 25.08.2014

Сперва это . Не глумитесь над людьми. Далее с каким интервалом поворачивается и чему при этом равно volume?

inokris
Offline
Зарегистрирован: 17.03.2015
#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) ; // если нет звука то находится в нуле
}
}

Когда все прекрасно работало с пьезопищалкой идеальными значениями  threshold были 600-750. При значениях около 200 пищалка издавала звук не переставая, а при значениях свыше 1000 была очень низка чувствительность.

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

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

10 нан на аналоговый вход не пробовали?

bwn
Offline
Зарегистрирован: 25.08.2014

А как у вас серва подключена?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Да у ТС видно аналог пляшет от нуля до бесконечности. Фильтрануть и забыть. Или программно, но я бы не заморачивался....
Всё так лениво происходит..... Быстрая реакция не нужна..... И даже вредна.....

bwn
Offline
Зарегистрирован: 25.08.2014

Судя по скрину, если код тот-же, должно было сработать 4 раза, остальное стоять в нулях. Боюсь не серва ли напрямую в дуину сунута, от и колбасит ее бедную.