Измерение параметров цифрового сигнала на arduino

Greyter
Offline
Зарегистрирован: 15.11.2017

Здравствуйте всем! Возник такой вопрос. Возможно ли измерить на arduino uno и LCD Keypad Shield частоту, амплитуду и скважность цифрового сигнала?

Параметры такие:

Частота от 100 Гц до 200 кГц

Амплитуда от 1 до 5 В

Скважность от 1 до 5

Сигнал брать с генератора. Пробовал написать прогу сам, но поскольку только начал знакомиться с arduino, мои познания в этом не велеки. Все упирается в то что бы связать все параметры в одном скетче. А также что бы частота и амплитуда сигнала не сильно скакали. Смотрел что-то подобное, но ничего не нашел. Возможно кто-то подскажет!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Окно поиска в врехнем правом углу. Тема обгладывалась уже столько раз, что там только кости остались.

nik182
Offline
Зарегистрирован: 04.05.2015

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

Sr.FatCat
Offline
Зарегистрирован: 19.02.2016

ЕвгенийП, задача при все своей "обсосаности" имеет все-таки нюанс с измерением амплитуды (импульса в 5мкс) и, то что амплитуда при диапазоне 1-5в станет ниже порога TTL единицы, как бы намекает...
Я бы ознакомился и со схемотехническим решением и с красивым программным. Хотя сам одолеть смогу, но на решение профи посмотрел бы с удовольствием. 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

на слабо не возьмешь. 

nik182
Offline
Зарегистрирован: 04.05.2015

Посмотрите в проектах осцилограф. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Sr.FatCat пишет:

нюанс с измерением амплитуды

А вот это я как-то пропустил. ну, тогда, похоже, "лесом". Местный АЦП позволяет сделать "Up to 76.9kSPS (Up to 15kSPS at Maximum Resolution)". А ТС нужно измерять сигналы до 200кГц как я понял.

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Господа! Если в рамке шутки, то решение примитивное:

1. амплитуду измеряем на защелке из диода Шоттки, конденсатора и резистора к ноге разряда.

2. амплитуду приводим к 5 В на одном транзисторе и ограничивающем резисторе.

итого задействуем три ноги: амплитуда, частота и разряжающая защелку нога.

ну а частоту и скважность измеряем стандартно, уже обсосано 100500 раз.

Sr.FatCat
Offline
Зарегистрирован: 19.02.2016

wdrakula пишет:

итого задействуем три ноги: амплитуда, частота и разряжающая защелку нога.


Вообщем-то так и предполагалось. Но спасибо.
Тут вопрос как измерять защелкнутое напряжение. Быдло analogRead, понятно, не пойдет. Нужно через регистры АЦП и прерывания. Вашим кодом для этого порадуете?

 

Logik
Offline
Зарегистрирован: 05.08.2014

Sr.FatCat пишет:

wdrakula пишет:

итого задействуем три ноги: амплитуда, частота и разряжающая защелку нога.


Вообщем-то так и предполагалось. Но спасибо.
Тут вопрос как измерять защелкнутое напряжение. Быдло analogRead, понятно, не пойдет. Нужно через регистры АЦП и прерывания. Вашим кодом для этого порадуете?

 

Отчего не порадовать хорошего человека, ходи сюда http://arduino.ru/forumy/ishchu-ispolnitelya , там порадуют.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Sr.FatCat пишет:

Тут вопрос как измерять защелкнутое напряжение. Быдло analogRead, понятно, не пойдет.

Как раз не понятно. Чем не пойдет? Мы куда-то спешим? нужно вписываться в микросекунды?

Новичка выдает ненависть к встроенной библиотеке wiring. Без нее нужно обходиться не всегда, а только когда к тому есть основания.

...А с регистрами - так тут, на форуме,  бродил код и от Евгения и от Димакса и мой, и для быстрого и для суперточного с поправкой на питание и еще для черте-какого использования АЦП. Только разьве-что самогон гнать его еще не заставили...

Вас что-то конкретное интересует?

Sr.FatCat
Offline
Зарегистрирован: 19.02.2016

wdrakula пишет:

Как раз не понятно. Чем не пойдет? Мы куда-то спешим? нужно вписываться в микросекунды?

Новичка выдает ненависть к встроенной библиотеке wiring. Без нее нужно обходиться не всегда, а только когда к тому есть основания.

...А с регистрами - так тут, на форуме,  бродил код и от Евгения и от Димакса и мой, и для быстрого и для суперточного с поправкой на питание и еще для черте-какого использования АЦП. Только разьве-что самогон гнать его еще не заставили...

Вас что-то конкретное интересует?


Почему не спешим? Очень даже спешим. Мы и так будем мерять в лучшем случае амплитуду каждого 3-го импульса (при 200кГц), а на стандартном analogRead, при его, кажись, 112мкс можем пропустить много интересного :)

Я на гуру не претендую и никакую ненависть к вайрингу не испытываю. С удовольствием пользуюсь везде, где она подходит. Тут речь идет о быстрых процессах - не грех опуститься до прямой работы с регистрами. Меня как раз изначально это пугало, сейчас я даташит даже могу открыть. Но по атмелу необходимости в этом почти нет - нагуглить в нашем и буржуйском интернете самых разных статей о каждом программном применении каждого регистра с блекджеком и шлюхами - дело 15-20минут. Вот другое дело C8051 скажем, если руки дойдут перешить его в Sunoff. По нему в силу старости ядра маловато инфы, придется пошариться и  в даташитах.

Примеров и на форуме и за пределами по АЦП - мильен, согласен. Думал вы захотите свой выложить.

2Logik вот не рекомендую троллить меня и рассказывать куда мне идти, тогда я останусь, как ты выражаешься "хорошим человеком" и не скажу куда идти тебе. Как-то так.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Sr.FatCat пишет:

Тут речь идет о быстрых процессах

Мне кажется, что вы что-то не поняли. Тутнет быстрых процессов. Мы амплитуду УЖЕ защелкнули. Дальше можем хоть десять минут ее мерить. ;) Ну разумно раз 10 измерить и усреднить. Уйдет на это пара миллисекунд, но мне не ясно, куда мы спешим.?

У нас нет быстро меняющегося сигнала. Его частота 200КГц, но она как была, так и осталась. Изменения в пару-тройку миллисек нас отслеживать никто не просит.

SLKH
Offline
Зарегистрирован: 17.08.2015

Sr.FatCat пишет:

 

Почему не спешим? Очень даже спешим. Мы и так будем мерять в лучшем случае амплитуду каждого 3-го импульса (при 200кГц), а на стандартном analogRead, при его, кажись, 112мкс можем пропустить много интересного :)

Предположим, что наше будущее устройство на ардуине успевает измерить/оцифровать не каждый третий импульс, а все 200 тысяч амплитуд (~400 килобайт) ежесекундно. Как вы собираетесь использовать всю эту информацию?

Sr.FatCat
Offline
Зарегистрирован: 19.02.2016

Тема совсем не моя и готов согласиться с вашей правотой. Просто перед глазами картинка амплитудной модуляции, но и там такой точности/скорости наверное не надо.