У цьому проекті ми збираємося зробити амперметр низького діапазону з використанням мікроконтролера ATMEGA8. В ATMEGA8 для цього ми використовуємо функцію 10-бітного АЦП (аналого-цифрове перетворення). Хоча у нас є декілька інших способів отримати поточний параметр із схеми, ми будемо використовувати резистивний метод падіння, оскільки це найпростіший і найпростіший спосіб отримати поточний параметр.
У цьому методі ми будемо передавати струм, який потрібно було виміряти, на невеликий опір, тим самим ми отримуємо падіння через той опір, який пов'язаний із струмом, що протікає через нього. Ця напруга на опорі подається на ATMEGA8 для перетворення АЦП. Завдяки цьому ми отримаємо значення струму в цифровій формі, яке відображатиметься на РК-дисплеї 16x2.
Для цього ми будемо використовувати схему дільника напруги. Ми будемо подавати струм через повну гілку опору. Середня точка гілки приймається для вимірювання. При зміні струму відбуватиметься падіння зміни опору, який є лінійним до нього. Отже, з цим ми маємо напругу, яка змінюється з лінійністю.
Зараз важливо відзначити, що вхід, який приймає контролер для перетворення АЦП, становить лише 50 мкАмпер. Цей навантажувальний ефект дільника напруги на основі опору є важливим, оскільки струм, який надходить від Vout дільника напруги, збільшує відсоток похибок, і наразі нам не потрібно турбуватися про ефект навантаження.
Потрібні компоненти
Апаратне забезпечення: ATMEGA8, блок живлення (5 в), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), конденсатор 100 мкФ, конденсатор 100 нФ (4 шт.), Резистор 100 Ом (7 шт.) Або 2,5 Ом (2 шт.), Резистор 100 КОм.
Програмне забезпечення: Atmel studio 6.1, progisp або flash magic.
Принципова схема та робоче пояснення
Напруга на R2 і R4 не є повністю лінійною; це буде шумно. Щоб фільтрувати шум, конденсатори розміщують по кожному резистору в ланцюзі дільника, як показано на малюнку.
В ATMEGA8 ми можемо подавати аналоговий вхід на будь-який з ЧОТИРОХ каналів PORTC, не має значення, який канал ми виберемо, оскільки всі вони однакові. Ми збираємось обрати канал 0 або PIN0 PORTC. В ATMEGA8 АЦП має 10-бітну роздільну здатність, тому контролер може виявити мінімальну зміну Vref / 2 ^ 10, тому, якщо опорна напруга дорівнює 5В, ми отримуємо збільшення цифрового виходу на кожні 5/2 ^ 10 = 5мВ. Отже, для кожного входу на 5 мВ ми матимемо приріст в одиницю на цифровому виході.
Тепер нам потрібно встановити реєстр АЦП, виходячи з таких умов:
1. Перш за все нам потрібно включити функцію АЦП в АЦП.
2. Тут збирається отримати максимальну вхідну напругу для перетворення АЦП + 5 В. Тож ми можемо встановити максимальне значення або посилання АЦП на 5В.
3. Контролер має функцію перетворення тригера, що означає, що перетворення АЦП відбувається лише після зовнішнього тригера, оскільки ми не хочемо, щоб нам потрібно було встановлювати регістри, щоб АЦП працював у режимі безперервного вільного запуску.
4. Для будь-якого АЦП частота перетворення (аналогове значення в цифрове значення) і точність цифрового виводу є обернено пропорційними. Тому для кращої точності цифрового виводу нам доводиться вибирати меншу частоту. Для звичайних годин АЦП ми встановлюємо попередній продаж АЦП на максимальне значення (2). Оскільки ми використовуємо внутрішній годинник 1 МГц, годинник АЦП буде (1000000/2).
Це єдині чотири речі, які ми повинні знати, щоб розпочати роботу з АЦП.
Усі вищезазначені чотири ознаки задаються двома регістрами,
ЧЕРВОНИЙ (ADEN): Цей біт повинен бути встановлений, щоб увімкнути функцію АЦП ATMEGA.
СИНИЙ (REFS1, REFS0): Ці два біти використовуються для встановлення опорної напруги (або максимальної вхідної напруги, яку ми збираємося подавати). Оскільки ми хочемо мати опорну напругу 5 В, REFS0 слід встановлювати за таблицею.
ЖОВТИЙ (ADFR): цей біт повинен бути встановлений, щоб АЦП працював безперервно (режим вільного запуску).
PINK (MUX0-MUX3): Ці чотири біти служать для повідомлення вхідного каналу. Оскільки ми будемо використовувати ADC0 або PIN0, нам не потрібно встановлювати будь-які біти, як у таблиці.
BROWN (ADPS0-ADPS2): ці три біти призначені для налаштування прескаляра для ADC. Оскільки ми використовуємо прескаляр 2, ми повинні встановити один біт.
ТЕМНО-ЗЕЛЕНИЙ (ADSC): цей біт встановлений для АЦП для початку перетворення. Цей біт можна вимкнути в програмі, коли нам потрібно зупинити перетворення.