Дипломен проект

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 33

МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА

ПРОФЕСИОНАЛНА ГИМНАЗИЯ “ГЕН. ВЛАДИМИР ЗАИМОВ” гр. СОПОТ


4330 гр. Сопот, ул. ”Иван Вазов” №1, тел./факс: /03134/ 83-31, 83-32, e-mail:pgzaimov@yahoo.com

ДИПЛОМЕН
ПРОЕКТ

Тема: Проектиране на термометър със сензор за


температура TMP36 и течнокристален дисплей

Ученик: Александър Антоанетов Бейнов

Професия: код 481020 „Системен програмист“


Специалност: код 4810201 „Системно програмиране“

Консултант: инж. Константин Колев

Сопот, 2023 г.
СЪДЪРЖАНИЕ

Увод……………………………………………………………………………………3 стр.

Цел и задачи на разработката………………………………………………………..4 стр.

ГЛАВА I .…………………………………………………………………………….4 стр.

1.1. Предпоставка за създаване на продукта……………………………………….4 стр.


1.2. Съществуващи решения и реализации………………………………………...5 стр.

ГЛАВА II………………….…………………………………………………………8 стр.

2.1. Избор и описание на развойна платка…………………………………………8 стр.


2.2. Описание на развойната среда……………………………………………….. 11 стр.
2.3. Изчертаване на блокови схеми на алгоритмите……………………………...14 стр.
2.4. Описание на алгоритмите……………………………………………………..16 стр.

ГЛАВА III…………………………………………………………………………..17 стр.

3.1 Описание на използваните модули…………………………….……………....17 стр.


3.2 Изчертаване и описание на блок схема на връзките………………………….24 стр.
3.3 Изчертаване и описание на принципна електрическа схема………………...25 стр.
3.4 Схема на опитна постановка…………………………………………………...26 стр.
3.5 Резултати и тестове от реализирания експериментален модел……………...27 стр.

ЗАКЛЮЧЕНИЕ…………………………………………………………………....28стр.

4.1 Обобщение на постиженията в дипломната работа………………………….28 стр.


4.2 Приложение на разработката…………………………………………………..29 стр.
4.3 Тенденции за усъвършенстване на разработката…………………………….29 стр.

ИЗПОЛЗВАНИ ТЕРМИНИ И СЪКРАЩЕНИЯ………………………………31 стр.

ИЗПОЛЗВАНА ЛИТЕРАТУРА………………………………………………….32 стр.


Увод

За да се осигурят икономични и безопасни условия на труд в енергетиката,


металургичната, химическата промишленост и в други сфери на живота, е необходимо
да се заложи на използване на съвременни и прецизни методи и средства за
измерване на величини, характеризиращи производствения процес. Температурата е
характеристика на почти всеки производствен процес, което определя многообразието
на използвани методи и средства за нейното измерване. За да се измери точно
температурата, е необходимо правилно да се построи съответстващата й измервателна
система, като се отчетат всички влияещи фактори. Научно-технологичният прогрес в
областта на електротехниката би могъл да улесни голяма част от процесите, които се
извършват ежедневно в сферата на индустрията.

Макетът, включващ сензор за температура и течно кристален дисплей, е


измервателен уред, отчитащ температурата на заобикалящата го среда в реално време.
Това се случва благодарение на самия сензор за температура. Измерените от него
стойности се препращат към дисплея, на който в последствие се показват реалните
температурни стойности. Като термометърът има функцията да извежда стойностите
в три вида величини (Целзий, Фаренхайт и Келвин).

В днешно време термометрите намират приложение навсякъде в нашия живот и


са неизменна част от нашето ежедневие. Използват се, например, за научни цели, в
домакинството, в индустрията и други. Също така имат и много разновидности според
своето предназначение и устройство. Пример за това са термометрите за: измерване
на телесна температура, температура на въздуха, водата и други. Широкото им
приложение ги изправя пред проблема, че не всички термометри са изработени, така
че да има възможност те да бъдат използвани за повече и по-разнообразни цели.

За изработването на проекта е използван сензор за температура, който е


предназначен за измерване на температурните стойности на въздуха в реално време.
За подобряването на проекта е използван и течно кристален дисплей, като неговата
цел е да изобразява стойностите, измерени от сензора в градуси по Целзий, Келвин и
Фаренхайт. Този вид термометри могат да бъдат направени от различни видове
конструкции, с подходящи елементи, които имат същото действие и предназначение.

Предстои да се запознаем с всички видове компоненти, използвани за създаване


на проекта. Те са: Arduino Nano (развойна среда), сензор за температура TMP36,

3
течно кристален дисплей SSD1306 по направление I2C, проводници женски към
женски, батерия с напрежение 9V и бутон за включване и изключване.

Към проекта се изработват и няколко вида схеми. Те са: принципна схема и


схема на опитна постановка. Такъв вид схеми могат да бъдат разработени на
различни програми. В случая тази програма се нарича Fritzing. Другият вид схеми са
блоковите схеми на алгоритъма и блок-схема на връзките. Те правят разработката
по-лесна за разбиране. Изработени са на програмата ClickChаrts.

Цели и задачи на разработката:


 Проектиране на изходен код за термометър със сензор и дисплей;
 Избор на подходящи елементи за макета;
 Проектиране на принципна електрическа схема;
 Реализиране на макет, демонстриращ поставените цели;

