считывание аудио сигнала

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

я действительно плохо знаю камень :( , поэтому и попросил бы вас заглянуть сюда, а то опять куча предложений, а на вопросы ( их всего два ) - тишина :(

http://arduino.ru/forum/programmirovanie/8-bit-timercounter2-upravlenie-...

Leshiy
Offline
Зарегистрирован: 19.07.2014

Ознакомился. Спасибо за идеи.

Но я не собираюсь ничего никуда подгонять по уровням, лишь бы они вылезли в TTL, так как в ардуино есть adc, который и без подгонки уровней отлично справляется с задачей. Затем - каждая большая выборка по одному входу состоит из 128 маленьких выборок, так шта про "пропадание сигнала" во время выборки это вы в никуда. В третьих я прекрасно знаю, что есть встроенный опорник, только в нём нет никакого смысла, так как опорное значение выбирается раз и навсегда, поэтому отлично хранится в int, и каждый раз лезть в опорник нет нужды. В четвёртых - я НЕ ЗАДАВАЛ ВОПРОСА как мне обустроить мой модуль, я спрашивал про предельные уровни отрицательного напряжения на входах, поэтому удивлённо сводить брови домиком "а где вы писали про 5 входов?" не надо, я не просил помощи в оптимизации кода. В пятых - постоянное улучшение кода, без запуска его в работу, есть болезнь мозга и её надо лечить, а так как я ею не страдаю, то я написал код, который делает всё, что нужно, затрачивает на это 87 миллисекунд на луп и ПОЛНОСТЬЮ отвечает предъявляемым ему требованиям. Прерывания и прочее буду делать потом, если захочу. Сидеть и заниматься байто.ством ради байто.ства не по мне.

 

лешак - мысля нормальная. Иди вон, поглумись в другом месте, а то я и послать могу. И, самое главное, ты пойдёшь. Делитель напряжения ему резистивный, с 0.7В до ТТЛ уровня...

leshak
Offline
Зарегистрирован: 29.09.2011

Leshiy пишет:

И, самое главное, ты пойдёшь. 

О... а это что-то новое. Интерестно почему?

Глумиться - да больно вы нужны. Даже для глумления как-то "жидковато". Вообщем-то я в других ветках уже увидел, что имеете тенденцию "бежать по верхам" и нежелание разбиратся (при этом, это не мешает, зачастую давать "советы космического масштаба и космической же глупости" (C) с уверенным видом). Ну а раз нет желания, то... зачем тратить на вас время?  Собственно я практически и прекратил читать ваши посты. "Не наш человек".
Просто тут SU-27, вам предложил альтернативу. Подсказал что в ардуино есть еще и встроенный аппаратный компаратор, который вообщем-то может упростить код. А вы, вместо того что-бы разобраться или сказать "уже и так работает", просто объявили его попытку помощи "бредом". Вообщем-то форум для того и есть, что-бы разные идеи предлагать/обсуждать. Ну не пригодилось в этом проетке, в следующем может оказаться полезным.... но, видимо, такая логика слишком сложна.

 

Leshiy
Offline
Зарегистрирован: 19.07.2014

leshak пишет:

Leshiy пишет:

И, самое главное, ты пойдёшь. 

О... а это что-то новое. Интерестно почему?

Глумиться - да больно вы нужны. Даже для глумления как-то "жидковато". Вообщем-то я в других ветках уже увидел, что имеете тенденцию "бежать по верхам" и нежелание разбиратся (при этом, это не мешает, зачастую давать "советы космического масштаба и космической же глупости" (C) с уверенным видом). Ну а раз нет желания, то... зачем тратить на вас время?  Собственно я практически и прекратил читать ваши посты. "Не наш человек".
Просто тут SU-27, вам предложил альтернативу. Подсказал что в ардуино есть еще и встроенный аппаратный компаратор, который вообщем-то может упростить код. А вы, вместо того что-бы разобраться или сказать "уже и так работает", просто объявили его попытку помощи "бредом". Вообщем-то форум для того и есть, что-бы разные идеи предлагать/обсуждать. Ну не пригодилось в этом проетке, в следующем может оказаться полезным.... но, видимо, такая логика слишком сложна.

 

По дороге.

Не зная что, как и отчего давать советы - верх мудрости, как я погляжу. Так идите и проливайте её на тех, кто в ней нуждается.

Leshiy
Offline
Зарегистрирован: 19.07.2014

PCINT, во-первых, слишком часто будет рвать loop (хотя он тут уже не нужен будет, скорее всего), а во-вторых не возвращает номер пина, вызвавшего прерывание, то есть я получу тот же код, плюс к нему детектор пина, который и вызвал прерывание. Мудро.

leshak
Offline
Зарегистрирован: 29.09.2011

Leshiy пишет:

PCINT, во-первых, слишком часто будет рвать loop (хотя он тут уже не нужен будет, скорее всего), а во-вторых не возвращает номер пина, вызвавшего прерывание, то есть я получу тот же код, плюс к нему детектор пина, который и вызвал прерывание. Мудро.


Да не напрягайтесь. Я уже понял что вы своим кодом довольны и ничего менять не собираетесь (как будто-то вас кто-то заставлял). Живите с ним счастливо.
И то что вы считаете нормальным использовать камень в режимах выходящих за рамки оговоренные производителем (вместо того что-бы поставить копеечный диод) - тоже поняли.
"Работат - и ладно".

Leshiy
Offline
Зарегистрирован: 19.07.2014

leshak пишет:

Leshiy пишет:

PCINT, во-первых, слишком часто будет рвать loop (хотя он тут уже не нужен будет, скорее всего), а во-вторых не возвращает номер пина, вызвавшего прерывание, то есть я получу тот же код, плюс к нему детектор пина, который и вызвал прерывание. Мудро.


Да не напрягайтесь. Я уже понял что вы своим кодом довольны и ничего менять не собираетесь (как будто-то вас кто-то заставлял). Живите с ним счастливо.
И то что вы считаете нормальным использовать камень в режимах выходящих за рамки оговоренные производителем (вместо того что-бы поставить копеечный диод) - тоже поняли.
"Работат - и ладно".

Кодом я доволен, верно. Делает ровно то, что должен. Копеечный диод уже установлен в МК. Ещё замечания, советы? Потенциометр там повесить, или какие прерывания использовать, вместо loop?

leshak
Offline
Зарегистрирован: 29.09.2011

Leshiy пишет:

 Копеечный диод уже установлен в МК.

А пацаны-то в Atmel и не знают про это. Зачем-то про какие-то дурацкие граничные ограничения пишут в даташите.
Впрочем, ну зачем вам разбираться в устройсве порта. Смотреть на что способны те диоды, и как они стоят? 

Leshiy пишет:

Ещё замечания, советы? Потенциометр там повесить, или какие прерывания использовать, вместо loop?


Конечно. Но вот, конкретно для вас, бесплатные советы у меня закончились. Дальше только по двойному тарифу и по предоплате.

Leshiy
Offline
Зарегистрирован: 19.07.2014

leshak пишет:

Leshiy пишет:

 Копеечный диод уже установлен в МК.

А пацаны-то в Atmel и не знают про это. Зачем-то про какие-то дурацкие граничные ограничения пишут в даташите.
Впрочем, ну зачем вам разбираться в устройсве порта. Смотреть на что способны те диоды, и как они стоят? 

Leshiy пишет:

Ещё замечания, советы? Потенциометр там повесить, или какие прерывания использовать, вместо loop?


Конечно. Но вот, конкретно для вас, бесплатные советы у меня закончились. Дальше только по двойному тарифу и по предоплате.

Ну и слава богу. Идите со своими аллегориями в пятьсот строк к другим людям. Они ждут от вас рассказов про жену и кошелёк.

Leshiy
Offline
Зарегистрирован: 19.07.2014

Чем сердце успокоилось - я тут подумал пару недель :) и, придя к выводу, что тяну кота за энти самые, вымучивая какую-то откровенную хрень при наличии финансов и здоровеннейшей коробки, в которую будет упаковано конечное устройство, пошёл и купил за сущие копейки пятнадцативаттный тороид с двумя обмотками по 12 Вольт. И сделал двуполярный БП.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Leshiy пишет:

Чем сердце успокоилось - я тут подумал пару недель :) и, придя к выводу, что тяну кота за энти самые, вымучивая какую-то откровенную хрень при наличии финансов и здоровеннейшей коробки, в которую будет упаковано конечное устройство, пошёл и купил за сущие копейки пятнадцативаттный тороид с двумя обмотками по 12 Вольт. И сделал двуполярный БП.

