Измеритель частоты Arduino с дисплеем 16 × 2

Попробуйте наш инструмент устранения неполадок





В этой статье мы собираемся сконструировать цифровой частотомер с использованием Arduino, показания которого будут отображаться на ЖК-дисплее 16x2 и иметь диапазон измерения от 35 Гц до 1 МГц.

Вступление

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



Тогда мы бы поняли, что осциллограф - очень полезный инструмент для измерения частоты. Но все мы знаем, что осциллограф - дорогой инструмент, который не все любители могут себе позволить, а осциллограф может оказаться излишним инструментом для новичков.

Чтобы решить проблему измерения частоты, любителю не нужен дорогой осциллограф, нам просто нужен частотомер, который может измерять частоту с разумной точностью.



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

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

Что такое частота? (Для новичков)

Мы знакомы с термином «частота», но что он на самом деле означает?

Ну, частота определяется как количество колебаний или циклов в секунду. Что означает это определение?

Это означает, сколько раз амплитуда «чего-то» увеличивается и уменьшается за ОДНУ секунду. Например, частота переменного тока в нашем доме: амплитуда «напряжения» («что-то» заменяется на «напряжение») увеличивается (+) и уменьшается (-) за одну секунду, что в 50 раз больше в большинстве стран.

Один цикл или одно колебание состоит из движения вверх и вниз. Таким образом, за один цикл / колебание амплитуда переходит от нуля к положительному пику и возвращается к нулю, затем идет к отрицательному пику и возвращается к нулю.

«Период времени» также используется при оценке частоты. Период времени - это время, необходимое для завершения «одного цикла». Это также величина, обратная частоте. Например, 50 Гц имеет период времени 20 мс.

1/50 = 0,02 секунды или 20 миллисекунд

К настоящему времени у вас будет некоторое представление о частоте и связанных с ней терминах.

Как измеряется частота?

Мы знаем, что один цикл - это комбинация высокого и низкого сигнала. Чтобы измерить длительность высоких и низких сигналов, мы используем «pulseIn» в Arduino. PulseIn (pin, HIGH) измеряет длительность высоких сигналов, а pulseIn (pin, LOW) измеряет длительность низких сигналов. Продолжительность импульса обоих суммируется, что дает период времени в один цикл.

Определенный период времени затем рассчитывается за одну секунду. Это делается по следующей формуле:

Freq = 1000000 / период времени в микросекундах

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

Теперь вы знаете, как Arduino измеряет и вычисляет частоту.

Схема:

Схема состоит из Arduino, который является мозгом проекта, ЖК-дисплея 16x2, инвертора IC 7404 и одного потенциометра для регулировки контрастности ЖК дисплей .

Предлагаемая установка может измерять от 35 Гц до 1 МГц.

Подключение дисплея Arduino:

Схема выше не требует пояснений, проводное соединение между Arduino и дисплеем является стандартным, и мы можем найти аналогичные соединения в других проектах на основе Arduino и LCD.

Частотомер Arduino с дисплеем 16x2

Приведенная выше диаграмма состоит из инвертора IC 7404. Роль IC 7404 заключается в устранении шума на входе, чтобы шум не распространялся на Arduino, что могло бы давать ложные показания, а IC 7404 может выдерживать короткие всплески напряжения, которые не будут передаваться на контакты arduino. IC 7404 выводит только прямоугольные волны, тогда как Arduino может легко сравнить их с аналоговыми волнами.

ПРИМЕЧАНИЕ. Максимальный размах входного сигнала не должен превышать 5 В.

Программа:

//-----Program Developed by R.Girish-----//
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int X
int Y
float Time
float frequency
const int input = A0
const int test = 9
void setup()
{
pinMode(input,INPUT)
pinMode(test, OUTPUT)
lcd.begin(16, 2)
analogWrite(test,127)
}
void loop()
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Frequency Meter')
X=pulseIn(input,HIGH)
Y=pulseIn(input,LOW)
Time = X+Y
frequency=1000000/Time
if(frequency<=0)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Frequency Meter')
lcd.setCursor(0,1)
lcd.print('0.00 Hz')
}
else
{
lcd.setCursor(0,1)
lcd.print(frequency)
lcd.print(' Hz')
}
delay(1000)
}
//-----Program Developed by R.Girish-----//

Тестирование частотомера:

После того, как вы успешно построили проект, необходимо проверить, все ли работает нормально. Мы должны использовать известную частоту для подтверждения показаний. Для этого мы используем встроенную в Arduino функцию ШИМ с частотой 490 Гц.

В программе, вывод 9 включен для выдачи 490 Гц при рабочем цикле 50%, пользователь может взять входной провод частотомера и вставить его в вывод № 9 Arduino, как показано на рисунке, мы можем увидеть 490 Гц на ЖК-дисплее (с некоторым допуском), если указанная процедура прошла успешно, частотомер готов служить вам для экспериментов.

Авторский прототип:

Изображение прототипа частотомера Arduino

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




Предыдущая: Схема инвертора чистой синусоиды Arduino с полным программным кодом Далее: Создание одноканального осциллографа с использованием Arduino