ПЪРВА ГЛАВА
ПРОУЧВАНЕ НА ПОТРЕБНОСТИТЕ, НУЖДИТЕ, ЦЕЛЕВА ГРУПА

1.1. Предпоставка за създаване на продукта

Основна предпоставка за създаването на проекта е, че той може да намери


много широко приложение освен в училищната среда и в домашни условия, в
метеорологични станции, научни изследвания и много други. Това го прави освен
интересен за широката аудитория от хора, но и също така много полезен в различни
области и аспекти на нашия живот. Това е необходимо условие при създаването на
всякакъв вид вградени системи, защото бързите темпове, с които се развива
човешкият живот, налагат нуждата от все по-модернизирани и автоматизирани
системи.

Всички искаме и се стремим в ежедневието си да получаваме възможно най-


бързо и достъпно информацията, от която се нуждаем. Това предразполага
изработването на такъв вид система, защото тя съчетава в себе си няколко различни
функционалности. Например, ако потребителят използва обикновен термометър, той
ще получи информация само за един вид температурна величина. Но, когато
използва такъв вид електронен термометър, освен че ще получи информацията по-

4
бързо, ще я получи и в три различни величини, в зависимост, за какво иска да ги
използва.

Главната цел на проекта е и да се провокира по-голям интерес към


електрониката. Тъй като в много училища започва да навлиза специалността
„Програмиране за вградени системи“, макет като този би привлякал вниманието на
учениците, които се занимават или имат интерес към програмирането в средата
Arduino. Поради достъпните компоненти, които се използват за реализирането му,
интересът, който би предизвикал и възможността да бъде изготвен като групов
проект в екип от няколко ученици или студенти, той може да бъде един добър старт
на тяхното приключение в света на програмирането и електрониката. Важно е, чрез
макети от такъв тип да се развива интересът на учениците и да ги провокира да искат
сами да изготвят свои проекти, които биха могли да бъдат от голяма полза за
обществото и за бъдещите поколения.

Освен че е полезен и интересен, проектът е и практичен, може да бъде променян


лесно спрямо нуждите и целите, за които ще бъде използван. Например, ако ще се
използва в по-тежки метеорологични условия, лесно може да се подобри цялостната
му устойчивост и размери. Ако пък бъде използван в домакинството или в домашни
условия, той ще бъде практичен, лесен за използване и няма да заема излишно
място. Това е много важно, защото в бъдеще почти всичко, ще трябва да бъде лесно
модифицирано за нуждите на крайния потребител.

Друга предпоставка за реализирането на идеята за термометъра със сензор е


това, че стойностите, измерени от сензора в градуси по Целзий, могат лесно да бъдат
преобразувани в друг вид величина за температура. Това се постига, чрез кода, който
използва специална формула, чрез която да се преобразуват градусите по Целзий в
другите две величини за температура. Това го прави достъпен за всички хора и във
всички сфери на живота ни, независимо от величината, в която искаме да бъде
измервана температурата на въздуха. Това е важна предпоставка, заради бързите
темпове на развитие на света около нас и нуждата от все по-практични и лесни за
използване уреди.

1.2. Съществуващи решения и реализации

Термометърът е уред за измерване на температура. За тази цел термометрите


използват различни физични свойства, като: температурното разширение (на газове,
5
течности или твърди вещества), електрическото съпротивление или излъчваната
светлина. Те са търсени навсякъде в различни сфери от живота на хората. Тяхното
широко разпространение ги прави конкурентни на пазара и колкото по-точни и
прецизни са, толкова по-търсени ще бъдат в индустрията и в домакинството.

Повечето термометри имат един и същ минус. Той е, че много от тях измерват
само в един вид мерна единица. Например, само в градуси по Целзий. Такива уреди
са най-широко разпространени. Те може да бъдат открити във всеки дом с цел
измерване на стайната температура. Тяхното предназначение е най-често за
измерване на температурата на въздуха или температурата на тялото. Също така те
могат да бъдат използвани в кулинарията, но до определени градуси. Използват се
още и в медицината, металургията, метеорологичните станции и много други.

Има много видове термометри, които могат да бъдат групирани в три основни
категории, според устройството и начина им на действие:

- Стъклени термометри на база течност или живак;


- Дигитални термометри (фиг.1.1);
- Инфрачервени термометри.

При живачните термометри течността се разширява с нормална, измерима


скорост, когато се нагрява. Те са били най-точните на пазара, но имат един
съществен недостатък- живакът е опасен за здравето на човека и лесно може да се
стигне до ситуации, в които да се застраши човешкия живот. Освен това,
термометрите на база течност или живак, могат да бъдат ограничени от вида на
използваната течност. Живакът, например, става твърдо вещество при -38,83 градуса
по Целзий. Съответно термометрите не могат да измерват температури под тази
точка.

Друг вид термометър е течният. Той използва свойството на течностите да се


разширяват при повишаване на температурата и да се свиват при намаляването ѝ.
Тези термометри са евтини и надеждни, но не са подходящи за измерване на резки
температурни промени. Разширяването и свиването на течностите в тях изисква
определено техническо време. При тях също понякога се прибягва до използването
на живак, което отново го прави опасен за употреба.

Електронните термометри работят с инструмент, наречен терморезистор.


Терморезисторът променя съпротивлението си спрямо електрическия ток в
6
зависимост от температурата. Компютър измерва съпротивлението на
терморезисторът и го преобразува във величина за температура. Дигиталните
термометри са базирани върху отчетливата промяна на електрическото
съпротивление при промяна на температурата на някои вещества. Според
използвания елемент, електронният термометър бива два основни вида:
с терморезистор и с термодвойка.

