ЧЕРНІГІВСЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ КУРСОВА РОБОТА з мікропроцесорних пристроїв на тему: Терморегулятор для управління швидкістю вентилятора на мікроконтролері ATMega ЧНТУ КП19ХХ 000 Студента ___ курсу групи ЕТБ-19 спеціальності 141 Електроенергетика, електротехніка та електромеханіка ____________ (прізвище та ініціали) Керівник (прізвище та ініціали) Оцінка ___________________________ м. Чернігів – 2020 рік 2 РЕФЕРАТ Пояснювальна записка до курсової роботи на тему «Терморегулятор для управління швидкістю вентилятора на мікроконтролері Atmega» містить 33 с., 15 рисунків, 11 джерел посилань. Об’єкт розробки – терморегулятор для управління швидкістю вентиляторів. Мета роботи – розробка терморегулятора для управління швидкістю вентилятора на базі мікроконтролера Atmega, який дозволяє виконувати управляння швидкістю обертання вентиляторів в залежності від температури середовища. В курсовій роботі проаналізовано типи сучасних мікроконтролерів, структуру мікроконтролерів AVR та досліджено аналогічні пристрої. Розроблено структурну та електричну принципову схему, підібрано елементи. Розроблено алгоритм роботи програми керування вентиляторами та розглянуто середовище програмування мікроконтролера Atmega. ATMEGA, ВЕНТИЛЯТОР, МІКРОКОНТРОЛЕР, AVR, РЕГІСТР ЗСУВУ. ДАТЧИК ТЕМПЕРАТУРИ, 3 ЗМІСТ Вступ 4 1 Загальні відомості 5 1.1 Аналіз сучасних мікроконтролерів 5 1.2 Структура мікроконтролера AVR 6 2 Розробка схеми пристрою 14 2.1 Огляд існуючих аналогів 14 2.2 Розробка структурної схеми 17 2.3 Розробка принципової схеми пристрою 18 3 Вибір елементної бази 21 3.1 Мікросхема мікроконтролера 21 3.2 Регістр зсуву 74LS164 23 3.3 Датчик температури DS18B20 23 3.4 Додаткові компоненти 24 4 Розробка структури алгоритму керування 28 4.1 Опис середовища програмування 28 4.2 Розробка алгоритму програми 29 Висновки 31 Перелік посилань 32 4 Вступ В сучасній техніці гостро постає питання відведення тепла від різних вузлів та агрегатів. Найбільш поширеним методом відведення тепля являється система вентиляції. Але вентилятори досить часто створюють зайвий шум, потужний потік, який не потрібний в тій чи іншій ситуації. Щоб вирішити проблему зайвого енергоспоживання, шуму, тощо в курсовій роботі необхідно спроектувати систему охолодження за допомогою вентиляторів з регулюванням швидкості обертів в залежності від температури середовища. Метою курсової роботи дослідження можливостей регулювання швидкості обертів вентилятора за допомогою мікроконтролера Atmega. Завданням курсової роботи є проектування пристрою термоконтролю на базі мікроконтролера Atmega за допомогою вентиляторів. 5 1 Загальні відомості 1.1 Аналіз сучасних мікроконтролерів В наш час існує велика кількість мікроконтроллерів під різні види задач. Мікроконтролер, або однокристальний мікрокомп'ютер — виконаний у вигляді мікросхеми спеціалізований комп'ютер, що включає мікропроцесор, оперативну та постійну пам'ять для збереження виконуваного коду програм і даних, порти вводувиводу і блоки зі спеціальними функціями (лічильники, компаратори, АЦП та інші). Використовуються для керування електронними пристроями. По суті, це – однокристальний комп'ютер, здатний виконувати прості завдання. Використання однієї мікросхеми значно знижує розміри, енергоспоживання і вартість пристроїв, побудованих на базі мікроконтролерів. Мікроконтролери можна зустріти в багатьох сучасних приладах, таких як телефони, пральні машини, вони відповідають за роботу двигунів і систем гальмування сучасних автомобілів, з їх допомогою створюються системи контролю і системи збору інформації. Більшість процесорів, що випускаються у світі – мікроконтролери. В сучасних проектах використовують не самі мікроконтролери а систему на кристалі (англ. System-on-a-Chip, SoC). Система на кристалі – електронна схема, що виконує функції цілого пристрою (наприклад, комп'ютера) і розміщена на одній інтегральній схемі. Залежно від призначення вона може оперувати як цифровими сигналами, так і аналоговими, аналого-цифровими, а також частотами радіодіапазону. Як правило, застосовуються в портативних і вбудованих системах. Якщо розмістити всі необхідні ланцюги на одному напівпровідниковому кристалі не вдається, застосовується схема з декількох кристалів, поміщених в єдиний корпус (англ. System in a package, SiP). SoC вважається більш вигідною конструкцією, так як дозволяє збільшити відсоток придатних пристроїв при виготовленні і спростити конструкцію корпусу. Типова SoC містить: 6 - один або кілька мікроконтролерів, мікропроцесорів або ядер цифрової обробки сигналів (DSP). SoC, що містить кілька процесорів, називають многопроцессорной системою на кристалі (MPSoC); - банк пам'яті, що складається з модулів ПЗУ, ОЗУ, ППЗУ або флеш; - джерела опорної частоти, наприклад, кварцові резонатори і схеми ФАПЧ (фазового автопідстроювання частоти); - таймери, лічильники, ланцюги затримки після включення; - блоки, що реалізують стандартні інтерфейси для підключення зовнішніх пристроїв: USB, FireWire, Ethernet, USART, SPI; - блоки цифро-аналогових та аналого-цифрових перетворювачів; - регулятори напруги та стабілізатори живлення. У програмовані SOC часто входять також блоки програмованих логічних матриць - ПЛМ, а в програмовані аналого-цифрові SOC - ще і програмовані аналогові блоки. Блоки можуть бути з'єднані за допомогою шини власної розробки або стандартної конструкції, наприклад, AMBA в чіпах компанії ARM. Якщо в складі чіпа є контролер прямого доступу до пам'яті (ПДП), то з його допомогою можна заносити дані з великою швидкістю з зовнішніх пристроїв безпосередньо в пам'ять чіпа, минаючи процесорний ядро. 1.2 Структура мікроконтролера AVR Мікроконтролер AVR складається з основних вузлів: швидкий RISC- процесор, два типи незалежної пам'яті (Flash-пам'ять програм і пам'ять даних EEPROM), оперативну пам'ять RAM, порти вводу/виводу і різні периферійні інтерфейсні схеми. Основою мікроконтролерів AVR (до яких відносяться мікроконтролери сімейства Atmega) є 8-бітне мікропроцесорне ядро або центральний процесор (рисунок 1.1), побудоване на принципах RISC-архітектури. Основою цього блоку є арифметично-логічний пристрій (АЛП). По системному тактовму сигналу з пам'яті програм відповідно до вмісту лічильника команд (Program Counter - PC) 7 вибирається чергова команда і виконується АЛП. Під час вибору команди з пам'яті програм відбувається виконання попередньої обраної команди, що і дозволяє досягти швидкодії 1 MIPS на 1 МГц. АЛП підключено до регістрів загального призначення (General Purpose Registers - GPR). Регістрів загального призначення всього 32, вони мають байтовий формат, тобто кожен з них складається з восьми біт. Регістри загального призначення знаходяться на початку адресного простору оперативної пам'яті, але фізично не є її частиною. Тому до них можна звертатися двома способами (як до регістрів і як до пам'яті). Таке рішення є особливістю AVR і підвищує ефективність роботи і продуктивність мікроконтролера. Відмінність між регістрами і оперативною пам'яттю полягає в тому, що з регістрами можна проводити будь-які операції (арифметичні, логічні, бітові), а в оперативну пам'ять можна лише записувати дані з регістрів. Рисунок 1.1 – Архітектура ядра мікроконтролера У мікроконтролерах AVR реалізована Гарвардська архітектура, відповідно до якої розділені не тільки адресні простори пам'яті програм і пам'яті даних, але й шини доступу до них. Кожна з областей пам'яті даних (оперативна пам'ять і EEPROM) також розташована в своєму адресному просторі. 8 Пам'ять програм призначена для зберігання послідовності команд, які керують функціонуванням мікроконтролера, і має 16-ти бітну організацію. Всі AVR мають Flash-пам'ять програм, яка може бути різного розміру - від 1 до 256 КБ. Її головна перевага в тому, що вона побудована на принципі електричного перепрограмування, тобто допускає багаторазове стирання і запис інформації. Програма заноситься в Flash-пам'ять AVR як за допомогою звичайного програматора, так і за допомогою SPI-інтерфейсу, в тому числі безпосередньо на зібраній платі. Можливістю внутрішнього програмування (функція ISP) через комунікаційний інтерфейс SPI володіють всі мікроконтролери AVR, крім Tiny11 і Tiny28. Всі мікроконтролери сімейства Mega мають можливість самопрограмування, тобто самостійної зміни вмісту своєї пам'яті програм. Ця особливість дозволяє створювати на їх основі гнучкі системи, алгоритм роботи яких буде змінюватися самим мікроконтролером в залежності від будь-яких внутрішніх умов або зовнішніх подій. Гарантоване число циклів перезапису Flash-пам'яті у мікроконтролерів AVR другого покоління становить не менше 10 тис циклів при типовому значенні 100 тис циклів. (В офіційній технічної документації Atmel Corp. вказується значення 10 тис циклів.) Пам'ять даних розділена на три частини: регістрова пам'ять, оперативна пам'ять (RAM) і незалежна пам'ять (EEPROM). Регістрова пам’ять включає 32 регістри загального призначення (GPR), об'єднаних в файл, і службові регістри вводу/виводу. І ті й інші розташовані в адресному просторі ОЗП, але не є його частиною. В області регістрів вводу/виводу розташовані різні службові регістри (реєстри управління мікроконтролером, регістри стану тощо), а також регістри управління периферійними пристроями, що входять до складу мікроконтролера. По суті, управління мікро контролером полягає в управлінні цими регістрами. Для довготривалого зберігання різної інформації, яка може змінюватися в процесі функціонування мікроконтролерної системи, використовується EEPROM- 9 пам'ять. Всі AVR мають блок енергонезалежної електрично перезаписуваної пам'яті даних EEPROM від 64 Байт до 4 КБ. Цей тип пам'яті, доступний програмі мікроконтролера безпосередньо в ході її виконання, зручний для зберігання проміжних даних, різних констант, коефіцієнтів, серійних номерів, ключів тощо. EEPROM може завантажуватися ззовні як через SPI інтерфейс, так і за допомогою звичайного програматора. Число циклів стирання/запис - не менше 100 тис. Внутрішня оперативна статична пам'ять Static RAM (SRAM) має байтовий формат і використовується для оперативного зберігання даних. Розмір оперативної пам'яті може варіюватися у різних чіпів від 64 Байт до 4 КБ. Число циклів читання і запису в RAM не обмежена, але при відключенні напруги живлення вся інформація втрачається. Для деяких мікроконтролерів можлива організація підключення зовнішнього статичного ОЗП об'ємом до 64К. Периферія мікроконтролерів AVR включає порти (від 3 до 48 ліній вводу і виводу), підтримку зовнішніх переривань, таймери-лічильники, сторожовий таймер, аналогові компаратори, 10-розрядний 8-канальний АЦП, інтерфейси UART, JTAG і SPI, пристрій скидання по зниженню живлення, широтно-імпульсні модулятори. Порти вводу/виводу AVR мають число незалежних ліній «вхід / вихід» від 3 до 53. Кожна лінія порту може бути запрограмована на вхід або на вихід. Потужні вихідні драйвери забезпечують струмову навантажувальну здатність 20 мА на лінію порту (вхідний струм) при максимальному значенні 40 мА, що дозволяє, наприклад, безпосередньо підключати до мікроконтролера світлодіоди і біполярні транзистори. Загальна струм навантаження на всі лінії одного порту не повинен перевищувати 80 мА (для напруги живлення 5 В). Архітектурна особливість побудови портів вводу/виводу у AVR полягає в тому, що для кожного фізичного виводу (піна) існує 3 біти контролю/управління, а не 2, як у поширених 8-розрядних мікроконтролерів (Intel, Microchip, Motorola). Це дозволяє уникнути необхідності мати копію вмісту порту в пам'яті для безпеки і 10 підвищує швидкість роботи мікроконтролера при роботі з зовнішніми пристроями, особливо в умовах зовнішніх електричних перешкод. Система переривань - одна з найважливіших частин мікроконтролера. Всі мікроконтролери AVR мають багаторівневу систему переривань. Переривання припиняє нормальний хід програми для виконання пріоритетного завдання. Для кожного такого завдання розробляється окрема програма, яку називають підпрограмою обробки запиту на переривання (для стислості - підпрограмою переривання), і розміщується в пам'яті програм. При виникненні запиту, що викликає переривання, мікроконтролер зберігає вміст лічильника команд, перериває виконання центральним процесором поточної програми і переходить до виконання підпрограми обробки переривання. Після виконання підпрограми переривання здійснюється відновлення попередньо збереженого лічильника команд і процесор повертається до виконання перерваної програми. Для кожної події може встановлюватися пріоритет. Поняття пріоритет означає, що виконувана підпрограма переривання може бути перервана іншим запитом тільки за умови, що він має вищий пріоритет, ніж поточний. В іншому випадку центральний процесор перейде до обробки нового запиту тільки після закінчення обробки попереднього. Мікроконтролери AVR мають у своєму складі від 1 до 4 таймерів/ лічильників з розрядністю 8 або 16 біт, які можуть працювати і як таймери від внутрішнього джерела тактової частоти, і як лічильники зовнішніх подій. Їх можна використовувати для точного формування тимчасових інтервалів, підрахунку імпульсів на виводах мікроконтролера, формування послідовності імпульсів, тактування приймача послідовного каналу зв'язку. У режимі ШІМ (PWM) таймер/лічильник може являти собою широтно-імпульсний модулятор і використовується для генерування сигналу з програмованою частотою. Таймери / лічильники здатні виробляти запити переривань, перемикаючи процесор на їх обслуговування з запиту і звільняючи його від необхідності періодичного опитування стану таймерів. Оскільки основне застосування мікроконтролери 11 знаходять в системах реального часу, таймери/лічильники є одним з найбільш важливих елементів. Сторожовий таймер (WatchDog Timer) призначений для запобігання катастрофічним наслідкам від випадкових збоїв програми. Він має свій власний RC-генератор, що працює на частоті 1 МГц. Як і для основного внутрішнього RCгенератора, значення 1 МГц є наближеним і залежить перш за все від величини напруги живлення мікроконтролера і від температури. Аналоговий компаратор (Analog Comparator) порівнює напруги на двох виходах (пінах) мікроконтролера. Результатом порівняння буде логічне значення, яке може зчитуватися з програми. Вихід аналогового компаратора можна включити на переривання від аналогового компаратора. Користувач може встановити спрацювання переривання по наростаючому чи спадаючому фронту або з переключення. Аналого-цифровий перетворювач (АЦП) служить для отримання числового значення напруги, поданого на його вхід. Цей результат зберігається в регістрі даних АЦП. Який з виходів (пінів) мікроконтролера буде входом АЦП, визначається числом, занесеним до відповідного регістру. Універсальний асинхронний або універсальний синхронно / асинхронний приймач (Universal Synchronous / Asynchronous Receiver and Transmitter - UART або USART) - зручний і простий послідовний інтерфейс для організації інформаційного каналу обміну мікроконтролера із зовнішнім світом. Здатний працювати в дуплексному режимі (одночасна передача і прийом даних). Він підтримує протокол стандарту RS-232, що забезпечує можливість організації зв'язку з персональним комп'ютером Послідовний периферійний трьохпровідний інтерфейс SPI (Serial Peripheral Interface) призначений для організації обміну даними між двома пристроями. За його допомогою може здійснюватися обмін даними між мікроконтролером і різними пристроями, такими, як цифрові потенціометри, ЦАП / АЦП, FLASH-ПЗП та ін. За допомогою цього інтерфейсу зручно проводити обмін даними між 12 декількома мікроконтролерами AVR. Крім того, через інтерфейс SPI може здійснюватися програмування мікроконтролера. Двопровідний послідовний інтерфейс TWI (Two-wire Serial Interface) є повним аналогом базової версії інтерфейсу I2C фірми Philips. Цей інтерфейс дозволяє об'єднати разом до 128 різних пристроїв за допомогою двобічної шини, що складається з лінії тактового сигналу (SCL) і лінії даних (SDA). Інтерфейс JTAG був розроблений групою провідних фахівців з проблем тестування електронних компонентів (Joint Test Action Group) і був зареєстрований як промисловий стандарт IEEE Std 1149.1-1990. Інтерфейс JTAG використовується для тестування друкованих плат, внутрішньосхемного налагодження, програмування мікроконтролерів. Багато мікроконтролери сімейства Mega мають сумісний з IEEE Std 1149.1 інтерфейс JTAG або debugWIRE для вбудованого налагодження. Крім того, всі мікроконтролери Mega з флеш-пам'яттю ємністю 16 кбайт і більше можуть програмуватися через інтерфейс JTAG. Тактовий генератор виробляє імпульси для синхронізації роботи всіх вузлів мікроконтролера. Внутрішній тактовий генератор AVR може запускатися від декількох джерел опорної частоти (зовнішній генератор, зовнішній кварцовий резонатор, внутрішній або зовнішній RC-контур). Мінімальна допустима частота нічим не обмежена (до покрокового режиму). Максимальна робоча частота визначається конкретним типом мікроконтролера і вказується Atmel в його характеристиках, хоча практично будь-який AVR-мікроконтролер із заявленою робочою частотою, наприклад, в 10 МГц при кімнатній температурі легко може «розганятися» до 12 МГц і вище. Система реального часу (RTC) реалізована у всіх мікроконтролерах Mega і в двох кристалах «classic» - AT90 (L) S8535. Таймер / лічильник RTC має окремий переддільник, який може бути програмним способом підключений або до джерела основної тактової частоти, або до додаткового асинхронного джерела опорної частоти (кварцовий резонатор або зовнішній синхросигнал). Для цієї мети 13 зарезервовані два виводи мікросхеми. Внутрішній осцилятор оптимізований для роботи з зовнішнім кварцовим резонатором 32,768 кГц. AVR функціонують при напрузі живлення від 1,8 до 6,0 Вольт. Струм живлення в активному режимі залежить від величини напруги живлення і частоти, на якій працює мікроконтролер, і становить менше 1 мА для 500 кГц, 5 ... 6 мА для 5 МГц і 8 ... 9 мА для частоти 12 МГц. AVR можуть переводитися програмним шляхом в один з трьох режимів зниженого енергоспоживання. Режим холостого ходу (IDLE). Припиняє роботу тільки процесор і фіксується вміст пам'яті даних, а внутрішній генератор синхросигналів, таймери, система переривань і «черговий» таймер продовжують функціонувати. Струм споживання не перевищує 2,5 мА на частоті 12 МГц. Стоповий режим (POWER DOWN). Зберігається вміст реєстрового файлу, але зупиняється внутрішній генератор синхросигналів, зупиняються всі функції, поки не надійде сигнал зовнішнього переривання або апаратного скидання. При включеному «черговому» таймері струм споживання в цьому режимі складає близько 80 мкА, а при вимкненому - менше 1 мкА. (Всі наведені значення справедливі для напруги живлення 5 В). Економічний режим (POWER SAVE). Продовжує працювати тільки генератор таймера, що забезпечує збереження тимчасової бази. Всі інші функції відключені. Схема BOD (Brown-Out Detection) відстежує напругу джерела живлення. Якщо схема включена, то при зниженні живлення нижче деякого значення вона переводить мікроконтролер в стан скидання. Коли напруга живлення знову збільшиться до порогового значення, запускається таймер затримки скидання. Після формування затримки внутрішній сигнал скидання знімається і відбувається запуск мікроконтролера. 14 2 Розробка схеми пристрою 2.1 Огляд існуючих аналогів В якості прототипу розглянемо пристрій «Автомат регулювання швидкості обертання вентиляторів і контролю температури в п'яти точках» (рисунок 2.1). Конструкція призначена для автоматичного плавного регулювання швидкості обертання вентиляторів. Пристрій дозволяє контролювати температуру в п'яти точках і виводити отримане значення температури на дворядковий знакосинтезирующий рідкокристалічний дисплей. Користувач може задати окремо для кожного каналу: температуру виключення вентилятора; температуру, при якій обороти вентилятора будуть максимальні (максимальна температура) температуру, при перевищенні якої спрацьовує звуковий сигнал. Рисунок 2.1 – Автомат регулювання швидкості обертання вентиляторів і контролю температури в п'яти точках і 15 Пристрій зібраний на мікроконтроллері фірми Microchip PIC16F876. В якості датчиків температури використовуються цифрові датчики DS18B20, точність виміру температури 0,10С. Мікроконтроллер змінює частоту обертання вентиляторів, використовуючи широко-імпульсну модуляцію. В якості ключів управління вентиляторами використовуються потужні p-канальніе МОН транзистори IRF9Z34N. Для повнішого відкривання і виключення ушкодження МК вихідні транзистори підключені до мікроконтроллера через малопотужні nканальні МОН транзистори 2N7000. Після подачі живлення на мікроконтроллер запускається тактовий генератор МК і починає працювати програма керування. Через секунду після включення відбувається ініціалізація знакосинтезируючого РК дисплею, для надійного запуску двигунів вентиляторів на виходах RB0 - RB4 виставляється високий рівень, відбувається запуск вентиляторів з повною напругою живлення 12В. Потім на індикаторі з'являється назва пристрою, в цей час МК дає команду на перетворення температурним датчикам. Приблизно через півтори секунди з'являється значення виміряної температури, потім МК, виходячи з виміряної температури і значень максимальної температури, обчислює період ШІМ і подає на відповідний вихід обчислену послідовність імпульсів. Пристрій починає працювати в робочому режимі. У першому рядку індикатора відображається температура першого каналу у вигляді SENS1=xx.xxxC і якщо датчик не підключений або несправний, то відображається SENS1 (рисунок 2.2). У другому рядку відображаються послідовно один за одним значення температури каналів 2-4 у вигляді SENSn=xx.xxxC, де n=2.4. Якщо датчик відключений, його назва і значення не відображається, напруга на виході такого каналу без датчика дорівнює +12 В (тобто вихідний транзистор відкритий). Сюди можна підключити вентилятор, обороти якого регулювати не потрібно або нічого не підключати. У прошивці (за умовчанням) задані наступні налаштування для кожного з каналів : 16 − максимальна температура T max - 80 С (при якій обороти вентилятора максимальні, тобто транзистор відкритий повністю); − температура відключення вентилятора T off - 20 C; − температура тривоги T alarm - 100 C (звучить зумер BA1). Рисунок 2.2 – Відображення роботи пристрою на РК дисплеї Користувач може змінити налаштування, увійшовши до меню налаштування. Для цього необхідно натиснути і утримувати кнопку SB1. Кнопками SB2 і SB3 робиться збільшення і зменшення значення, що відображається. Перехід до наступного значення відбувається по натисненню SB1. Після перегляду і коригування введені значення зберігаються в енергонезалежній пам'яті МК і прочитуються при подальшому включенні. Під час знаходження в меню температура з датчиків не зчитується і підпрограма розрахунку ШІМ працює з останнім значенням температури. Коригування температури можливе тільки в ділянці плюсових температур. Крім того, значення максимальної температури T max можна встановити 255 С, це зроблено, щоб мати можливість плавніше регулювати обороти вентилятора. Тут потрібно врахувати, якщо під час роботи вентилятор зупинятиметься, не слід встановлювати занадто мале значення T max, оскільки вентилятор може і не стартувати після зупинки. Режим старт-стоп вентилятора необхідно підбирати експериментально. Чим більше розмір вентилятора, тим більший повітряний потік він може створити при меншій кількості оборотів. Основною відмінністю проектованого пристрою від розглянутого прототипу є спосіб відображення поточної температури у вибраній точці і потужності відповідного вентилятора. За рахунок використання матричних світлодіодних 17 індикаторів досягається наочність інформації, що відображається, і незалежність від освітленості приміщення. 2.2 Розробка структурної схеми Основними елементами в управлінні тепловим режимом будуть вентилятори, які і робитимуть охолодження у вибраних точках, управління ними здійснюватиметься шляхом зміни їх напруги живлення за допомогою керуючих ключів. Регулювання напругою на базі транзистора здійснюватиме мікропроцесор з блоку управління, подаючи ШІМ сигнал з шпаруватістю, залежною від температури у відповідній точці. ШІМ сигнал фільтрується і згладжується фільтром низьких частот, виконаним на RC-колі. Пристрій управління робить опитування і налаштування датчиків температури по інтерфейсу 1 - wire, з точністю до 0,5 С. При досягненні в якійнебудь з точок виміру температури 45 С, робиться запуск відповідного вентилятора (його потужність встановлюється на рівні 2% від максимальної), далі при збільшенні температури на кожні 0,5 С, потужність вентилятора росте на 2%, і так до 70 С. Для індикації режиму роботи пристрою використовуватиметься блок (табло з набору світлодіодних матричних індикаторів). Для повноти сприйняття інформації знадобиться 10 світлодіодних матричних індикаторів: 2 для відображення символу вентилятора і його номера, 3 для виведення потужності відповідного вентилятора (0 - 100%); 2 для відображення датчика температури і його номера, і ще 3 для індикації температури датчика з точністю до 0,5 С. Спосіб індикації тексту на табло динамічний, тобто в певні моменти часу відображатиметься один з блоків світлодіодів, позиції засвічених стовпців світлодіодів визначатимуться регістрами зсуву, підключеними по одному до кожного зі знакомісць. Між собою регістри зсуву підключаються послідовно, вихід попереднього на вхід наступного, до входу першого підключено виводи мікропроцесора, до кожного з регістрів паралельно підключений тактовий сигнал 18 заведений від іншого виводу мікропроцесора. Контроль над формуванням тексту на табло блоку індикації робиться пристроєм, що управляє. Блок пристрою управління перемінно запалюватиме кожний з блоків світлодіодів і в той же час заносити потрібну інформацію в регістри зсуву, таким чином формуючи текст на табло. Для перегляду режиму роботи кожного вентилятора передбачена кнопка перемикання табло, при натисненні якої на табло виводитиметься інформація по наступному датчику і вентилятору. До складу проектованого пристрою увійдуть наступні блоки (рисунок 2.3): − ПУ - пристрій управління − БІ - блок індикації − БВ - блок вентиляторів − БДТ - блок датчиків температури. Рисунок 2.3 – Структурна схема пристрою 2.3 Розробка принципової схеми пристрою Виготовлення пристрою розпочалось з вибору елементної бази та креслення схеми пристрою. Електронно принципова схема пристрою зображена на рисунку 2.4 Для функціонування мікроконтролера до його виводів VCC, AVCC, GND потрібно підключити живлення, кварцовий резонатор ZQ1 потрібно підключити до 19 виводів XTAL1, XTAL2 і через конденсатори С5, С6 на землю, так само вивід RESET повинен бути підключатися до живлення. Рисунок 2.4 – Електрична принципова схема пристрою До виводів PC0 - PC3 мікроконтролера підключаються виходи даних DQ датчиків температури DD13 - DD16, а так само резистори R12-R15 до живлення 5 В. Так як максимальне споживання струму однієї світлодіодної матриці 30 мА, а в пристрої використовується 10 таких матриць HG1-HG10, то загальне споживання складе близько 300 мА, а для управління включенням одного ряду буде потрібно не менше 30 мА, максимальний струм через один вивід мікропроцесора становить 7 мА, отже, для управління включення рядів табло потрібно підключити 10 транзисторних ключів VT5-VT11. Резистори R5-R11 служать для обмеження напруги, що подається на базу транзисторних ключів з виводів мікропроцесора. Для включення потрібних рядів світлодіодних матриць використовуються регістри зсуву DD3-DD13 (74LS164). 20 Для перемикання режимів роботи керуючого пристрою використовуються кнопка SB1 підключена до виводу PB3 мікроконтролера, і використовується для перемикання вікна, в якому відображаються параметри швидкості обертання вентиляторів MA1 - MA4, і температури з датчиків температури DD13 - DD16. Виводи мікроконтролера PB3 - PB7 використовують внутрішні резистори. Управління швидкістю обертання вентиляторів проводитися через виводи PA0 - PA3, на яких формуються ШІМ сигнали з регульованою шпаруватістю, через фільтри нижніх частот представляють собою RC - кола (R1 і C1, R2 і C2, R3 і C3, R4 і C5), виділяються постійні складові ШІМ сигналів, які регулює силу струму на транзисторах VT1, VT2, VT3, VT4 і відповідно напругу живлення на вентиляторах MA1, MA2, MA3, MA4. 21 3 Вибір елементної бази 3.1 Мікросхема мікроконтролера В якості керуючого пристрою вибрано мікроконтроллер фірми AVR. Для уточнення моделі, треба визначитися з якою кількістю виводів має бути корпус мікросхеми, так само важливо підібрати модель з достатнім об'ємом пам'яті програм, розробленої програми, що перевищує об'єм, мінімум на 25%, з урахуванням доопрацювання і удосконалення. Так само цей мікроконтроллер повинен мати модуль ШІМ і можливість переривання по таймеру для реалізації управління вентиляторами. Оскільки для роботи із зовнішніми пристроями задіяно 24 виводи, то виберемо мікроконтроллер ATmega16, він має 32 лінії входи /виходи, що більше ніж у ATmega8 (23) і менше ніж у інших моделей (ATmega162 - 35), так само у нього достатній об'єм пам'яті (16 кбайт при об'ємі розробленої програми 2,8 кбайт), наявний модуль ШІМ і таймери (рисунок 3.1). Рисунок 3.1 – Схема контактів ATmega16 Короткі характеристики мікропроцесора ATmega16 : − 32 8-розрядних регістра загального призначення; 22 − 16 Кбайт внутрисистемно програмованої Flash пам'яті (In - System Self Programmable Flash); − забезпечує 1000 циклів стирання / запису; − 512 байт EEPROM; − забезпечує 100000 циклів стирання / запису; − 1 Кбайт вбудованої SRAM; − вбудована периферія; − два 8-розрядні таймери / лічильника з окремими дільниками, один з режимом порівняння; − один 16-розрядний таймер / лічильник з окремим дільником і режимами захоплення і порівняння; − лічильник реального часу з окремим генератором; − чотири канали PWM; − 8-канальний 10-розрядний аналого-цифровий перетворювач; − 8 несиметричних каналів; − байт-орієнтовний 2-канальний послідовний інтерфейс; − програмований послідовний USART; − послідовний інтерфейс SPI; − вбудований RC -генератор, що калібрується; − внутрішні і зовнішні джерела переривань; − виводи I/O; − 32 програмовані лінії вводу / виводу; − 40-вивідний корпус PDIP і 44-вивідний корпус TQFP; − робоча напруга: 4,5 – 5,5 В (ATmega16); − робоча частота: 0 – 16 Мгц (ATmega16). 23 3.2 Регістр зсуву 74LS164 74LS164 - 8-ми розрядний регістр зсуву з послідовним входом і паралельним виходом (рисунок 3.2). Послідовні дані вводяться через елемент І з двома входами. У мікросхемі передбачений вивід скидання (MR), якщо встановити його в низький рівень, регістр обнулится, робота виводу скидання не залежить від тактового сигналу. Рисунок 3.2 – Регістр зсуву 74LS164 Характеристики регістра зсуву 74LS164: − частота тактового сигналу до 35 МГц; − асинхронне скидання; − послідовна шина вхідних даних; − повна синхронізація переданих даних; − напруга живлення від 3,5 В до 5,5В; − максимальний струм 100 мА. 3.3 Датчик температури DS18B20 Для контролю температури використовуємо Датчик температури DS18B20 (рисунок 3.3). Цей цифровий термометр обмінюється даними по 1-Wire шині і при цьому може бути як єдиним пристроєм на лінії, так і працювати в групі. Всі процеси на шині управляються мікропроцесором. Діапазон вимірювань від -55С до + 125С і точність 0.5С. DS18B20 може живитися напругою лінії даних, при відсутності 24 зовнішнього джерела живлення. Кожен DS18B20 має унікальний 64-бітний послідовний код, який дозволяє, обмінюватися даними з безліччю датчиків DS18B20 встановлених на одній шині. Такий принцип дозволять використовувати один мікропроцесор, щоб контролювати кілька датчиків DS18B20, розподілених за великим ділянці. Рисунок 3.3 – Датчик температури DS18B20 64-бітний ROM запам'ятовує унікальний послідовний код приладу. Оперативна пам'ять містить 2-байтовий температурний регістр, який зберігає значення температури по закінченню температурного перетворення, два однобайтових регістра контролю температури (тригерної схеми TH і TL), і регістр конфігурації. Регістр конфігурації дозволяє користувачеві встановлювати роздільну здатність цифрового перетворювача температури до 9, 10, 11, або 12 біт, це і впливає на час конвертації температури. TH, TL і регістри конфігурації енергонезалежні (EEPROM), таким чином, вони збережуть дані, коли прилад вимкнений. DS18B20 використовує виключно 1-Wire протокол - при цьому формується з'єднання, яке здійснює комунікацію на шині, використовуючи всього один керуючий сигнал. Шина повинна бути підключена до джерела живлення через резистор, оскільки всі пристрої зв'язані з шиною, використовують з'єднання через Z-стан або вхід відкритого стоку. Використовуючи цю шину мікропроцесор ідентифікує і звертається до датчиків температури, використовуючи 64-бітний код 25 приладу. Оскільки кожен прилад має унікальний код, число приладів, до яких можна звернутися на одній шині, фактично необмежено. Інша особливість DS18B20 - здатність працювати без зовнішнього живлення. Ця можливість надається через резистор. Високий сигнал шини заряджає внутрішній конденсатор (CPP), який живить прилад, коли на шині низький рівень. Цей метод носить назву «Паразитне живлення». При цьому максимальна вимірювана температура становить + 100 °C. Для розширення діапазону температур до +125 °C необхідно використовувати зовнішнє живлення. 3.4 Додаткові компоненти Світлодіод ws2812b, це інтелектуальне світлодіодне джерело світла, в якому інтегровані схеми керування та чіп RGB. Напруга живлення 5В. Струм живлення 20 mA на кожен колір. Зовнішній вигляд світлодіоду зображено на рисунку 3.4. Рисунок 3.4 – Світлодіод ws2812b 26 Кварцовий резонатор Технічні характеристики кварцового резонатора: - резонансна частота: 16 МГц; - навантажувальна ємність: 32 пФ; - точність налаштування dF/Fх10-6: 50; - робоча температура: мінус 20…70 С; - температурний коефіцієнт Ктх10-6: 50. Зовнішній вигляд кварцового резонатора зображено на рисунку 3.5. Рисунок 3.5 – Кварцовий резонатор 16 МГц Для виготовлення пристрою потрібні конденсаторів різної ємності. SMD конденсатор полярний з номінальна ємністю 0.1 мкФ. Допустимим відхиленням від номіналу є ± 10%. З номінальною напругою 16В. Робоча температура знаходиться в діапазоні від мінус 55 ° C до + 125° C. Зовнішній вигляд зображено на рисунку 3.6. Рисунок 3.6 – Керамічний конденсатор 0.1 мкФ SMD конденсатор з номінальна ємністю 0.1мкФ, 10 мкФ, 22 пФ. Має номінальну напругу 16В. Присутні властивості діелектрика. Зовнішній вигляд зображено на рисунку 3.7. 27 Рисунок 3.7 – SMD конденсатор В схемі використовується тактова кнопка KLS7-TS6611-1.5-180, спрямована на чотири виводи. Робоча напруга 1 В, максимальне напруга 24 В. Робочий струм 0,05 А. Опір ізолятора 100 МОм, опір контактів 0,1Ом. Робоча температура в межах від мінус 35°С до + 85°С. Зовнішній вигляд кнопки зображено на рисунку 3.8. Рисунок 3.8 – Тактова кнопка KLS7-TS6611-1.5-180 28 4 Розробка структури алгоритму керування 4.1 Опис середовища програмування Програмування мікроконтролера Atmega16 використовується компілятор CodeVisionAVR. Для прошивки необхідно відкрити меню Projeckt – Config – AftMake і встановити прапорець біля чекбоксу "Program the chip". З’явиться вікно програмування/прошивки AVR (рисунок 4.1). Рисунок 4.1 – Вікно програмування/прошивки AVR В цьому вікні необхідно встановити параметри програмування – Fuse Bit та Lock Bit. Після налаштування параметрів програмування натиснути Program All. Після компіляції програми у вікні з результаттами компіляції стане доступна кнопка Program – необхідно натиснути на неї, рісля чого виконається програмування мікроконтролера, тобто файл *.hex буде завантажений в пам'ять 29 МК. Після цього МК буде «скинутий» і AVR почне виконувати завантажену програму. 4.2 Розробка алгоритму програми Графічне зображення алгоритму у вигляді блок-схеми широко використовується перед етапом розробки програмного коду внаслідок його наочності, тому що зорове сприйняття звичайно полегшує процес написання програми, її корегування за наявності помилок, розуміння процесу обробки інформації . Рисунок 4.2 – Алгоритм роботи програми 30 Алгоритм описує роботу програми (рисунок 4.2): - налаштуваня портів; - ініціалізація таймера; - ініціалізація датчика температури; - зчитування з датчиків температури; - установка потужності вентиляторів; - вивід інформації на табло. 31 Висновки В результаті виконання курсової роботи розглянуто основні типи мікроконтролерів, основні вузи мікроконтролерів AVR та зокрема мікроконтролер Atmega16, розглянуто парметри та особливості використаних елементів. Cпроектовано пристрій управління тепловим режимом: розроблена структурна схема та принципова електрична схема, розроблено алгоритм роботи програми для мікроконтролера Atmega16. Швидкість обертання вентиляторів, а, отже, і повітряний потік змінюється в залежності від температури, яка вимірюється чотирма датчиками температури DS18B20. Весь процес роботи відображається на табло, яке складається з 10 матричних світлодіодних індикаторів. Озроблений пристрій можна інтегрувати в різні вузли автомобіля, комп’ютера, тощо. Пристрій має невеликі розміри і його можна сумістити з живленням 5 В та 12 В. Табло індикації можна вивести в зручне для користувача місце. 32 Перелік посилань 1 ATmega16 Pin Diagram | ATmega16 Block Diagram & Description. URL: https://www.electronicsforu.com/resources/learn-electronics/atmega16-pin-diagram-3 (дата звернення: 08.06.2019) 2 Автомат регулирования скорости вращения вентиляторов и контроля температуры в пяти точках. URL: https://radiokot.ru/circuit/digital/pcmod/08/ (дата звернення: 08.06.2019) 3 Архітектура мікропроцесорного ядра мікроконтролерів AVR. URL: https://life-prog.ru/ukr/view_arhitektura.php?id=5 (дата звернення: 08.06.2019) 4 Вентилятор на Arduino Uno, управляемый с помощью температуры. URL: https://microkontroller.ru/arduino-projects/ventilyator-na-arduino-uno-upravlyaemyj-spomoshhyu-temperatury/ (дата звернення: 08.06.2019) 5 Всё о прошивке AVR микроконтроллеров. URL: http://rfanat.qrz.ru/s21/AVR.htm 6 Микроконтроллеры AVR фирмы “ATMEL”. URL: http://proga- school.narod.ru/MK_ATMEL/MK_AVR_ATMEL.htm (дата звернення: 08.06.2019) 7 Структура микроконтроллера Atmega и Arduino. URL: https://shemu.ru/cifrovueshemu/420-atmega-arduino (дата звернення: 08.06.2019) 8 Универсальный охлаждения блок управления автомобиля. электровентилятором ШИМ-контроллер https://www.drive2.com/b/503852853769535879/?page=0 системы 3.0. (дата URL: звернення: 08.06.2019) 9 УПРАВЛЕНИЕ ВЕНТИЛЯТОРАМИ ПК. URL: http://www.chipinfo.ru/literature/radio/200209/p20.html (дата звернення: 08.06.2019) 10 Управляем вентилятором с помощью Arduino. URL: http://digitrode.ru/computing-devices/mcu_cpu/139-upravlyaem-ventilyatorom-spomoschyu-arduino.html (дата звернення: 08.06.2019) 11 УСТРОЙСТВО МИКРОКОНТРОЛЛЕРОВ AVR. https://myrobot.ru/stepbystep/mc_architecture.php (дата звернення: 08.06.2019) URL: