Частотомер на микроконтроллере AVR схема

Особенностью первой схемы частотомера на микроконтроллере AVR является то, что она работает вместе с компьютером и подсоединена к материнской плате через разъем IRDA. От этого же разъема конструкция получает питание. Вторая схема частотомера базируется на микроконтроллере Attiny2313 и способна измерять частоту до 10 мГц. Третья рассмотренная конструкция частотомера построена на базе легендарной платы Arduino, основа которой также микроконтроллер AVR.

Частотомер на микроконтроллере AVR Attiny2313 схема

Схема частотомера состоит из микропроцессора Attiny2313 и двоичного счетчика 74AC161. Входящий сигнал для усиления следует на транзистор VT1, затем с его коллекторного вывода он поступает на вход «С» двоичного счётчика. Контроль за работой счетчика закреплен за МК Attiny2313, который осуществляет обнуление, останавливает или запускает счет путем подачи управляющего сигнала на десятый вывод.

Непродолжительной подачей логического нуля на вход сброса двоичного счётчика, МК обнуляет его, а после этого, отправляет уровень логической единицы на входе ЕР, запускает его работу. Затем, он считает импульсы с выхода старшего разряда счетчика в течение полусекунды.

Частотомер на микроконтроллере AVR. Сигналы данных на компьютер идут с порта PD6 Attiny2313. Линия порта РВ1 используется для сигналов синхронизации следующие от компьютера.

В начальный момент времени МК генерирует стартовый импульс продолжительностью около 1,6 мкс после чего идет пауза. Программа время от времени обращается к порту 2F8H и при регистрации байта, инициирует передачу синхроимпульсов. Данные синхроимпульсы пойдут при отправке числа ноль в инфракрасный порт компьютера. Состав импульсов: Первый бит стартовый и 8 бит число ноль.

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

Так как скорости передачи и приёма одинаковы, это позволяет получить независимость от заданной скорости ИК порта компьютера.

Прошить микроконтроллер AVR можно любой схемой программатора. Фьюзы для утилиты CodeVisionAVR при программировании необходимо выставить как на картинке внутри архива с прошивкой микроконтроллера, который вы можете скачать по зеленой ссылке выше.

Чтобы частотомер мог правильно обмениваться данными с компьютером через порт IRDA, его требуется правильно сконфигурирован. Для этого в BIOS активируют данный порт, выбирая в настройках «FULL DUPLEX», а так же сигналы «ТХ» и «RX» обязательно сделайте как не инвертированные.

Простой частотомер на микроконтроллере Attiny2313 до 10 мГц схема

Микропроцессор работает от внешнего резонатора с тактовой частотой 20 МГц. Точность измерения зависит от точности кварца. Минимальная длина полупериода должна быть выше, чем период кварцевого генератора. Следовательно, половина от тактовой частоты генератора будет около 10 МГц.


частотомер на микроконтроллере AVR Attiny2313

Входной сигнал через сопротивление R9 следует на девятый вывод. Подсчет осуществляется с помощью встроеного 16-битного таймера-счетчика. Переполнение увеличивает восьми битный регистр, записывая в 24 битной переменной. Далее эти данные переводится в десятичное значение и высвечиваются на светодиодном дисплее. Все значения измеряемой частоты отображаются в кГц. Автоматический выбор диапазона измерения изменяет положение десятичной точки. Частота обновления данных около 1 Гц.

Катоды индикатора, подсоединены к порту B, а аноды к D. В связи с применением мультиплексного режима вывода информации и индикатора SuperBright, пропадает надобность в использование ключевых транзисторов для снятия нагрузки с портов.

Частота мультиплекса 156,25 Гц. Можно использовать индикатор CA56-12SRWA. Сопротивления R1…R8 ограничивают протекающий ток.

Схема частотомера питается от стабилизированного самодельного источника питания 5В, построенного на интегральном стабилизаторе 78L05.

Фъюзы для программы Ponyprog и сама прошивка доступна по зеленой ссылке чуть выше.

Частотомер на плате Arduino

В этом простом проекте частотомера, контроллер Arduino считывает напряжение, затем высчитывает его частоту и посылает данные через USB UART в компьютер, на котором необходимо установить программу считывания и визуализации данных, приложение и скетч в архиве для скачки.

Плата Arduino генерирует точную односекундную временную основу для счетчика с помощью каскадирования двух таймеров timer0 и timer2. Связь между цифровыми входами 3 и 4 соединяет выход таймера 2 (250 Гц) со входом таймера 0. Программный код ожидает, когда выход таймера 0 станет положительным, и начинает отсчет частоты входного сигнала таймером 1. Timer1 – это 16-разрядный таймер, он переполняется при достижении значения 216, после этого, изменяется значение регистра переполнения overF. В конце первой секунды записывается 16-разрядный регистр. Затем Arduino отправляет на ПК 6 байтов данных. Схема подключения к Arduino простая, и ее можно ,посмотреть на фото ниже.

Сначала Arduino необходимо подсоединить к компьютеру, а только потом запустить приложение на Visual Basc 6. Приложение ищет Com-порт, отправляя байты и ожидает их обратное принятие. Это занимает пару секунд. Приложение должно быть обязательно отключено, в тот момент когда вы прошиваете плату через Arduino IDE. Частотный вход платы Ардуино представляет собой уровни сигнала TTL, при слабом сигнале необходимо добавить усилитель.