Фигура 1.1 Дигитален безконтактен термометър

Инфрачервеният термометър, е базиран върху различното инфрачервено


излъчване, според различната температура. Тъй като използва светлина, този вид
термометър няма нужда от допир до измервания обект, тоест той е безконтактен.

Има и термометри, които са проектирани така, че да измерват температурата


само във Фаренхайт. За това е и създаден този проект. Към макета се пише код с
методи, чиято цел е да направят така, че едновременно температурата да се измерва
в три различни мерни единици.
Те са:
- Целзий;
- Фаренхайт;
- Келвин;

Освен това, чрез сензора, измерващ температурните стойности, температурните


промени във въздуха ще бъдат отчетени много по-бързо, отколкото с обикновените
термометри. Целта е да се подобри работата на широката аудитория от хора с такъв
тип термометри, така че тя да бъде възможно най-бърза, улеснена и практична.
7
ВТОРА ГЛАВА ОПИСАНИЕ НА РАЗВОЙНАТА СРЕДА И
АЛГОРИТМИТЕ НА РАЗРАБОТКАТА

2.1. Избор и описание на развойна платка

[1] За реализиране на проекта развойната платка, която е избрана е Arduino Nano.


Платката (Фиг. 2.1) представлява интегрирана среда за разработка с отворен код,
който поддържа програмните езици C и C++. Платформата е съвместима с голям
брой сензори, датчици, термостати, изпълнителни устройства и други. Тя е
изградена на базата на микроконтролера ATMega328, но с по-малък размер и може
да се използва в различни проекти.

Фигура 2.1 Ардуино нано

Arduino Nano е друга версия, чрез която могат да бъдат разработени много
проекти на Arduino. Въпреки че развойната среда е с по-малки размери, тя крие
много възможности. С нея могат да бъдат създадени множество проекти, в които е
важно да се запази потреблението и размера на разстояние. Платката е съвместима
с всички видове електронни компоненти. Няма ограничения от какъвто и да е вид,
освен максималните ограничения на тока и напрежението, които поддържа.
Подобно на всички Arduino и съвместими платки, тя има прилики с други свои по-
стари версии, въпреки че има и някои уникални и различни технически
характеристики от останалите. Тя е функционално подобна на Arduino UNO, с

8
разлики в размера и решението за позиционирането на USB порта. Друга разлика е,
че за свързване на устройства към платката е предвиден щепсел под формата на
игли. Броят на краката на тази платка е един и същ, но се наблюдава, че
микроконтролерът е направен в по-компактен пакет TQFP32, ADC6 и ADC7, а
другите два „допълнителни“ крака дублират захранващата шина. Всички 14
цифрови щифта (крака) могат да бъдат конфигурирани като вход или изход, с
помощта на функции като pinMode(). Използва се във void setup() за да
конфигурира определен пин като вход (INPUT) или изход (OUTPUT).

Arduino разполага и с много други функции. Например функцията


digitalWrite(). Тази функция задава логическо ниво HIGH или LOW (включва или
изключва) определен пин. В тази функция има два параметъра: пинът, на който е
свързано даденото устройство и стойноста, която ще присвои. Пинът може да се
определи като променлива или константа. Пиновете работят при напрежение
5V. Всеки щифт има издърпващ резистор от 20-50 kOhm и може да премине до 40
mA.

Друга функция е digitalRead(), която отчита прочетеното от определен цифров


пин и връща като резултат HIGH или LOW. Но за разлика от digitalWrite(), тук има
само един параметър и това е номерът на самия пин. Както и при другите видове
функции пиновете могат да се определят като два вида: константа и обикновена
променлива. Тези две функции са за цифрови устройства, които се свързват към
дигиталните пинове на развойната среда. За аналоговите устройства функциите са:
analogRead() и аnalogWrite()

9
Фигура 2.2 Структура на Arduino Nano

На Фигура 2.2 се виждат всички изходни аналогови и дигитални пинове на самата


платка. Също така се вижда и захранващото напрежение, което в случая е 3.3V-5V.
Такъв тип платки използват mini или micro USB към USB. Чрез него кода се качва на
развойната платка. За изработването на макета, сензорът е свързан към аналогов пин,
защото самото устройство е аналогово. Използван е и проводник за комуникационната
шина I2C към дисплея.

Фигура 2.3 Pinout и лист с данни

На това изображение може да се види Pinout или предразположението на


щифтовете и връзките, които предлага тази среда за разработка. Въпреки размерите
на платката тя има толкова пинове, колкото по голямата версия- Arduino Uno.
Понякога даже има и в един аналогов пин в повече, но това зависи от версията на
платката. Самата версия Arduino Nano е по-практична от останалите за
изработването на такъв тип проекти заради своите компактни размери.

 Предимства на Arduino Nano

 Главното предимство на този вид платка е това, че е с малки размери;


 Подходяща платформа за начинаещи;
10
 Лесен за използване и добре поддържан хардуер;
 Проста IDE с много примери
 Наличен хардуер за почти всяка функция
 Малкият размер я прави идеална за компактни проекти;
 Функционира по същия начин като останалите версии;
 Побира се върху breadboard, което улеснява създаването на прототипи;

 Намира голямо приложение;

 Недостатъци на Arduino Nano

 Ограничената памет на борда може да затрудни сложните програми;


 Хардуерът е ограничен за по-сложни задачи;
 Ограничена функционалност;

