Частотамер на Arduino Uno

Тема в разделе "Arduino & Shields", создана пользователем krasheninnikov, 10 мар 2014.

  1. Добрый день!
    Начал осваивать ардуино и очень нуждаюсь в помощи специалистов.
    Цель: частотамер, ориентировочно с пределом измерений до 200МГц, с минимальной погрешностью измерения. В сети нашел скетч, частотамер мин. 250Гц макс. 500кГц (не 200МГц, но хоть что-то):
    Помогите разобраться с программой, желательно по строчно, нужно в кратчайшие сроки освоить, а мои знания из видео уроков пока заканчиваются на уровне analogWrite/analogRead и мерцанием светодиодов(
    Искренне буду благодарен тем кто откликнется!
     
  2. acos

    acos Официальный гик Команда форума

    сложно чисто программно измерить частоту 200 МГц с помощью контроллера с частотой 16 МГц. если характер сигнала позволяет, посмотрите в сторону аппаратных делителей частоты. На счетчиках такое вроде можно соорудить. А потом уже поделенную частоту измерять указанным выше способом.
     
    atompost нравится это.
  3. atompost

    atompost Гик

    ...но тут есть каверза, чем больше вы будете делить измеряемую частоту, тем больше будет погрешность измерения...;)
     
  4. Unixon

    Unixon Оракул

    Частотомер это фактически и есть счетчик импульсов с фиксацией показаний раз в секунду.
    При таких частотах проще аппаратное решение.
    Ну или аппаратное для младших разрядов и программное для старших.
     
  5. Спасибо за помощь. Если я правильно понимаю, используя предварительный делитель, скажем в виде цифровых микросхем – десятичных счетчиков. Выходное значение будет меньше входного в 10 раз, берем 2 штуки, 10^2 и получаем вместо 200МГц - 200кГц.
    А как быть со скетчем? Мне бы для начала хоть в порядке кГц измерить.
     
  6. atompost

    atompost Гик

    посмотрите вот здесь, может быть вас что то натолкнет на мысль :)

    либо вот эту статью
     
  7. Как раз мой первый пост дублирует скетч и первой вашей ссылки. О чем я и писал, моих знаний чтобы разобраться в программе пока не хватает, рабочие будни не позволяют.
    Подредактировать я его для вывода на дисплей смогу. Но вот вопрос который мне даже стыдно задавать.
    Я этот скетч загружаю в ардуино и без дополнительных манипуляций уже могу измерять частоту до 500кГц?
    на 8 пин подаю с генератора частоту и все?
    Я просто очень далек от программирования и микропроцессоров :rolleyes:
     
  8. acos

    acos Официальный гик Команда форума

    Да, загружаете и в мониторе порта смотрите частоту.
    на 8 пин подаёте частоту с генератора. Сигнал должен быть не более 5 вольт. Землю генератора и землю Arduino нужно объёдинить.
     
  9. Спасибо, все сделал как написано. Возникли вопросы. Значение от 250Гц до 1 кГц выдает идеально, без погрешностей. При 10000 Гц, появляется погрешность примерно 400Гц, т.е. Arduino выдает значение 9450, но раз в 10 секунд выдает верное значение, ну или очень близкое +-10Гц. При 100 кГц опять же погрешность но уже в разы больше, выдает 65...70 кГц и иногда проскакивает верное значение. Измерить частоту 200 кГц и более не удалось. Значение delay 300мс, но при частоте близкой к 200 кГц обновление стало происходить иначе, в течении 10-15 секунд arduino долго и по буквам печатал значения измеренной частоты причем далекие от эталона, такое ощущение что у него не хватает мощности.
    Вопрос: все таки 500 кГц теоретически можно измерить? Может просто я что-то делал не так. И погрешности при 100кГц, реальна ли программная калибровка/подстройка?
     
  10. Первый раз держу в руках ардуино.Загрузил скетч из вашей переписки с измерением частоты от 4 Гц на УНО, подавал с 6 ноги частоту 60.5 Гц (циферка 5 в скетче в строке частота ШИМ) на 8-ю, в мониторе порта кракозябры и все разные(втвэвяяяввягггччцяяюлыыввввгвччцяяюлыЫввпгггттвгглтвягыЫяяюыМяяюяяяцяэ), осциллограф показывает четко частоту, т.е. при постоянной частоте разные кракозябры. Как их перевести на понятный язык? Может что-то не так со скетчем? Нельзя ли получить инфу с монитора сразу в читабельном виде?
     
    Последнее редактирование: 9 янв 2015
  11. ANV

    ANV Оракул

    А serial monitor на 115200 настроен?
     
  12. ничего не настраивал, даже не знал про такое. Если не трудно, просветите хоть чуток я попробую.
     
  13. ANV

    ANV Оракул

    [​IMG]

    Там где обведено надо поставить 115200
     
  14. Спасибо.Все работает, я как бабушка с сотовым телефоном себя чувствую.
     
  15. acro_nic

    acro_nic Нуб

    а можно ли, измерить частоту ну например 50 или 60 герц. изменив что нибудь в этом скетче?
     
  16. MDV

    MDV Гик

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

    acro_nic Нуб

    Vladkerch нравится это.