мне кажется вы не в ту тему написали :( 

Valentinych
Offline
Зарегистрирован: 13.08.2014

Leshiy, если это еще актуально:

Аудио сигнал на вход компаратора(!) Ардуины стоит подать через простую детектирующую цепочку - диодик в прямом направлении, дальше кондей об землю. Тогда на входе компаратора всегда будет пиковое значение сигнала. А постоянную времени разряда емкости можно будет подобрать, изменяя номинал резистора параллельно емкости. Обычный детектор... :) Разумеется, пиковый уровень входного сигнала не должен превышать 5 вольт, но быть несколько выше уровня опорки (лучше использовать штатную, 2,56 вольт).

Если задача только в отслеживании наличия сигнала, а не его анализе, то такое решение оптимальное во всех отношениях. И со входными уровнями вопрос решается автоматически.

Leshiy
Offline
Зарегистрирован: 19.07.2014

Диодик в прямом включении отожрёт 500мВ из 700мВ полного сигнала. Шоттки скушает 200, что уже куда ни шло. Поэтому схэм такой - 358n почти повторителем, Кус 1.2 гдет. По выходу уже диод, опосля диода МК.  Всё красиво, плюс сопротивление по входу мегаомы.

Интегрировать... А зачем интегрировать? Только для того, чтобы полностью изнчтожить отрицательную составляющую?

И не могу я аудиосигнал подавать на вход компаратора(!) ардуины. У мене аудиосигналов 5(!), а компаратор(!) один.

Valentinych
Offline
Зарегистрирован: 13.08.2014

Интегрировать нужно, чтобы получить стабильный средний уровень (точнее - пиковый, растянутый во времени), а не скачку по гребням сигнала. 500 мВ в таком включении диод не сожрет - схема-то не токовая. Вспомните, как работает детекторный приемник - он способен вытащить НЧ огибающую из ВЧ-несущей амплитудой единицы милливольт. По поводу 5-ти  источников сигнала ничего сказать не могу - не знаю всех условий вашей задачи.

Leshiy
Offline
Зарегистрирован: 19.07.2014

А зачем мне стабильный средний уровень, который поддерживют склонные к деградации элементы? Чтобы было больше чему из строя выходить?

То есть выглядит с моей стороны это так - надо вот то-то сделать - зачем? - я всегда так делаю. Аргумент, конечно, весомый... ;)

Valentinych
Offline
Зарегистрирован: 13.08.2014

Не догоняю связь между изначальной постановкой задачи, деградацие элементов (каких?), и стабильным уровнем сигнала на входе компаратора. :(

Вам нужно отслеживать в линии НАЛИЧИЕ сигнала, т.е. определенного уровня (амплитуды) переменного напряжения. Аудиосигнал - периодический, более того, в нем бывают паузы, да и уровень сигнала постоянно изменяется в очень широких пределах (ДД музыкального сигнала, к примеру, может быть более 60дБ) так что достоверно отследить наличие сигнала в произвольный момент времени можно только если усреднить пики и провалы амплитуды.

Вы собираетесь использовать многоканальный ADC, но и в этом случае придется как-то усреднять сигнал, т.к. частота работы ADC никак не коррелирована со спектром сигнала, и исключать, что очередная выборка придется как раз на "провал" амплитуды нельзя - это равновероятно с любым другим моментом.

И о каком "весомом аргументе" Вы говорите? Я лишь предложил тривиальное, но технически самое оптимальное решение для Вашей задачи. Тем не менее, выбор остается за Вами. 

Leshiy
Offline
Зарегистрирован: 19.07.2014

Где вы прочитали про то, что мне нужен стабильный уровень, да ещё и на входе компаратора, который я вообще не собирался и не собираюсь использовать?

Что мне нужно я уже получил. Единственный вопрос, который меня интересовал - реакция ардуино на отрицательное напряжение.

И любое изменение схемы должно быть логически обосновано, пусть даже туда надо добавить всего один резистор. Вы же, сообразуясь ИСКЛЮЧИТЕЛЬНО со своим представлением тех задач, которые стояли передо мной (ведь я их не описывал подробно, верно?) потратили своё время на пустое.

Valentinych
Offline
Зарегистрирован: 13.08.2014

Leshiy пишет:
Вы же... потратили своё время на пустое.
Больше не буду.

Leshiy
Offline
Зарегистрирован: 19.07.2014

Стёр к чертям. Ну его это всё.