Технически характеристики:

 Микроконтролер: ATmega328P-AU / U;
 Тактова честота: 16 MHz;
 Работно напрежение: 5v;
 Flash памет: 32 KB (от която 2 KB са използвани за бутлоудъра);
 SRAM: 2 KB;
 EEPROM: 1 KB;
 8 Aналогови входа: A0 ~ A7;
 14 Цифрови входно/изходни (I/O) порта: TX, RX, D2 ~ D13;
 6 PWM - ШИМ порта: D3, D5, D6, D9, D10, D11;
 Входно напрежение за Vin порта: 7 - 12v;
 Max. консумация на ток за I/O портовете: 40 mA;
 Max. напрежение за I/O портовете: 5v;
 Размери: 45mm x 18mm;
 Тегло: 7gr;

2.2. Описание на развойната среда

11
[2] Arduino е проект с отворен код и едноименна компания, произлязла от него,
както и свързаното с него потребителско общество. Основната цел е проектирането
и производството на електронна платформа с лесен за ползване свободен хардуер
и софтуер, позволяващи постигането на интерактивност за неспециалисти.

Arduino са микроконтролерни развойни платки. Тя се състои от 8-битов Atmel


AVR микроконтролер с допълващи се компоненти, които улесняват
програмирането и включването в други вериги. Важен аспект на платформата, е
наличието на стандартни конектори, позволяващи свързването на CPU платката
към голям набор от различни, взаимнозаменяеми модули, наречени шилдове.

Повечето Arduino платформи функционират с 5V работно напрежение и


разполагат с 14 цифрови входно-изходни порта, 6 аналогови входа, 16 MHz
кварцов, четири светодиода, USB конектор, захранващ куплунг, бутон за
рестартиране и ICSP конектор. Свързването с компютър става посредством USB
кабел USB-A/USB-B.

Електронните платки могат да бъдат закупени или готови, или като „направи си
сам“ комплекти, като схемите им са свободно достъпни за всеки, който би искал да
ги сглоби сам. Проектът е основан на семейство платки с микроконтролери,
произвеждани главно от SmartProjects, Италия, както и редица други доставчици,
които използват различни 8-битови (AVR) микроконтролери или 32-битови
(ARM) процесори Atmel.

Осигурени са групи от цифрови и аналогови щифтове за вход-изход (I/O),


които позволяват свързване с други платки и вериги. Платките включват сериен
комуникационен интерфейс, а при някои модели и USB, за зареждане на програми.
С оглед програмирането на микроконтролерите, Arduino платформата
предоставя интегрирана среда за разработка (IDE), основана на езика за
програмиране- Processing, който поддържа програмните езици C и C++.

Първата платка Arduino е представена през 2005 г. Екипът на проекта иска да


предостави на любители, ученици и професионалисти евтин и лесен начин да
създават устройства, способни да взаимодействат с околната среда
чрез сензори и изпълнителни устройства. Обичайни примери са създаването на
прости роботи, термостати и датчици за движение. В средата на 2011 година са
произведени приблизително 300 000 комерсиални Arduino устройства, а през 2013
година броят им нараства до 700 000.
12
Основната структура на езика за програмиране на Arduino е относително
проста и се състои от поне две части. Тези две задължителни части (или функции)
обгръщат блокове изявления. Тук setup() е подготовката, а loop() е изпълнението. И
двете функции са задължителни, за да работи програмата. Функцията setup() трябва
да е след декларирането на променливи, което се прави в самото начало на
програмата.

Тя е първата функция, която се изпълнява, протича само веднъж и служи, за да


зададе pinMode (режим на пиновете) или да стартира серийната комуникация
(Serial.begin()).

Функцията loop() се изпълнява втора и съдържа код, който се изпълнява


продължителен период от време – отчита показания от пиновете, пуска сигнали до
пиновете и т.н. Тази функция е ядрото на всяка Arduino програма и изпълнява
повечето задачи.

Функцията setup() се повиква веднага щом програмата тръгне. Тя трябва да


бъде включена в програмата дори ако не съдържа никакви изявления. След като
функцията setup() е повикана, loop() функцията прави точно това, което името и
подсказва че ще прави – цикли постоянно и позволява на програмата да се променя,
да реагира и да контролира Arduino платката.

Другите среди използвани за разработката са програмите Fritzing и ClickCharts.


Fritzing е безплатен софтуер с отворен код за разработване на аматьорски или хоби
CAD софтуер за проектиране на електронен хардуер, предназначен да позволи на
дизайнери и художници да изграждат по-постоянни вериги от прототипи. Той е
разработен в университета за приложни науки в Потсдам и е написан на езика за
програмиране C++. Софтуерът предоставя много функции и електронни
устройства, които да бъдат използвани. Освен това е идеален за проекти, базирани
на платки Arduino.

Софтуерът за диаграми и блок-схеми на ClickCharts улеснява създаването и


представянето на процеси или други диаграми. Блок-схемите предоставят уникален
начин за организиране и показване на данни, така че дори много детайлните и
сложни процеси да са по-лесни за разбиране. Това прави безплатния софтуер

13
ClickCharts за блок-схеми идеален метод за отстраняване на проблеми, както и
ефективен начин за споделяне на информация.

 Ардуино Нано предлага три вида комуникационни протоколи, показани в


таблицата по-долу:

Не. Комуникационни протоколи Описание


