Как понизить переменное напряжение на вход аналогового входа
- Войдите на сайт для отправки комментариев
Здравствуйте! Схема подключения такая:
https://drive.google.com/open?id=19Ok4-kqJy0XUTnpC8AEpn0tNkjqtnbtD
Есть задача:
Отслеживать поступает или нет сигнал (аудио) с радиостанции на аналоговый вход А0 ардуино UNO 5В.
Сигнал без подключенной нагрузки (динамика 8Ом) амплитудой 7.2V.
Сигнал с подключенной нагрузкой (динамика 8Ом) амплитудой 1.5V (на максимальной громкости). Ток 3,6mА
Все бы ничего, но вот показания которые я получаю на входе А0:
Y=907 Y=1023 Y=927 Y=798 Y=392 Y=805 Y=1023 Y=0 Y=526 Y=443 Y=760 Y=795 Y=79 Y=356 Y=1023 Y=0 Y=1023 Y=866 Y=662 Y=521 Y=749 Y=923 Y=354 Y=281 Y=0 Y=985 Y=224 Y=157 Y=0 Y=1023 Y=963
Проскакивают ноли при том, что сигнал есть и музыка играет. При отсутствии сигнала стабильный ноль.
Как исправить положение,чтобы при сигнале эти ноли не проскакивали? Это не дает возможности стабильно без ложных срабатываний далее реагировать на него ардуинке.
Скетч предельно простой:
void loop() { val = analogRead(0); Serial.print("Y="); Serial.println(val); }
просто игнорить их программно нельзя? добавьте, просто защиту от дребезга, как с кнопкой програмно (проверка последних2-х значений на совпадение, если они оба равно "0", то сигнала нет, если только одно равно "0", то пропускаем). Посмотрите примеры с кнопкой в интернете. Это будет легче, чем искать наводки в цепи.
А мне кажется ТС аудиосинусоиду рандомно меряет. Диодный мостик+RC цепочка.
А мне кажется ТС аудиосинусоиду рандомно меряет. Диодный мостик+RC цепочка.
Тоже так подумал. Программно пробую как посоветовали выше, но пока не удается...
после мостика резистор на 5-10К и конденсатор поставить, не?
конденсатор поставить, не?
Пробовал. 100нФ. Не помогло. Ставил 100uF пропуски ушли, но возникла другая проблема. Время разряда этого кондера... Сигнала уже нет, а еще 3-5сек продолжает думать что сигнал есть. Можно подобрать теоретически, но в моем случае входной сигнал может быть еще больше по амплитуде...
конденсатор поставить, не?
Пробовал. 100нФ. Не помогло. Ставил 100uF пропуски ушли, но возникла другая проблема. Время разряда этого кондера... Сигнала уже нет, а еще 3-5сек продолжает думать что сигнал есть. Можно подобрать теоретически, но в моем случае входной сигнал может быть еще больше по амплитуде...
Ну так резистор разрядный ему параллельно, и им уже чуствительность подбирать. А амплитуду всяко до 5В давить.
Вообще то, исходя из приведенных Вами данных, 5 раз 1023 и 4 раза 0 на 32 отсчета, у Вас сильное насыщение сигнала и надо для начала уменьшить коэффициент передачи. Ну а дальше - или НЧ фильтр на входе или усреднение после измерения.
GarryC, вы уверены что Т.С. поймёт о чём вы говорите ? :) Он вон защитные диоды в м.к. пытает переменкой без капли сомнений.
GarryC, вы уверены что Т.С. поймёт о чём вы говорите ? :) Он вон защитные диоды в м.к. пытает переменкой без капли сомнений.
Это вы правы )))
Вообще то, исходя из приведенных Вами данных, 5 раз 1023 и 4 раза 0 на 32 отсчета, у Вас сильное насыщение сигнала и надо для начала уменьшить коэффициент передачи. Ну а дальше - или НЧ фильтр на входе или усреднение после измерения.
Так, так , так... Интересно. Я не совсем понимаю вашу фразу "5 раз 1023 и 4 раза 0 на 32 отсчета", но действительно сигнал я с рации подаю пока "какой есть" не понижая до 5В делителем напряжения. Ардуинка терпит пока. Да и я на пределе ее не насилую
Да его и не надо делителем понижать, резистора на 10К последовательно хватит.
GarryC, можете мне неопытному пояснить фразу "у Вас сильное насыщение сигнала и надо для начала уменьшить коэффициент передачи"?
перенасыщение по току?
Уменьшить коэфициент передачи... Это уменьшить мощность сигнала? т.е. ограничить по току вход резистором 10К последовательно, как уже советывали?
А можно пояснить в двух словах смысл этого действия?
Зачем в схеме динамик?
Если нужно понимать есть голосовой сигнал или нет - это одно, если пытаться его еще и отцифровывать - то совсем другое.
Если задача только понять, есть или нет сигнал, то перед АЦП нужно поставить ингерирующую RC цепочку. Тогда все колебания сглядятся и на выходе будет только общий уровень. После этого нужно помнить, что появится неизбежная задержка срабатывания, связанная с медленным нарастанием и спадом сигнала.
P.S. Поражает любовь к изобретению велосипедов
Странно.....
Человек работает с радиостанциями и не знает что такое амплитудный детектор....
Товарищи, это вобще фигня по моему полная. Надо сделать схему делитель на резисторах, а уже потом снимать напряжение. Какая нафиг амплитуда 7.2В ?! Сгорит мега нафиг. А уже потом, подтянутую к земле цепь пытаться мерить на аналоговом входе, и при желании или добавить кондер или сделать фильтр программный - надо смотреть сигнал. Но то как в первом посте написано это все не правильно.
Pablos, динамик в качестве нагрузки! Я не зря написал параметры сигнала. Если без динамика запустить в ардуину сигнал, то она китайским фиерверком засветится.
Задача состоит в том , чтобы залить безопасно сигнал допустимый по уровню в ардуинку и определить ею есть звук или нет. Без ложного срабатывания.
Mikhail86, неправильно что? 7,2В? Что снял то и показал. Замеры произвожу мультиметром в режиме переменного напряжения.
А не сгорит, потому что нагрузку я подключил. Выше я уже писал.
Pablos, динамик в качестве нагрузки! Я не зря написал параметры сигнала. Если без динамика запустить в ардуину сигнал, то она китайским фиерверком засветится.
Задача состоит в том , чтобы залить безопасно сигнал допустимый по уровню в ардуинку и определить ею есть звук или нет. Без ложного срабатывания.
Вы наверно схему детекторного приёмника не смогли одолеть?
Есть на свете добрые люди!
Радисты старой закалки ещё всё помнят.
Нашлась схема амплитудного детектора.
Изюмительная ведь весчь была в детстве. Батарейков нет, а звук есть.
С детектором поэксперементирую. После праздников отпишусь по результату
Тогда выходит для съема переменного напряжения надо поставить половинный диодный мост с резистором на минус и конденсатором. Тут как раз вы и помехи можете убрать и сигнал будет оперативно виден.http://www.joyta.ru/4139-esr-metr-kondensatorov-svoimi-rukami/
Вот статья, там все кроме DD1 очень пригодно для таких задач. Вместо ГД можно взять диоды шоттки, ( BAS-28 например) ну а дальше подумать. У меня по крайней мере емкость по аналогичной схеме снимается отлично - нареканий нет.
Дарю идею:
Умножитель напряжения ( раза в 4) со стабилитроном на 4.7 Вольта на выходе.
Почему умножитель?
1. Сразу однополярный сигнал.
2. У вас напруга уж сильно гуляет.
В одном случае явный перебор, в другом сильно не хватает.
3. Нет необходимости использовать балластный резистор.
4. Сигнал подаём сразу на цифровой вход.
в дуине есть стабилитрон на 1мА поэтому(нагрузкана выхож не нужна) резистор на 10К последовательно а конденсатор и резистор для разрядки по вкусу
Mikhail86, Смоделировал по вашей ссылке работу схемы. Предварительно результат устроил. После праздников буду собирать схему в реале. Вот результат и схема:
https://drive.google.com/open?id=1H26_lApY7m5VtRn6KUkTh7YLVtCeQBg-
"в дуине есть стабилитрон на 1мА поэтому(нагрузкана выхож не нужна) резистор на 10К последовательно а конденсатор и резистор для разрядки по вкусу"
Пробовал моделировать и эту схему, но результат не устроил. С течением времени напряжение "выпрямленное" подает почему я не смог понять.
Поздравляю с удачным моделированием! Желаю успешной сборки. Диоды можно взять шоттки любые, до 208кГц они держат. Полумост с кондером дает вполне ровный ток для измерения. Конденсатор на выходе 10мкф на массу влияет на скорость изменения. Надо пробовать от 1го до 20мкф. Посчитайте там время разряда кондера на резистор. И резистор тоже
что здесь может не так работать?
вместо D2 можно диодный мост поставить
Скетч предельно простой:
Может это поможет https://electronics.stackexchange.com/questions/67087/analogread0-or-analogreada0
;)
ПС. Схема у Вас - просто атас! Хоть резистор ограничения тока в ногу добавте если еще не позно ;)
Вот тут очень интересный проект в тему: "индикатор уровня аналогового сигнала". Сама страница проекта на японском, но схема читается легко. Там снимают только переменную часть сигнала через кондер и делитель. Далее отцифровывается сигнал и амплитуда считается программно. Напомню, что максимальная частота отцифровки у ардуино около 8кГц если функцией analogread. Но можно и повысить при сноровке.
https://youtu.be/bONO13WHr2Q
Схему ту вполне можна пользовать, только резистор добавить ограничения тока в ногу. Для оценки уровне нет нужды оцифровывать весь сигнал с высокой частотой, достаточно брать отсчеты с псевдослучайными интервалами (а с рабутающими прерываниями и в лопе оно и так очень даже псевдослучайное выходит само собой) и искать максимумы и/или минимумы. Потом полученый поток минимумов и/или максимумов слеганца сгладить и готово.
Согласен. Можно ещё раз 5...6 в секунду снимать подряд пару сотен замеров и считать амплитуду. Так проще, мне думается.
Ну 5-6сек - жирно будет, и не динамично. И 0,5сек (это 10 периодов 20Гц) вполне хватит заглаза. Лучше уж сглаживать/осреднять полученое по результатам обработки очередных замеров и предыдущих результатов. Кстати, вспомнил, писал както похожее. Измерительный трансформатор тока включен в питание стиралки. По току определяю включена она или нет для включения подачи воды. Самопальный аквастоп. Только в моем случае частота твердо известна - 50Гц, а так все тоже по сути.