- Необхідні компоненти:
- Пояснення схеми:
- Генератор сигналів за допомогою таймера 555 IC:
- Ворота спускового механізму Шмітта:
- Пояснення коду лічильника частоти Arduino:
Майже кожен електронний любитель повинен зіткнутися зі сценарієм, коли він або вона повинні виміряти частоту сигналу, що генерується годинником, лічильником або таймером. Ми можемо використовувати осцилограф для виконання роботи, але далеко не всі ми можемо дозволити собі осцилограф. Ми можемо придбати обладнання для вимірювання частоти, але всі ці прилади є дорогими і не для всіх. З огляду на це, ми збираємося розробити простий, але ефективний лічильник частоти, використовуючи Arduino Uno та тригерний затвор Шмітта.
Цей лічильник частоти Arduino є економічно вигідним і може бути легко виготовлений; ми збираємося використовувати ARDUINO UNO для вимірювання частоти сигналу, UNO - це серце проекту тут.
Щоб протестувати частотомір, ми збираємося створити фіктивний генератор сигналу. Цей фіктивний генератор сигналів буде виготовлений за допомогою мікросхеми таймера 555. Схема таймера генерує квадратну хвилю, яка буде передана UNO для тестування.
З усім на місці ми матимемо вимірювач частоти Arduino та генератор квадратних хвиль. Arduino також може бути використаний для генерування інших видів сигналів, таких як синусоїда, хвиля зуба тощо.
Необхідні компоненти:
- 555 таймера IC і 74LS14 спусковий механізм Шмітта або НЕ затвор.
- Резистор 1K Ω (2 штуки), резистор 100Ω
- Конденсатор 100 нФ (2 штуки), конденсатор 1000 мкФ
- 16 * 2 РК-дисплей,
- 47KΩ горщик,
- Макет та деякі роз'єми.
Пояснення схеми:
Принципова схема вимірювання частоти за допомогою Arduino показана на малюнку нижче. Схема проста, РК-екран поєднаний з Arduino для відображення виміряної частоти сигналу. 'Вхід хвилі' надходить до схеми генератора сигналів, звідки ми подаємо сигнал на Arduino. Тригерний затвор Шмітта (IC 74LS14) використовується для забезпечення подачі на Arduino лише прямокутної хвилі. Для фільтрації шуму ми додали кілька конденсаторів по всій потужності. Цей вимірювач частоти може вимірювати частоти до 1 МГц.
Схема генератора сигналів та тригер Шмітта були пояснені нижче.
Генератор сигналів за допомогою таймера 555 IC:
Перш за все ми поговоримо про генератор квадратних хвиль на основі 555 IC, або я повинен сказати 555 Astable Multivibrator. Ця схема необхідна, оскільки, якщо встановлений вимірювач частоти, ми повинні мати сигнал, частота якого нам відома. Без цього сигналу ми ніколи не зможемо визначити роботу вимірювача частоти. Якщо у нас є квадрат відомих частот, ми можемо використовувати цей сигнал для тестування вимірювача частоти Arduino Uno, і ми можемо налаштувати його для корекції точності, у разі будь-яких відхилень. Зображення генератора сигналів за допомогою таймера 555 IC наведено нижче:
Типова схема 555 в режимі Astable наведена нижче, з якої ми отримали вищезазначену схему генератора сигналів.
Частота вихідного сигналу залежить від резисторів RA, RB та конденсатора C. Рівняння подано як, Частота (F) = 1 / (Період часу) = 1,44 / ((RA + RB * 2) * C).
Тут RA і RB - значення опору, а C - значення ємності. Поставивши значення опору та ємності у вищевказане рівняння, ми отримуємо частоту вихідної квадратної хвилі.
Можна помітити, що RB на наведеній вище діаграмі замінено на горщик у схемі генератора сигналів; це робиться для того, щоб ми могли отримати на виході квадратну хвилю змінної частоти для кращого тестування. Для простоти можна замінити горщик простим резистором.
Ворота спускового механізму Шмітта:
Ми знаємо, що всі тестові сигнали не є квадратними чи прямокутними хвилями. У нас трикутні хвилі, зубні хвилі, синусоїди тощо. Оскільки ООН може виявляти лише квадратні або прямокутні хвилі, нам потрібен пристрій, який міг би змінювати будь-які сигнали на прямокутні хвилі, тому ми використовуємо затвор Шмітта. Тригерні ворота Шмітта - це цифрові логічні ворота, призначені для арифметичних та логічних операцій.
Цей затвор забезпечує ВИХІД на основі рівня вхідної напруги. Тригер Шмітта має рівень напруги THERSHOLD, коли сигнал INPUT, поданий на затвор, має рівень напруги, що перевищує ПОРІГ логічного затвора, ВИХІД стає ВИСОКИМ. Якщо рівень сигналу напруги INPUT нижчий ніж THRESHOLD, ВИХІД затвора буде НИЗКИМ. Зазвичай ми не отримуємо тригер Шмітта окремо, ми завжди маємо ворота НЕ, що слідує за тригером Шмітта. Тут працює пояснення роботи триггера Шмітта: Ворота спускового механізму Шмітта
Ми збираємось використовувати мікросхему 74LS14, у цій мікросхемі 6 воріт Schmitt Trigger. Ці шість воріт з'єднані між собою, як показано на малюнку нижче.
Істина Таблиця Перевернутий тригера Шмітта воріт це шоу в малюнку нижче, з цим ми повинні запрограмувати 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 наведено нижче.