6 1(Pin#0 e RX,
Сериен порт Pin#1 e TX)
7 1(Pin#A4 e SDA,
I2C порт Pin#A5 e SCL)

8 1(Pin#10 e SS,
SPI порт Pin#11 e MOSI,
Pin#12 e MISO,
Pin#13 e SCK)

На таблицата са показани всички комуникационни шини, които Arduino Nano


предлага. В най-дясната колона от таблицата са описани пиновете, чрез които
свързваме проводниците към дадена комуникационна шина.

2.3. Изчертаване на блокови схеми на алгоритмите

14
Начало

Дефиниране
на Изчакване 1
променливи и секунда
константи

Прочитане
на данните Температура
от сензора в Келвини

Температура
Температура
във
в Целзий
Фаренхайт

Фигура 2.4 Блок схема на алгоритъма


Блок-схемите представляват диаграми, които се използват за изготвяне и
записване на алгоритми, за да бъдат изпълнени и да се постигне съответен
резултат. Състоят се от геометрични фигури, всяка от които има определено
значение. В тези фигури се въвеждат данните, с които трябва да работи
изпълнителят на алгоритъма.

На блоковата схема е обяснено действието на макета. Чрез нея може да се


разбере предаването на данните от сензора. Блоковите схеми служат за описание на
изходния код. Те са много полезни, защото се илюстрира и обяснява как един готов
продукт като макет трябва да се изпълнява. Стрелката, която е използвана в
последния блок се връща в блока за прочитане. Това действие означава, че
алгоритъмът се връща, за да извърши прочитането на стойностите и в другите две
мерни единици: Фаренхайт и Келвин.

 Дефиниране на променливи

15
Дефиниране
на
променливи и
константи

Фигура 2.5 Блок на дефиниране Фигура 2.6 Дефинирани променливи

На фигура 2.3 се вижда дефинирането на константите. Използваните константи в кода,


който се вижда на Фигура 2.4 служат за:

 Константа за дефиниране на дължината на дисплея;


 Константа за дефиниране на широчината на дисплея;
 Константа за рестартиращ бутон(reset);
 Константа за направление по I2C

 Прочитане на данните от сензора

Прочитане
на данните
от сензора

16
Фигура 2.7 Блок на прочитане Фигура 2.8 Прочитане на данните

Сензорът прочита стойностите като входни данни, които се придават към дисплея. На
фигура 2.8 се виждат зададените променливи за Целзий, Фаренхайт и Келвини. Той взима тези
данни, прочита ги и ги придава визуално на дисплея, който ги изобразява. Float celsius,
fahrenheit и kelvin са променливите. Свойството, чрез което сензорът взима стойностите за
всяка една мерна единица е: getTemp();

 Стойности на температурата

Температура
в Целзий

Фигура 2.9 Блок за Целзиий Фигура 2.10 Стойности за Целзий

В този блок е показан алгоритъмът, чрез който температурата се измерва в


Целзий. Сензорът прочита дадените стойности, след което те се изобразяват на
дисплея. За деклариране на температурата в Целзий е използвна променливата
float. Тя се използва за малки дробни числа и е с размер четири байта. За да може
резултатите да са видими на дисплея се използва функцията print() и println().

В първата функция, целта е да се изписва буквата C за Целзий и до нея на


същия ред измерената температура. Това е целта и на втората функция. По същия
начин температурата се измерва във Фаренхайт и Келвини. Макетът работи така, че
ако се усети повишаване на температурата и трите вида стойности се покачват.
Също така и в обратен ред, но ако температурата се понижава.

ТРЕТА ГЛАВА
17
3.ОПИСАНИЕ НА РЕАЛИЗИРАНИЯ ЕКСПЕРИМЕНТАЛЕН МОДЕЛ

В света на електрониката, програмирането на вградени системи започва да


добива популярност и да става много разнообразно, забавно, интересно и с
образователна цел. Например, проектирането на такъв макет ще провокира
интерес у хората, които искат да започнат да се занимават с електроника или искат
да направят свой собствен макет с помощта на средата за разработка Arduino.

Тъй като има разнообразие от различни модули и платки, подходящи за


изработването на полезни и креативни проекти. Основните модули за направата на
макета са: сензор за температура, дисплей, бутон, батерия, проводници и платка
Arduino Nano.

3.1 Описание на използваните модули

 Сензор за температура

Фигура 3.1 Сензор за температура TMP3


Сензорът или още датчикът е първичен преобразувател на физични или химични
въздействия в удобен за използване електрически сигнал. Тези устройства
представляват неизменна част от системите за автоматизирано управление и
регулиране. Разликата при сензора спрямо измервателния уред, е че сензорът сам
по себе си няма зададени предварително фиксирани стойности на отчитаната
величина. Той обикновено е част от системата на много измервателни уреди, но не
работи самостоятелно. За да се възприеме информацията от него, първо е

18
необходимо неговият сигнал да бъде усилен и разчетен в системата. Сензорите са
интегрирани в множество устройства, които използваме всеки ден.

Сензорът TMP36 е аналогов температурен сензор за работа с ниско


напрежение. Този вид сензор се свързва лесно към микроконтролери или други
елекрически вериги. Чрез него се измерват стойности на температурата на
заобикалящата го среда в реално време. Той разполага с три изходни пина:+Vs,
Vout и GND.

Пина +Vs се свързва към 5V за захранващо напрежение. GND(ground) пина се


свързва с GND на платката, която може да бъде Arduino Nano, Arduino Uno и др.
Последния пин, който се нарича Vout се свързва към аналогов пин.

Технически характеристики:

 Работа при ниско напрежение (2,7 V до 5,5 V);


 Калибриран директно в °C;
 10mV/°C коефициент на мащабиране (20mV/°C на TMP37);
 Специфицирани -40°C до +125°C, работа до +150°C;
 По-малко от 50µA ток на покой;
 Ток на изключване 0,5µA макс;
 Ниско самонагряване;
 Квалифициран за автомобилни приложения;

Течно кристален дисплей

19
Фигура 3.2 SSD1306

Този дисплей е подходящ за целта на проекта, защото е компактен и лесен за


употреба. SSD1306 е едночипов CMOS OLED/PLED драйвер с контролер за
полимерно излъчване на светлина диодно матрична графична дисплейна система.
Тази IC е предназначена за OLED панел с общ катод. SSD1306 включва контрол на
контраста, RAM на дисплея и осцилатор, което намалява броя на външни
компоненти и консумация на енергия. Има 256-степенен контрол на яркостта.
Данните или командите се изпращат от общ MCU чрез хардуерно избираем
паралелен интерфейс, съвместим със серия 6800/8000, с интерфейс или сериен
периферен интерфейс. Подходящ е за много компактни преносими приложения,
като например поддисплей на мобилен телефон, MP3 плейър, калкулатор и др.
Този вид дисплей разполага с портове за I2C и SPI. За целта на проекта е използван
портът I2C, с цел намаляване на броя на използваните проводници.

 Описание на пиновете на SSD1306

Дисплеят има няколко вида пинове. Те са: Vdd, Vcc, Vss. Това е само малка
част на пиновете, с които дисплея разполага.
-Vdd е пин, който служи за захранване за работа на основната логика.
-Vcc служи за захранващо напрежение, което зависи от вида на платката.
-Vss служи за свързване към GND или така нареченият Ground пин.
Vcc и Vdd са пинове с положителни мощностни напрежения, докато Vss е с
отрицателно напрежение или е свързан към GND.

20
Технически характеристики на дисплея:

 Разделителна способност: 128 x 64 матричен панел


 OLED управляващо изходно напрежение, максимум 15 V
 Максимален източник на ток на сегмента: 100uA
 Общ максимален ток на поглъщане: 15mA
 256-стъпков контрол на текущата яркост на контраста
 Вграден 128 x 64 битов SRAM дисплей буфер
 Избираеми MCU интерфейси:
 или 8-битов паралелен интерфейс от серия 6800/8080
 или 3/4 жичен сериен периферен интерфейс
 Функция за непрекъснато превъртане за запазване на екрана както в хоризонтална,
така и във вертикална посока
 Сигнал за синхронизиране на запис в RAM
 Програмируема скорост на кадрите и съотношение на мултиплексиране
 Широк диапазон на работна температура: -40°C до 85°C

Проводници

Фигура 3.3 Проводници ж/ж

[3] Проводниците са специално произведени електроинсталационни изделия за


провеждане на електрическия ток за съединителни силови и информационни
вериги. Общото название на тези монтажни елементи е електрически проводници,
но на практика за тях се използва само популярното наименование проводници.
21
Джъмперите са електронни елементи, които позволяват отваряне или
затваряне на електрическа верига чрез клеми. Те са много популярни за свързване
на множество модули и устройства към платка Arduino, за свързване на бутоните за
нулиране и захранване към дънната платка на компютър, за проекти върху макетни
платки като алтернатива на заваряването за лесен монтаж и демонтаж и др.

Те са основният елемент при изграждането на преносни и разпределителни


линии за високо и ниско напрежение, електрически инсталации, както и за
свързване на активни и пасивни електрически и електронни елементи в апаратура
от всякакъв характер или при изграждането на двигатели и изпълнителни
механизми, използващи електрическа енергия. Първото и основно качество на
проводниците е да имат голяма електрическа проводимост и използването им да не
внася загуби на енергия в електрическите уредби, апаратура и електротехническа
изделия.

Джъмперите могат да бъдат женски към женски (ж/ж) в двата края, мъжки към
мъжки (м/м) или мъжки към женски (м/ж). За целите проекта най-подходящи са
джъмперите ж/ж.

 Бутон

Фигура 3.4 Бутон за включване и изключване на дисплея

Ключът, използван в електротехниката или още прекъсвач, превключвател,


или изключвател, е ръчно управляван механичен или електронен комутационен

22
елемент, който се използва в електрическите уредби за включване, изключване или
превключване на електрически вериги за битови уреди и апарати и осветление.

Ключът обикновено конструктивно е създаден да работи с две възможни


състояния. За специални нужди, например, за табла, служещи за управление на
машини и процеси, се произвеждат и такива с неутрално състояние на превключващия
механизъм. Най-обикновеният електрически ключ е ръчно управлявано
електромеханично устройство за създаване или прекъсване на електрическа връзка.

Най-често бутоните и превключвателите се монтират на управляващ панел в


отвор и се фиксират чрез гайка от задната страна на панела. Електрическото им
присъединяване е чрез запояване. Превключвателите, в зависимост от броя контакти и
начина им на превключване, имат различни начини на означение. Най-простият е
двупозиционният ключ (ON-OFF). Означението му е SPST.

 Захранване на развойната платка

Фигура 3.5 Батерия 9V

Захранването е чрез 9 волтова батерия, която се свързва към развойната платка, а именно
Arduino Nano. Това захранване е най-подходящо за този тип развойна платка.

 Видове батерии:

23
Поради разнообразните области на приложение с много различни изисквания
по отношение на напрежението, мощността и капацитета, днес има много видове
батерии. Те са диференцирани например според:

- химичния състав
- размера/дизайна
- електрически параметри (напрежение, капацитет и т.н.)

При този вид батерии има много названия, стандартизирани от IEC и някои
от ANSI, както и неофициални имена, особено за деветте най-често срещани
категории. В резултат на това една и съща характеристика на батерията може да
бъде определена с различни означения. Цилиндрични батерии, чиято обща
височина е по-малка от диаметъра ѝ, се означават като миниатюрни батерии.

 Според свойството си да бъдат зареждани или не:


- еднократни – първични батерии
- акумулаторни (зареждащи се) – вторични батерии

 Тенденции в развитието на батериите

Нанотехнологиите предлагат нови подходи за производството на нови типове


материали с непостижими дотогава свойства, оказали влияние в производството на
литиево-йонните батерии. Литиево-йонните батерии са най-използваният вид
батерии за потребителска електроника – използват се в преносими компютри,
мобилни телефони, музикални плейъри и дори електрически коли.

Друг клас батерии са тези, използвани за захранване на малки, предимно


преносими устройства, като часовници, радиостанции, играчки, фенерчета и др., но
и на постоянно монтирани устройства като напр. детектори за дим. Тези батерии
трябва да са компактни, да могат да се използват във всяка позиция, да са леки и
все пак механично здрави. При нормално съхранение и използване в устройството,
те не трябва да изтичат или да изпускат газ. Предлагат се в търговската мрежа в
различни версии на базата на цинк-въглерод или алкално-манган. Цинк-
въглеродните батерии стават все по-редки от 2000-те години и почти не се
произвеждат днес.

24
3.2 Изчертаване и описание на блок схема на връзките

Блок-схемите представляват диаграми, които се използват за изготвяне и


записване на алгоритми, за да бъдат изпълнени и да се постигне съответен
резултат. Състоят се от геометрични фигури, всяка от които има определено
значение. В тези фигури се въвеждат данните, с които трябва да работи
изпълнителят на алгоритъма.

I2C
OneWire Ардуино
TMP36 ssd1306
нано

Фигура 3.6 Схема на връзките

На блоковата схема е показан сензорът TMP36 към Arduino платката, който


предава данните. От Arduino платката данните се предават към дисплея SSD1306,
който ги изобразява чрез пиксели. На първия блок е изобразен сензорът, използван
за целта на разработката.

Над дисплея е представена неговата комуникационна шина, която е I²C. Тя е


синхронна,мулти-главна/мулти-подчинена (контролер/целева), пакетно
комутирана, единична, серийна комуникационна шина, изработена през 1982 г. от
Philips Semiconductors. Такъв вид шина се използва широко за свързване на по-
нискоскоростни периферни интегрални схеми към процесори и микроконтролери
25
при комуникация на къси разстояния в рамките на платката. Също така се използва
и с цел намаляване броя на използваните проводници.

3.3 Изчертаване и описание на принципна електрическа схема

Електрическите схеми представляват графично изображение на реалните


електрически вериги. Електронната схема може да бъде изобразена графично
посредством т.нар. „принципна електрическа схема“. Такова предварително
изчертаване на електронната схема и изчисление на електрическите вериги с
режимите на вградените компоненти, е необходимо за проектирането и позволява
изграждането на разработваното електронно устройство. Такива принципни
електрически схеми като сервизно описание или експлоатационна документация,
съпровождат всеки един проект, независимо от неговата сложност.

На Фигура 3.6 е представена принципна схема на макета, заедно с всички нужни


компоненти за реализиране на опитната постановка. Схемата е начертана на
програмата Fritzing. На схемата са представени платката Arduino Nano, сензор
TMP36, дисплей Ssd1306 и бутон за включване и изключване.

 Описване на връзките към всеки един компонент.


Свързване на сензора към платката. Сензора има 3 извода: GND, VOUT, VCC.
Извода GND е свързан с червен цвят към GND на платката Ардуино нано. Извода
VOUT е свързан с оранжев цвят с аналоговия пин А0. Изовда VCC е свързан със
сив цвят към 5V. Батерията, с напрежение 9V е свързана към бутона, а той е
свързан към VIN порта на платката.

 Свързване на дисплея към развойната среда.


Дисплеят е свързан към платката, за да може да изкарва резултатите от сензора,
които той измерва.

26
Фигура 3.7 Принципна схема

3.4 Схема на опитна постановка

Опитната постановка представлява система от изследван обект, технически


средства и човек-оператор. В резултат на тяхното взаимодействие се реализира
избраният метод на измерване и се получават търсените резултати.

На схемата на опитна постановка са илюстрирани всички компоненти на


макета. Виждат се и връзките между компонентите. Илюстрирани са и
захранващата батерия към платката и бутонът, чието предназначение е за
включване и изключване.

27
Фигура 3.8 Схема на опитна постановка

3.5 Резултати и тестове от реализирания експериментален модел

След написването на програмния код за макета и инсталирането на програмата, е


време да се провери функционалността му и работата на макета. За да работи
правилно, създадената програма, трябва да се напише правилен код, който:

- Да задава функция за правилно измерена температура в реално време;


- Да извежда крайния резултат на дисплея в Целзий, Фаренхайт и Келвин;

При правилно написан код, всички команди, които са зададени ще се реализират


и ще бъдат показани на дисплея.

28
Фигура 3.9 Външен вид на устройството

На изображението е показан вида на устройство. След като кода е качен на


платката, действието на макета става възможно и се извършва по определен начин.
Както се вижда на фигура 3.9, има определена подредба на самите стойности.
Техния ред е: Целзий(C:), Фаренхайт(F:) и Келвин(K:).

ЗАКЛЮЧЕНИЕ

4.1 Обобщение на постиженията в дипломната работа

 Обобщение

За реализирането на макета бяха изполвани следните компоненти:


- Платка Ардуино Нано;
- Сензор за температура;
- Дисплей;
- Бутон;
- Батерия 9V;
- Проводници;

29
Реализирането на макета беше постигнато чрез използваните компоненти и
програмния код, който се качва на платката Arduino Nanо. След това се наблюдава и
действието на макета. Като заключение, готовият термометър извършва всички
основни функционалности, които бяха взети под внимание при изработването му. А
именно:
- Да измерва температурата с помощта на сензор
- Да преобразува измерената температура в други величини
- Да извежда измерените стойности на дисплея

4.2 Приложение на разработката

Макетът може да намери приложение както в домашни условия (за измерване на


температурата на въздуха) и индустриални условия (в преработващият сектор,
метеорологичните станции и т.н.), така и в учебна среда. Като например във висши
учебни заведения и училища с насоченост към вградените системи, клубове по
електроника и роботика.

Чрез създаването на такъв макет, учениците ще разгледат и опознаят


интересната страна на електрониката и средата за работа на Arduino. Ще добият
умения за работа с различни електронни компоненти и ще обогатят знанията си по
програмиране на различни програмни езици (Processing, C, C++). Освен това, за да
бъде цялостен и завършен проектът, учениците ще трябва да придобият и знания по
електротехника, за да познават основните компоненти, които са използвани за целта
на проекта и начина им на свързване.

4.3 Тенденции за усъвършенстване на разработката

Много съвременни термометри са оборудвани с многофункционални сензори,


които могат да измерват температура, влажност и други фактори на околната среда.
Това позволява на протребителите да наблюдават условията в домовете или на
работните си места. Самите устройства стават все по-преносими и компактни,
30
което ги прави удобни за използване в движение. Много от термометрите са
достатъчно малки, за да се поберат в джоб или да се прикрепят някъде.

Към момента макетът, може да измерва температурните стойности в градуси по


Целзий, Фаренхайт и Келвини. Проектът може да се подобри, като му се добави
допълнителен сензор, измерващ влажността на въздуха. Също така може да се
напише код, с който е възможно изписването на часа, след което датата. Но за
добавяне на час е нужен часовник за реално време. Освен това може да бъде
изработван по различни начини с цел да се подобри ефективността му спрямо
целите, за които ще бъде използван. Например, може да бъде с по-малки или по-
големи размери, може да се работи над цялостната му издръжливост и към
издръжливостта на батерията.

За да може дисплеят да изписва всички данни е нужен по-голям дисплей. За


тази цел може да се използва друг вид модел за колони и редове 16x2. Сензорът,
използван в проекта може да бъде заменен от инфрачервен сензор с цел
подобряване на работата на макета. Такъв тип сензори могат да работят в по-голям
обхват. Тъй като все повече и повече устройства се захранват от батерии, нараства
акцентът върху подобряването на тяхната ефективност в термометрите.

Много съвременни термометри използват сензори и дисплеи с ниска мощност,


за да запазят живота на батерията по-дълъг. За целта на проекта са използвани
всички тези модули с цел да се подобри работата с такива устройства, измерващи
околните фактори. Също така и сензорът и дисплеят са с ниска мощност, за да
може захранващото напрежение от девет волта да бъде по-трайно. Ако те изискваха
по-голямо напрежение, това щеше да е голям консуматор и батерията би се
изхабила по-бързо от исканото. Затова при проекти с подобна цел, е подходящо
работата с такива модули. Причините са:

 По траен живот на батерията;


 По-лесна и разбираема работа с устройството;
 Широко разпространение и практично за ползване;
 Лесна работа с такъв тип модули;

31
ИЗПОЛЗВАНИ ТЕРМИНИ И СЪКРАЩЕНИЯ

В дипломната работа са използвани термини като:

I2C- Inter-Integrated Circuit

USB- Universal Serial Bus

IDE- integrated development environment

SPAM- static random access memory


EEPROM- Electrically erasable programmable read-only memory

PWM (pulse-width modulation)

ШИМ- широчинно импулсна модулация

AVR- An automatic voltage regulator

CPU- central processing unit

ICSP- In Circuit Serial Programming

ARM- Advanced RISC Machine

CAD- computer-aided design

SPI- The Serial Peripheral Interface

GND- Ground

SSD- Solid-State Drive

RAM- RANDOM ACCSES MEMORY

MCU- Microcontroller unit

SPST- Single Pole Single Throw

ANSI- American National Standards Institute

IEC- International Electrotechnical Commission

32
ИЗПОЛЗВАНА ЛИТЕРАТУРА

1. https://www.hwlibre.com/bg/;
2. http://enkov.com/arduino/;
3. https://erelement.com/proto-boards/wires-kit-40-f-f-10cm;
4. „Ардуино книжка за програмиране“;
5. https://bg.wikipedia.org/;

33

You might also like