Ви не увійшли.
Спасибо за подсказки. Вроде нашел решение с помощью оптрона, получилось независимые друг от друга устройства.
uint16_t time;
bool buzzer;
if (digitalRead(BUZZER)) {
time = millis();
buzzer = true;
}
if ((uint16_t)millis() - time >= TIMEOUT)
buzzer = false;
renoshnik пише:Это будет идеальным вариантом в том случае если после срабатывания у вас предусмотрено РУЧНОЕ отключение (тогда тут вообще МК не нужен). В противном случае, после каждой единички приходит ноль и ваш МК просто будет "колбасить"
WAT? Колбасить будет программу, а не МК, и только в случае если ее писал плохой программист. Если не будет сбоев по питанию нормальный программист обработает любой сигнал на входе, хоть такой.
Если коротко: отработали сигнализацию, а дальше игнорируем все показания до наступления определенного события. (Истечения времени, одних нулей на протяжении некоторого времени или д.р.)
Если коротко, то я как раз об этом и спрашивал - есть ли вариант обработки сигнала ?
Извиняюсь. Я увидел только картинку с 1 ком.)
Да, никакие определители частоты тут не нужны.
При 12В? Если резисторы по 10к получаем ограничение тока до 0.6мА.
Но я писал
в идеале нужно измерить уровни сигналов, и привести к виду [0-3.3V]
Мой вариант в первую очередь не требует никаких определителей частоты.
Так пищалка то неизвестная. Мож на неё +12 подаётся. И как тогда себя будет чувствовать ваш вариант? Нужно либо название прочесть, либо схему срисовать, либо измерить хотя бы тестером. A не можете сами - попросите того кто разбирается.
Это был бы идеальный вариант, подскажите как правильно будет выглядеть схема?
Если МК и пищалка электрически развязаны то один контакт на землю, второй на вход, оба через резисторы, скажем 1-100к.
Хотя в идеале нужно измерить уровни сигналов, и привести к виду [0-3.3V] чтобы не было зашкаливания, но как мне кажется, можно через резисторы которые ограничат ток и можно подать зашкаливающий.
Это будет идеальным вариантом в том случае если после срабатывания у вас предусмотрено РУЧНОЕ отключение (тогда тут вообще МК не нужен). В противном случае, после каждой единички приходит ноль и ваш МК просто будет "колбасить"
WAT? Колбасить будет программу, а не МК, и только в случае если ее писал плохой программист. Если не будет сбоев по питанию нормальный программист обработает любой сигнал на входе, хоть такой.
Если коротко: отработали сигнализацию, а дальше игнорируем все показания до наступления определенного события. (Истечения времени, одних нулей на протяжении некоторого времени или д.р.)
P.S. По картинке не определить есть ли там генератор или нет. Мой вариант будет одинаково работать в обоих случаях.
и?
И не знаю )) В пайке я человек далекий, поэтому картинка платы лучший способ определить тип пищалки.
LynX пише:Зачем определять или фильтровать частоту? Подключите напрямую через резистор и проверьте скорее всего при срабатывании звука будут появляться единички. Какая разница сколько их и с какой частотой? Дальше можно программно:
while(PIN==LOW) ; Signalization(); delay(10000);
Это конечно грубый вариант и Вам вероятно не подойдет (т.к. есть и работа с другими пинами), но дальше пусть прогер думает.
Это был бы идеальный вариант, подскажите как правильно будет выглядеть схема?
Это будет идеальным вариантом в том случае если после срабатывания у вас предусмотрено РУЧНОЕ отключение (тогда тут вообще МК не нужен).
В противном случае, после каждой единички приходит ноль и ваш МК просто будет "колбасить"... (уже это проходили)...
Либо писать алгоритм фильтрации сигнала о чем я выше говорил...
Кстати вы определитесь с вашей пищалкой, может В НЕЙ стоит генератор и на вход подается постоянное напряжение, а мы тут разводим теорию ...
Зачем определять или фильтровать частоту? Подключите напрямую через резистор и проверьте скорее всего при срабатывании звука будут появляться единички. Какая разница сколько их и с какой частотой? Дальше можно программно:
while(PIN==LOW) ; Signalization(); delay(10000);
Это конечно грубый вариант и Вам вероятно не подойдет (т.к. есть и работа с другими пинами), но дальше пусть прогер думает.
Это был бы идеальный вариант, подскажите как правильно будет выглядеть схема?
Зачем определять или фильтровать частоту? Подключите напрямую через резистор и проверьте скорее всего при срабатывании звука будут появляться единички. Какая разница сколько их и с какой частотой? Дальше можно программно:
while(PIN==LOW)
;
Signalization();
delay(10000);
Это конечно грубый вариант и Вам вероятно не подойдет (т.к. есть и работа с другими пинами), но дальше пусть прогер думает.
см
Gall
Jul 7 2006, 07:01
Возможные решения:
1) Простой компаратор с порогом. Недостаток автору известен...
2) Компаратор со стабилизированным порогом (предложенная выше схема). Точность повыше, но тоже плавает.
3) Триггер Шмитта. Точность плавает.
4) ФАПЧ (напр. на 1561ГГ1). Фаза может плавать, форма меандра идеальна.
5) Делитель частоты на 2. Идеальное решение, но требует другого кварца.
но обычное "ардуино" не уверен что имеет 5 линий прерываний, у них только ATSAM начали нормально получатся.
вам нужен 5 канальній измеритель частоты.
а если ардуино, то пусть ваша пищалка кондер зарядит, пока генерит - будет уровень на входе ардуино.
Может я не точно описал задачу. В общем есть 5 инкубационных шкафов, в которых при отклонении от режима работы подаётся сигнал на speaker, как в системнике, по 2м проводам. Задача чтоб ардуино поняла, когда подаётся сигнал на эти провода.