Ім'я файлу: лаб2.docx Розширення: docx Розмір: 169кб. Дата: 04.11.2023 скачати Пов'язані файли: ПВНЗ Київський медичний університет.docx МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ ДЕРЖАВНИЙ УНІВЕРСИТЕТ «ЖИТОМИРСЬКА ПОЛІТЕХНІКА» ФІКТ Кафедра комп’ютерних технологій в медицині та телекомунікаціях Лабораторна робота №2 «АЦП. СТВОРЕННЯ ВОЛЬТМЕТРА ТА ТЕРМОМЕТРА НА БАЗІ ARDUINO» Виконала: Шевчук М.В. Перевірив: Корніюк А.В. Житомир 2023 Тема: АЦП. СТВОРЕННЯ ВОЛЬТМЕТРА ТА ТЕРМОМЕТРА НА БАЗІ ARDUINO. Мета: 1. Практичне ознайомлення з АЦП. 2. Створення на базі Arduino вольтметра з використанням АЦП мікроконтролера. 3. Створення на базі Arduino термометра з використанням спеціалізованої мікросхеми TMP36 та АЦП мікроконтролера. Короткі теоретичні відомості. Аналого-цифровий перетворювач (АЦП) - це електронний пристрій, який перетворює аналоговий сигнал (наприклад, електричний струм або напругу) у цифровий формат, який можна обробляти за допомогою цифрового обладнання, такого як мікроконтролери, комп'ютери або цифрові сигнальні процесори. АЦП грає важливу роль у багатьох сферах, таких як електроніка, медицина, комунікації, автомобільна промисловість та інші. Основні параметри АЦП включають такі характеристики: 1. Частота дискретизації (Sampling Rate): Ця характеристика визначає, скільки разів на секунду АЦП вимірює значення аналогового сигналу. Вимірюється в герцах (Гц). Вища частота дискретизації дозволяє зберігати більше деталей аналогового сигналу, але вимагає більше обчислювальних ресурсів для обробки цифрових даних. 2. Квантування (Quantization): Квантування визначає кількість можливих рівнів значень, на які поділяється діапазон аналогового сигналу. Зазвичай вимірюється в бітах. Наприклад, для 8-бітного АЦП кількість можливих рівнів дорівнює 2^8, або 256 рівнів. 3. Кодування (Encoding): Кодування визначає, як значення аналогового сигналу представлені у вигляді цифрового коду. Найпоширеніші методи кодування включають двійковий код (Binary), двійковий доповнюваний код (Two's Complement) та знаково-модульний код (Sign-Magnitude). 4. Алгоритм квантування: Алгоритм квантування визначає, як значення аналогового сигналу округлюються до ближчого можливого рівня квантування. Популярні алгоритми включають равномірне квантування, диференційне квантування та усереднене квантування. Вибір алгоритму може впливати на якість отриманих даних. Загалом, АЦП є ключовим елементом в системах, де необхідно вимірювати аналогові сигнали та обробляти їх у цифровому вигляді. Розуміння основних параметрів АЦП допомагає інженерам і розробникам вибирати підходящі пристрої для конкретних застосувань і забезпечувати точність та якість обробки сигналів. Хід роботи Складаємо схему №1. Для цього нам потрібно: плата Arduino UNO, мультиметр, потенціометр. Рис.1 – Схема №1 Рис.2 – Вигляд зібраної схеми №1 в симуляторі TinkerCad Розрахунок напруги одного відліку За формулою Пишемо першу програму, яка буде виводити в монітор послідовного порту кількість отриманих відліків та напругу у вольтах. Код програми: #define analogin A2 void setup() { pinMode(analogin, INPUT); Serial.begin(9600); } void loop() { int value; value = analogRead(analogin); float voltage = value * 0.0048828125; Serial.print("ADC count:"); Serial.println(value); Serial.print("Voltage in V:"); Serial.println(voltage); delay(1000); } Рис.3 – Результат роботи програми
Таб.1 – Порівняння значень напруги Складаємо схему №2 Для цього нам потрібно: плата Arduino UNO і температурний сенсор [TMP36]. Рис.4 – Схема №2 Знаходимо в технічній документації на мікросхему TMP36 співвідношення напруги на виході мікросхеми до температури, виводимо формулу Рис.5 – Технічна документація на TMP36 Формула для температури в градусах Цельсія Формула для температури в градусах Фаренгейта Рис.6 – Вигляд зібраної схеми №2 в симуляторі TinkerCad Код програми: #define analogin A0 void setup() { pinMode(analogin, INPUT); Serial.begin(9600); } void loop() { int value; value = analogRead(analogin); float voltage = value * 0.0048828125; float temp = (voltage-0.5)* 100; Serial.print("Temperature in C:"); Serial.println(temp); float tempF = ((temp*9)/5)+32; Serial.print("Temperature in F:"); Serial.println(tempF); Serial.println("---------------------"); delay(1000); } Рис.7 – Результат роботи програми
Таб.2 – Порівняння значень температури Висновок: Під час виконання цієї роботи було досягнуто наступні цілі: Було проведено практичне ознайомлення з аналого-цифровим перетворювачем (АЦП) та його роботою. Було створено вольтметр на базі платформи Arduino з використанням АЦП мікроконтролера. Програма на Arduino виводила кількість отриманих відліків та виміряну напругу в вольтах. Також було створено термометр на базі Arduino з використанням спеціалізованої мікросхеми TMP36 та АЦП мікроконтролера. Використовуючи технічну документацію, була знайдена формула для перетворення напруги на виході мікросхеми TMP36 в температуру в градусах Цельсія. У ході виконання роботи було проведено вимірювання, змінюючи положення повзунка змінного резистора для вольтметра та отримано таблицю з виміряними значеннями напруги. Також була реалізована програма на Arduino для термометра, яка виводила значення температури в градусах Цельсія та Фаренгейта в монітор послідовного порту. У результаті виконання роботи отримано практичний досвід роботи з АЦП, розроблено та налаштовано вольтметр та термометр на базі Arduino, що можуть бути використані для вимірювання напруги та температури в різних додатках і експериментах. |