- Світ аналогів з цифровою електронікою
- Що таке АЦП і як ним користуватися?
- Роздільна здатність (біти) та канали в АЦП
- Опорне напруга для АЦП
- Приклад
- Типи АЦП та робочі
- Деякі типові запитання щодо АЦП
Світ аналогів з цифровою електронікою
Кілька років тому всі електронні пристрої, якими ми користуємося сьогодні, такі як телефони, комп’ютери, телевізори тощо, мали аналоговий характер. Потім поступово стаціонарні телефони замінили сучасними мобільними телефонами, ЕЛТ-телевізори та монітори замінили світлодіодними дисплеями, комп’ютери з вакуумними лампами стали більш потужними з мікропроцесорами та мікроконтролерами всередині тощо.
У сучасну цифрову епоху ми всі оточені передовими цифровими електронними пристроями, це може обдурити нас думкою, що все навколо нас є цифровим за своєю природою, що не відповідає дійсності. Світ завжди був аналоговим за своєю природою, наприклад, все, що ми, люди, відчуваємо і відчуваємо, як швидкість, температура, швидкість повітря, сонячне світло, звук тощо, є аналоговими за своєю природою. Але наші електронні пристрої, які працюють на мікроконтролерах і мікропроцесорах, не можуть зчитувати / інтерпретувати ці аналогові значення безпосередньо, оскільки вони працюють лише на 0 і 1. Отже, нам потрібно щось, що перетворить всі ці аналогові значення в 0 і 1, щоб наші мікроконтролери та мікропроцесори могли їх зрозуміти. Це щось називається аналогово-цифровим перетворювачем або ADC. У цій статті ми дізнаємосьвсе про АЦП і як ними користуватися.
Що таке АЦП і як ним користуватися?
Як було сказано раніше, АЦП розшифровується як перетворення аналогового в цифрове, і він використовується для перетворення аналогових значень із реального світу в цифрові значення, такі як 1 і 0. То що це за аналогові значення? Це ті, які ми бачимо у своєму повсякденному житті, такі як температура, швидкість, яскравість тощо. Але почекайте !! Чи може АЦП перетворити температуру і швидкість безпосередньо в цифрові значення, такі як 0 і 1?
Ні зухвало ні. АЦП може перетворювати лише аналогові значення напруги в цифрові. Отже, будь-який параметр, який ми хочемо виміряти, спочатку його слід перетворити у напругу, це перетворення можна здійснити за допомогою датчиків. Наприклад, для перетворення значень температури у напругу ми можемо використовувати термістор аналогічним чином для перетворення яскравості у напругу, ми можемо використовувати LDR. Після перетворення його на напругу ми можемо прочитати його за допомогою АЦП.
Для того, щоб знати, як користуватися АЦП, нам слід спочатку ознайомитися з деякими основними термінами, такими як роздільна здатність каналів, діапазон, опорна напруга тощо.
Роздільна здатність (біти) та канали в АЦП
Коли ви прочитаєте специфікацію будь-якого мікроконтролера або мікросхеми АЦП, деталі АЦП будуть надані з використанням термінів канали та роздільна здатність (біти). Наприклад , ATmega328 Arduino UNO має 8-канальний 10-бітний АЦП. Не кожен штифт мікроконтролера може зчитувати аналогову напругу, термін 8-канальний означає, що на цьому мікроконтролері ATmega328 є 8 висновків, які можуть зчитувати аналогову напругу, і кожен штифт може зчитувати напругу з роздільною здатністю 10 біт. Це буде різним для різних типів мікроконтролерів.
Припустимо, що наш діапазон АЦП становить від 0 В до 5 В, і ми маємо 10-бітний АЦП, це означає, що наша вхідна напруга 0-5 Вольт буде розділена на 1024 рівні дискретних аналогових значень (2 10 = 1024). Значення 1024 - це роздільна здатність для 10-бітового АЦП, аналогічно для 8-бітового АЦП роздільна здатність буде 512 (2 8), а для 16-бітового АЦП - 65 536 (2 16).
Якщо це фактична вхідна напруга 0В, тоді АЦП MCU буде читати її як 0, а якщо вона 5V, MCU буде читати 1024, а якщо вона десь посередині, як 2,5V, тоді MCU буде читати 512. Ми можемо використовувати наступні формули для обчислення цифрового значення, яке буде зчитуватися MCU на основі роздільної здатності АЦП та робочої напруги.
(Дозвіл АЦП / робоча напруга) = (Цифрове значення АЦП / Фактичне значення напруги)
Опорне напруга для АЦП
Ще одним важливим терміном, з яким ви повинні бути знайомими, є опорна напруга. Під час перетворення АЦП значення невідомої напруги знаходить, порівнюючи її з відомою напругою, ця відома напруга називається опорною напругою. Зазвичай у всіх MCU є можливість встановити внутрішню опорну напругу, тобто ви можете встановити цю напругу всередині певного доступного значення за допомогою програмного забезпечення (програми). На платі Arduino UNO опорна напруга за замовчуванням встановлюється внутрішньо 5 В, якщо потрібно, користувач може встановити цю опорну напругу зовні через штифт Vref також після внесення необхідних змін у програмне забезпечення.
Завжди пам’ятайте, що виміряне значення аналогової напруги завжди має бути менше опорного значення напруги, а опорне значення напруги завжди має бути менше значення робочої напруги мікроконтролера.
Приклад
Тут ми беремо приклад АЦП, який має 3-бітову роздільну здатність і опорну напругу 2В. Таким чином, він може відображати 0-2v аналогове напруга з 8 (2 3) різних рівнів, як показано на малюнку:
Отже, якщо аналогова напруга дорівнює 0,25, тоді цифрове значення буде дорівнювати 1 в десятковому та 001 у двійковому. Подібним чином, якщо аналогова напруга дорівнює 0,5, тоді цифрове значення буде 2 в десятковому та 010 у двійковому.
Деякі мікроконтролери мають вбудований АЦП, такі як Arduino, MSP430, PIC16F877A, але деякі мікроконтролери не мають таких, як 8051, Raspberry Pi тощо, і ми повинні використовувати деякі зовнішні мікросхеми аналого-цифрового перетворювача, такі як ADC0804, ADC0808.
Нижче ви можете знайти різні приклади АЦП з різними мікроконтролерами:
- Як використовувати АЦП в Arduino Uno?
- Підручник з ADC Raspberry Pi
- Зв'язок ADC0808 з мікроконтролером 8051
- Цифровий вольтметр 0-25 В за допомогою мікроконтролера AVR
- Як користуватися АЦП в STM32F103C8
- Як користуватися АЦП в MSP430G2
Типи АЦП та робочі
Існує багато типів АЦП, найбільш часто використовуваними є АЦП Flash, АЦП з двома нахилами, Послідовне наближення та АЦП з двома нахилами. Пояснити, як кожна робота цих АЦП та різниця між ними була б поза рамками цієї статті, оскільки вони досить складні. Але, щоб дати приблизне уявлення, АЦП має внутрішній конденсатор, який заряджатиметься аналоговою напругою, що вимірюється. Потім ми вимірюємо значення напруги, розряджаючи конденсатор протягом певного періоду часу.
Деякі типові запитання щодо АЦП
Як виміряти більше 5 В за допомогою мого АЦП?
Як обговорювалося раніше, модуль АЦП не може вимірювати значення напруги більше робочої напруги мікроконтролера. Тобто мікроконтролер 5 В може вимірювати лише максимум 5 В за допомогою штифта АЦП. Якщо ви хочете виміряти щось більше, ніж сказане, ви хочете виміряти 0-12В, тоді ви можете відобразити 0-12В в 0-5В за допомогою схеми дільника потенціалу або дільника напруги. Ця схема буде використовувати пару резисторів для відображення значень для MCU. Ви можете дізнатися більше про схему дільника напруги за допомогою посилання. У наведеному вище прикладі ми повинні використовувати резистор 1К та резистор 720 Ом послідовно для джерела напруги та виміряти напругу між резисторами, як обговорювалося в посиланні вище.
Як перетворити цифрові значення з АЦП у фактичні значення напруги?
При використанні перетворювача АЦП для вимірювання аналогової напруги результат, отриманий MCU, буде цифровим. Наприклад, у 10-розрядному мікроконтролері на 5 В, коли фактична напруга, яку потрібно виміряти, дорівнює 4 В, мікроконтролер зчитує його як 820, ми можемо знову використовувати вищеописані формули для перетворення 820 в 4 В, щоб ми могли використовувати його в нашому розрахунки. Дозвольте перевірити те саме.
(Роздільна здатність АЦП / робоча напруга) = (Цифрове значення АЦП / Фактичне значення напруги) Фактичне значення напруги = Цифрове значення АЦП * (Робоча напруга / Роздільна здатність АЦП) = 820 * (5/1023) = 4,007 = ~ 4В
Сподіваюся, ви отримали чесне уявлення про АЦП і про те, як використовувати їх для своїх додатків. Якщо у вас виникли проблеми з розумінням концепцій, сміливо розміщуйте свої коментарі нижче або пишіть їх на наших форумах.