- Обязательные компоненты:
- Описание схемы:
- Генератор сигналов с использованием таймера 555 IC:
- Триггерный вентиль Шмитта:
- Пояснение кода счетчика частоты Arduino:
Почти каждый любитель электроники должен был столкнуться со сценарием, когда он или она должны были измерить частоту сигнала, генерируемого часами, счетчиком или таймером. Мы можем использовать осциллограф для этой работы, но не все из нас могут позволить себе осциллограф. У нас можно купить оборудование для измерения частоты, но все эти приборы дорогие и подходят далеко не всем. Имея это в виду, мы собираемся разработать простой, но эффективный счетчик частоты, используя Arduino Uno и триггерный вентиль Шмитта.
Этот частотомер Arduino экономичен и может быть легко изготовлен. Мы собираемся использовать ARDUINO UNO для измерения частоты сигнала, UNO - это сердце проекта.
Чтобы проверить частотомер, мы собираемся сделать фиктивный генератор сигналов. Этот фиктивный генератор сигналов будет выполнен с использованием микросхемы таймера 555. Схема таймера генерирует прямоугольный сигнал, который будет предоставлен в UNO для тестирования.
Когда все будет готово, у нас будет частотомер Arduino и генератор прямоугольных сигналов. Arduino также может быть использован для генерации сигналов других типов, таких как синусоидальная волна, зубчатая волна и т. Д.
Обязательные компоненты:
- 555 таймер IC и 74LS14 триггерный вентиль Шмитта или НЕ вентиль.
- Резистор 1 кОм (2 шт.), Резистор 100 Ом
- Конденсатор 100 нФ (2 шт.), Конденсатор 1000 мкФ
- ЖК-дисплей 16 * 2,
- Горшок 47 кОм,
- Макетная плата и некоторые разъемы.
Описание схемы:
Принципиальная схема измерения частоты с помощью Arduino показана на рисунке ниже. Схема проста, ЖК-дисплей соединен с Arduino для отображения измеренной частоты сигнала. «Волновой вход» поступает в схему генератора сигналов, из которой мы подаем сигнал на Arduino. Триггерный вентиль Шмитта (IC 74LS14) используется для того, чтобы гарантировать, что только прямоугольная волна подается на Arduino. Для фильтрации шума мы добавили пару конденсаторов по питанию. Этот частотомер может измерять частоты до 1 МГц.
Схема генератора сигналов и триггер Шмитта описаны ниже.
Генератор сигналов с использованием таймера 555 IC:
Прежде всего, мы поговорим о генераторе прямоугольных импульсов на базе микросхемы 555, или, лучше сказать, 555 Astable Multivibrator. Эта схема необходима, потому что при установленном частотомере у нас должен быть сигнал, частота которого нам известна. Без этого сигнала мы никогда не сможем определить работу частотомера. Если у нас есть квадрат известной частоты, мы можем использовать этот сигнал для проверки частотомера Arduino Uno и настроить его для корректировки точности в случае каких-либо отклонений. Изображение генератора сигналов, использующего микросхему таймера 555, приведено ниже:
Типовая схема 555 в нестабильном режиме приведена ниже, из которой мы получили приведенную выше схему генератора сигналов.
Частота выходного сигнала зависит от резисторов RA, RB и конденсатора C. Уравнение имеет вид, Частота (F) = 1 / (период времени) = 1,44 / ((RA + RB * 2) * C).
Здесь RA и RB - значения сопротивления, а C - значение емкости. Помещая значения сопротивления и емкости в приведенное выше уравнение, мы получаем частоту выходного прямоугольного сигнала.
Можно видеть, что RB на вышеприведенной диаграмме заменен потенциометром в цепи генератора сигналов; это сделано для того, чтобы мы могли получить прямоугольный сигнал переменной частоты на выходе для лучшего тестирования. Для простоты можно заменить горшок на простой резистор.
Триггерный вентиль Шмитта:
Мы знаем, что все тестовые сигналы не являются квадратными или прямоугольными волнами. У нас есть треугольные волны, зубчатые волны, синусоидальные волны и так далее. Поскольку UNO может обнаруживать только квадратные или прямоугольные волны, нам нужно устройство, которое могло бы преобразовывать любые сигналы в прямоугольные волны, поэтому мы используем триггерный вентиль Шмитта. Триггерный вентиль Шмитта - это цифровой логический вентиль, предназначенный для арифметических и логических операций.
Этот вентиль обеспечивает ВЫХОД в зависимости от уровня входного напряжения. Триггер Шмитта имеет ПОРОГ напряжения, когда входной сигнал, подаваемый на затвор, имеет уровень напряжения выше, чем ПОРОГ логического элемента, ВЫХОД становится ВЫСОКИМ. Если уровень сигнала ВХОДНОГО напряжения ниже ПОРОГА, ВЫХОД затвора будет НИЗКИЙ. Обычно мы не получаем триггер Шмитта отдельно, у нас всегда есть вентиль НЕ, следующий за триггером Шмитта. Работа триггера Шмитта объясняется здесь: Триггер Шмитта.
Мы собираемся использовать микросхему 74LS14, в которой есть 6 триггерных вентилей Шмитта. Эти ШЕСТЬ ворот имеют внутреннее соединение, как показано на рисунке ниже.
Истина Таблица Перевернутый триггера Шмитта ворот это шоу в рисунке ниже, с этим мы должны запрограммировать UNO для инвертирования положительные и отрицательные периоды времени на своих терминалах.
Теперь мы будем подавать любой тип сигнала на вентиль ST, у нас на выходе будет прямоугольная волна инвертированных периодов времени, этот сигнал мы подадим в UNO.
Пояснение кода счетчика частоты Arduino:
Код для измерения частоты с помощью Arduino довольно прост и понятен. Здесь мы объясняем функцию pulseIn, которая в основном отвечает за измерение частоты. Uno имеет специальную функцию pulseIn , которая позволяет нам определять длительность положительного или отрицательного состояния конкретной прямоугольной волны:
Htime = pulseIn (8, HIGH); Ltime = pulseIn (8, LOW);
Данная функция измеряет время, в течение которого высокий или низкий уровень присутствует на PIN8 Uno. Итак, в одном цикле волны у нас будет продолжительность положительного и отрицательного уровней в микросекундах. Функция pulseIn измеряет время в микросекундах . В данном сигнале мы имеем высокое время = 10 мс и низкое время = 30 мс (с частотой 25 Гц). Таким образом, 30000 будет сохранено в виде целого числа Ltime, а 10000 - в формате Htime. Когда мы сложим их вместе, мы получим длительность цикла, а, инвертируя ее, мы получим частоту.
Полный код и видео для этого частотомера с использованием Arduino приведены ниже.