Добрый день! Начал осваивать ардуино и очень нуждаюсь в помощи специалистов. Цель: частотамер, ориентировочно с пределом измерений до 200МГц, с минимальной погрешностью измерения. В сети нашел скетч, частотамер мин. 250Гц макс. 500кГц (не 200МГц, но хоть что-то): Помогите разобраться с программой, желательно по строчно, нужно в кратчайшие сроки освоить, а мои знания из видео уроков пока заканчиваются на уровне analogWrite/analogRead и мерцанием светодиодов( Искренне буду благодарен тем кто откликнется!
сложно чисто программно измерить частоту 200 МГц с помощью контроллера с частотой 16 МГц. если характер сигнала позволяет, посмотрите в сторону аппаратных делителей частоты. На счетчиках такое вроде можно соорудить. А потом уже поделенную частоту измерять указанным выше способом.
...но тут есть каверза, чем больше вы будете делить измеряемую частоту, тем больше будет погрешность измерения...
Частотомер это фактически и есть счетчик импульсов с фиксацией показаний раз в секунду. При таких частотах проще аппаратное решение. Ну или аппаратное для младших разрядов и программное для старших.
Спасибо за помощь. Если я правильно понимаю, используя предварительный делитель, скажем в виде цифровых микросхем – десятичных счетчиков. Выходное значение будет меньше входного в 10 раз, берем 2 штуки, 10^2 и получаем вместо 200МГц - 200кГц. А как быть со скетчем? Мне бы для начала хоть в порядке кГц измерить.
Как раз мой первый пост дублирует скетч и первой вашей ссылки. О чем я и писал, моих знаний чтобы разобраться в программе пока не хватает, рабочие будни не позволяют. Подредактировать я его для вывода на дисплей смогу. Но вот вопрос который мне даже стыдно задавать. Я этот скетч загружаю в ардуино и без дополнительных манипуляций уже могу измерять частоту до 500кГц? на 8 пин подаю с генератора частоту и все? Я просто очень далек от программирования и микропроцессоров
Да, загружаете и в мониторе порта смотрите частоту. на 8 пин подаёте частоту с генератора. Сигнал должен быть не более 5 вольт. Землю генератора и землю Arduino нужно объёдинить.
Спасибо, все сделал как написано. Возникли вопросы. Значение от 250Гц до 1 кГц выдает идеально, без погрешностей. При 10000 Гц, появляется погрешность примерно 400Гц, т.е. Arduino выдает значение 9450, но раз в 10 секунд выдает верное значение, ну или очень близкое +-10Гц. При 100 кГц опять же погрешность но уже в разы больше, выдает 65...70 кГц и иногда проскакивает верное значение. Измерить частоту 200 кГц и более не удалось. Значение delay 300мс, но при частоте близкой к 200 кГц обновление стало происходить иначе, в течении 10-15 секунд arduino долго и по буквам печатал значения измеренной частоты причем далекие от эталона, такое ощущение что у него не хватает мощности. Вопрос: все таки 500 кГц теоретически можно измерить? Может просто я что-то делал не так. И погрешности при 100кГц, реальна ли программная калибровка/подстройка?
Первый раз держу в руках ардуино.Загрузил скетч из вашей переписки с измерением частоты от 4 Гц на УНО, подавал с 6 ноги частоту 60.5 Гц (циферка 5 в скетче в строке частота ШИМ) на 8-ю, в мониторе порта кракозябры и все разные(втвэвяяяввягггччцяяюлыыввввгвччцяяюлыЫввпгггттвгглтвягыЫяяюыМяяюяяяцяэ), осциллограф показывает четко частоту, т.е. при постоянной частоте разные кракозябры. Как их перевести на понятный язык? Может что-то не так со скетчем? Нельзя ли получить инфу с монитора сразу в читабельном виде?
вот нашел еще о частотомере http://interface.khm.de/index.php/lab/interfaces-advanced/arduino-frequency-counter-library/