Будь ласка, використовуйте цей ідентифікатор, щоб цитувати або посилатися на цей матеріал:
https://er.chdtu.edu.ua/handle/ChSTU/10307| Назва: | Програмований таймер |
| Автори: | Тичков, Володимир Володимирович Тихонов, Руслан Ігорович |
| Ключові слова: | програмований таймер-генератор;рідкокристалічний індикатор;гальванічна розв’язка;мікроконтролер PIC16F1517 |
| Дата публікації: | 8-чер-2026 |
| Короткий огляд (реферат): | Кваліфікаційна робота присвячена розробленню програмованого таймера-генератора для робототехнічних комплексів, який призначений для автоматичного вмикання та вимикання виконавчих пристроїв у заданий час, а також для підтримання встановленої температури в контрольованих середовищах. Такий пристрій може застосовуватися у робототехнічних системах, навчальних стендах, побутовій автоматиці, системах освітлення, нагрівання, вентиляції, волого-теплової обробки та інших процесах, де потрібне точне керування часом і температурою. Актуальність роботи зумовлена тим, що багато промислових і побутових таймерів мають обмежену функціональність: вони здебільшого керують лише одним зовнішнім пристроєм або виконують тільки функцію відліку часу. Для керування кількома пристроями необхідно застосовувати декілька окремих таймерів, що ускладнює систему, збільшує її вартість, габарити та кількість з’єднань. Запропонований таймер-генератор усуває цей недолік, оскільки дозволяє одночасно керувати вісьмома зовнішніми каналами та додатково підтримувати температуру по чотирьох незалежних каналах. У першому розділі роботи виконано аналіз існуючих типів таймерів. Розглянуто механічні таймери, які є простими й дешевими, але мають обмежений інтервал програмування, залежать від частоти мережі та припиняють роботу при зникненні живлення. Також проаналізовано електромеханічні таймери, які можуть працювати за добовим або тижневим циклом, але мають обмежену дискретність і механічні елементи, що з часом зношуються. Окремо розглянуто цифрові електронні таймери, які забезпечують програмне керування, кращу точність і можливість збереження параметрів. У технічному завданні визначено, що програмований таймер має працювати від мережі 220 В, 50 Гц, мати 8 робочих каналів, цикл програмування 24 години, дискретність завдання часу 1 хвилину, 99 програмованих подій, релейні комутуючі елементи, сумарне навантаження до 1 кВт і 4 канали регулювання температури. Для температурного регулювання передбачено використання нагрівальних елементів потужністю 200 Вт, а для збереження поточного часу при зникненні живлення — літієвий елемент CR1220. Габаритні розміри пристрою становлять 155×80×55 мм, що робить його достатньо компактним. У структурному плані пристрій побудовано як мікропроцесорну систему, центральним елементом якої є мікроконтролер PIC16F1517. До нього підключено кварцовий резонатор, датчики температури, органи керування, рідкокристалічний індикатор, блок живлення та блок керування зовнішніми пристроями. Кварцовий резонатор частотою 32768 Гц забезпечує стабільний відлік часу, а після поділу частоти формується секундний інтервал, необхідний для роботи таймера в режимі реального часу. Для відображення інформації та програмування режимів роботи застосовано алфавітно-цифровий рідкокристалічний модуль BC1602/WA1602L, який дозволяє показувати поточний час, стан реле, режими роботи каналів і задані температурні параметри. Органи керування реалізовані на п’яти кнопках, за допомогою яких користувач може встановлювати час, програмувати події, перемикати режими «автоматичний/ручний», вмикати або вимикати окремі канали та задавати температуру для відповідного температурного каналу. Температурний контроль реалізовано за допомогою датчиків DS18B20, які мають діапазон вимірювання від -55 до +125 °С і точність близько 0,5 °С у робочому діапазоні. Датчики підключаються паралельно до спільної шини даних, що спрощує схему та дозволяє реалізувати декілька каналів температурного контролю. У пристрої також передбачено можливість корекції похибки датчиків температури, що підвищує точність підтримання заданого режиму. Електрична принципова схема передбачає живлення від мережі 220 В через понижувальний трансформатор 220/12 В потужністю 4 Вт, випрямляч і стабілізатори напруги. Для живлення мікроконтролера використано стабілізатор LM78L05, а для живлення рідкокристалічного індикатора — перетворювач MC34063. Зовнішні пристрої вмикаються через реле К1–К8, а в температурних каналах як силові ключі використано симістори BTA140-600. Для гальванічної розв’язки кіл керування симісторами застосовано оптопари MOC3062, що підвищує електробезпеку та надійність роботи силової частини. У роботі передбачено розроблення програмного забезпечення для мікроконтролера, яке забезпечує збереження в енергонезалежній пам’яті подій, тривалості імпульсу, заданої температури та значень температурної корекції датчиків. Програмна логіка дає змогу реалізувати три типи подій: вмикання, вимикання та імпульс. Це робить пристрій гнучким для використання в різних робототехнічних і автоматизованих системах, де потрібне керування виконавчими механізмами за часом або за температурним режимом. У технологічній частині роботи розглянуто виготовлення друкованої плати та складання пристрою. Визначено, що таймер складається з двох плат розміром 73×134 мм і товщиною 5 мм. Технологічний процес включає виготовлення корпусу, монтаж елементів, паяння, складання та налагодження пристрою. Такий підхід забезпечує компактність, ремонтопридатність і можливість практичного виготовлення виробу в умовах лабораторії або дрібносерійного виробництва. У розділі охорони праці проаналізовано умови роботи в експериментальній лабораторії, де виконується розроблення програмованого таймера. Робота передбачає використання персонального комп’ютера, електронних компонентів, паяльного обладнання та вимірювальних засобів, тому увагу приділено електробезпеці, параметрам мікроклімату, освітленню, організації робочого місця, безпеці під час монтажу та налагодження електронної апаратури. Розглянуто також заходи щодо покращення умов праці, зокрема застосування сучасної системи кондиціонування та рівномірної підготовки повітря. Практичні результати роботи відрізняються від найближчих аналогів тим, що запропонований пристрій поєднує функції багатоканального таймера, генератора подій і регулятора температури в одному компактному виробі. У конструктивному плані він має 8 каналів керування зовнішніми пристроями, 4 температурні канали, індикатор, кнопковий інтерфейс, резервне живлення часу та енергонезалежне збереження параметрів. У технологічному плані пристрій реалізується на друкованих платах із доступною елементною базою. У соціо-екологічному плані він сприяє автоматизації процесів, зменшенню людського втручання, економії електроенергії та стабільнішому підтриманню температурних режимів. В економічному плані розробка дозволяє замінити декілька окремих таймерів і терморегуляторів одним універсальним пристроєм, що зменшує витрати на обладнання, монтаж і обслуговування |
| URI (Уніфікований ідентифікатор ресурсу): | https://er.chdtu.edu.ua/handle/ChSTU/10307 |
| Розташовується у зібраннях: | 174 Автоматизація, комп'ютерно-інтегровані технології та робототехніка (Робототехнічні системи та автоматизація) |
Файли цього матеріалу:
| Файл | Опис | Розмір | Формат | |
|---|---|---|---|---|
| Тихонов.pdf Restricted Access | КРБ Тихонов Р.І. 2026 | 2.66 MB | Adobe PDF | Переглянути/Відкрити Запит копії |
Усі матеріали в архіві електронних ресурсів захищено авторським правом, усі права збережено.
Extracted text
4EPKACbKMÄJ IEPKABHMİM TEXHOJIOrI4HHH YHIBEPCHTET
OAKYJIDTET EJEKTPOHHMX TEXHOJOiÄ, ABTOTPAHCIOPTY TA
MAIMHOBYIYBAHHA
KAOEJ|PA IPHJIAJIOBYJ|YBAHHA, MEXATPOHIKH TA
KOMII'IOTEPH3OBAHHX TEXHOJIOrIṁ
lorry ueHO AO 3aXMCTy
Beasiny Bava kapepu IIMKT
MaKcHM BOHIAPEHKO
2026 p.
IIOACHIOBAJIbHA3 AIIHCKA
I0K BAUIlOIKAIIHHOI POBOTH BAKAJIABPA
Ha TeMy «llporpaMOBAHHĂ Ta ňMep»
BuKOHaB 3106yBay ocBİTH 4 Kypcy, rpynıu 3PCA-25cK3
cIneLlaTbHICTb: 174 «ABTOMaTH3auia, KOMn'IOTepHo
iHTerpoBaHİ TeXHOIOrii Ta poõoTOTeXHİKa»
OCBITHA iporpaMa: PoooTOTexHİ4Hİ CHCTeMH Ta
aBTOMaTH3alIIA
THXOHOB PycnaH IropoBHY
KepisHMK BononHMHD THYKOB
PeueH3eHT TpHropiň THMYHK
KBanidikauižHa poőoTa őakanaBpa MICTHTb pesyNBTaTH BJJaCHHX 3106yTKİB aBTOpa.
BHKopHCTaHHA 1ne4, pesylbTaTIB 1 TeKCTIB IHUHX aBTOpIB MarOTb II0CHiaHHA Ha
BiInOBİIHe MKePeno.
YepkacH- 2026
UEPKACbKHŮ JLEPKABIHHÝ TEXHOJIOTI4HMH VHIBEPCHTET
( tone uitMeIN DauiM OO aNuUIt.OTO IKIDy
DakynbTCT CJICKTDOLuX TeXNOJIOTiL,
Kapexpa aBTOTDauciiODTY Ta
mpma/o6YAVBamIn, MaIHHO6YIVBaHHSA
MCxaTpoMiKU
OcoiTHb0-KBanichikauišHú piseub aKaJTaBp TA KOMIT' 1OTepw30BauHX TeXHoJTorii
CheuwlbHiCTb 174 «ABrOMATWanin, KOMIn'
OCBITHa 1OTCPH0-iITCrPOBAni
nporpaMa TeXHO1Oriï Ta
«Poố0TOTeXIHii poboroTeXHİKA»
CHCTeMM Ta aBTOMaTH3auis>
3ATBEPIDKYIO
B.o. 3apitygava kaheapu IIMKT
MaKcHM BoHJapeHKo
96 2026 pokKy
3 A BAA H HA
HA KBAJIIOIKAIÄHY POBOTY EAKAJIABPA
THxOHOBa Pycnana IropoBuya
(upisauIc, iM'A, io GabkoDi)
I. TeMa pooTH [IporpamOBaHHÝ TaMMep
KepiBHHK poõoTH A0T Kahenpu npunano6yIyBaHHA, MexaTpOHIKH Ta
KOMI IOTePH3OBaHHX TeXHOJIOriň, K.T.H., I0LeHT TuYKOB BononHMHp BoIONUMHPpOBHY
( upiseUỊe, iM'A, no 6ankoni, naykoBuŇC TyriIL, DTCNC IBaI)
3aTBepAKEHI Haka3OM BHIOrO HaByaIbHOrO 3akiay BII "13 KBÍTHA 2026 poKy No 94/03-03
2. CipoK NONaHHA 3A06yBayeM po6oTH 5 YepBHA 2026 p.
3. BuxINHİ MaHi n0 poố0TH HKI Iporpamy BaHHA TaŽMepa 24 roIHHH (106a):
AHCKpeTHICTB 3aBlaHHA 4acy - 1 XBHIHHa; KiJIbKICTH KaHaIB - 8 KaHaniB: cVMaDHa
3naTHÍCTB HaBaHTaxeHHA TaűMepa - I KBT, (220 B); nporpaMOBaHİ nOgii - BMHKaHHS.
BHMHKaHHA, İMIYIbC; KÜIbKİcTb IOAIÄ- 99 noniň; THI KOMYTYIOYOrO eNeMeHTa - pene:
KIIbKICTb KaHaiiB_ peryIkOaHHA TEMIeparypu - 4 kaHanH; noTyKHİCTH HarpiBanbHOrO
enemeHTa – 200 BT, (220 B); KHBNEHHA – 220 B, 50 Tu.
4. 3micT pozpaxyHKOB0-n01CHIOBAJIbHOÏ 3anHcKH (nepesiK NHTAHb, AKİ noTpiốHO
po3pooHTH 1OópyHTYBaHHA HeoŐXiIHoCTİ IpoeKTYBAHHA Ha oCHOBİ KpHTHYHOro
aHai3y Internet nouyKy; 2 O6pyHTYBaHHA TeXHİYHOro 3aBlaHHA; 3 Po3poóka
CTDyKTypHoi Ta npHHUHNOBOi CxeM; 4 Po3pooKa nporpaMHOro 3aõesmeyeHHA TažMepa
reHepaTOpa poooTOTeXHİ4HHX KOMIJIeKCIB; 6 CnenjaIbHHĂ po3nin. 6.1
TexHOJIoriYHHÄ po3I; 6.2 EKOHOMiYHHĂ po3AI; 6.3 Po3nin OXOPOHH
npaui
5. IlepeiK rpağiHoro MaTepiany (3 TOYHHM 3a3HaYEHHAM 060B'ABKOBHX KpecneHL)
IIporpaMOBAHňT aňMep. Cxema eneKTpHYHa cTpYKTYpHa (A1). EJIOK YnpaBniHHA
30BHİIHỈMH HPHCTPOAMH. CxeMa eleKTPHTHa npHHIHnOBa (A1) CKIalaNbHHĂ
KpecneHHK (A2)KpecneHHK ApYKOBaHOï IMaTH (A2). . EIoK MİKpoKOHTP0Jepa.
CxeMa eJIeKTpHYHa npHHHInOBa (A1). CKJanaJIbHHŇ KpecJIeHHK (A2).
IporpaMOBAHHÄ TaiMep-reHepaTop AIS POooTOTeXHİyHHX KOMIIeKCİB. KpecieHHK
ApVKOBaHo nIaTH (A2).
2
6. KoncybTan posniis Knamiqpikauiinoi poóorH
lIpi3vmuIc, iiiaUI Ta nocana inonc, JaTa
Posi pabnaHHSI 3aBlaHHA
KONCyJIbTaWTa DII/LaD ripninge
Oxopon npaui KoxeM°AKin O.C., crapuHi BHKJIajnaų
kaɖpenpu r35KEXJ
ExonoMivnni THYKOB B.B., nouerT Kadenpu IIMKT,
posain, K.T.H., IOUCHT
TeHONorinni
ponin
Hopvoniauiinnů THUKOB B.B., noueHT Kadhenpu IIMKT,
KOHTPo.JIb K.T.H., 1OLeHT
7. Mara BHMaYi 3aBlaHHA
KAJIEHIAPHMM IJIAH
No HasBa eTaniB KBanioikauiÄHOi Crpok BKOHAHHA IpmiTKa
3/n poõoTH eraniB poõoTH
O6rpyHTYBaHHA HeOŐxIJHOCTI NpoeKTYBaHHA Ha OCHOBI 02.2026 BHK
KpHTHYHOro aHai3y icHyIOYHX aHanoriB
OôrpyHTYBaHHA TeXHIYHOrO 3aBlaHHA 02.2026 BHK
3 Pospooka crpyKTypHoi CxeMH 02.2026 BHK
4 PospooKa npHHUHnOBOi eJIeKTpHYHO1i cxeMH 03.2026 BHK
Po3paXyHOK eJIeMeHTIB CXeMH 03-04.2026 BHK
6 OuiHKaT OYHOCTİ Ta HaniĂHOCTI 03-04.2026
TexHoNOriHnŭ po3Ain 03-04.2026 BHK
8 Po3niı oxopoHH ipaui 03-04.2026 BHK
EKOHOMiYHUÄp o3AiJI 03-04.2026 BHK
10 OhopMJneHHA KPecieHb 03-04.2026 BHK
11 OhopMIEHHA NOnaTKIB 05.2026 BHK
12 OpopmneHHA CYTpoBiNHoi 10KyMeHTaii 05.2026 BHK
3n06ysa BHUIOÏ oCBiTH Pycnan THXOHOB
KepisnnK po6oTM BoJIOJHMHP THUKOB
(nyụIHc
Вступ
Таймерні пристрої різних типів давно стали невід’ємною частиною побуту
та промисловості, забезпечуючи автоматизацію різноманітних процесів. Багато
завдань керування технологічними операціями потребують виконання в режимі
реального часу. Сучасні таймери дозволяють ефективно задавати інтервали
роботи обладнання, сигналізувати про завершення певних циклів тощо.
Відтак, застосування таймерів є надзвичайно актуальним як для
промислової автоматизації, так і для створення робототехнічних комплексів — чи
то на виробництві, чи в побуті. Яскравим прикладом є автоматизація процесів
волого-теплової обробки у швейній галузі. Найефективнішим методом
підтримання необхідного режиму такої обробки є використання автоматичного
регулювання температури та часу витримки.
Таймери самостійно включають електричні або механічні прилади.
Наприклад, вранці вони включають освітлення в акваріумі, ввечері вимикають
його. Експлуатація пристрою значно полегшує утримання акваріума. Мешканці
підводного світу, включаючи рослини, швидко пристосовується до циклічних
тимчасовим процесів: таймер позбавляє ваших вихованців від зайвих стресів.
Одним головним недоліком таймерів, які випускає промисловість є те що
вони можуть керувати тільки одним зовнішнім пристроєм. Для управління
декількома пристроями необхідна така ж кількість таймерів, що економічно не
вигідно для споживача. Ще одним з недоліків являється однофункціональність –
управління тільки відліками часу. При розробці таймера-генератора були
враховані вказані недоліки та було розроблено пристрій якій одночасно в
реальному часі керує до 8 зовнішніми пристроями та дозволяє підтримувати
встановлену температуру (керуючи нагрівачами чи вентиляторами) по 4
незалежним каналам.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 4
1 Обгрунтування необхідності проектування на основі критичного
аналізу Internet пошуку
Таймер — це пристрій або інструмент, призначений для відліку певних
часових інтервалів. Його можна розглядати як різновид годинника, що
використовується для керування послідовністю подій чи процесів. На відміну від
секундоміра, який веде відлік від нуля для вимірювання вже витраченого часу,
таймер працює за принципом пісочного годинника, відраховуючи час у
зворотному напрямку від заданого значення. За принципом дії таймери
поділяються на механічні, електромеханічні, електронні (кварцові) та програмні.
Найчастіше під таймером розуміють пристрій зі зворотним відліком, який
активується вручну або за допомогою електричного імпульсу. Окрім них, існують
таймери реального часу, які спрацьовують у точно визначений момент доби; такі
пристрої обов’язково містять вбудований годинник або механізм відліку часу.
Найпростішим прикладом такого таймера є звичайний будильник.
1.1 Механічний таймер
Якщо у вашому домі є прилади, які потребують періодичного ввімкнення
та вимкнення — наприклад, насоси, обігрівачі чи компресори, — розетки-таймери
допоможуть позбутися рутинної необхідності контролювати цей процес особисто.
За принципом роботи вони поділяються на механічні та електронні.
Механічні моделі простіші в обслуговуванні та налаштуванні, до того ж вони
дешевші, що забезпечує їм високу популярність. Однак такі пристрої мають певні
особливості, з якими варто ознайомитися ще до моменту придбання та початку
експлуатації.
Принцип дії:
Принцип роботи механічного таймера-розетки предсталений на рисунку
1.1.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 5
Рисунок 1.1 – Пристрій розетки з механічним таймером: 1-розетка, 2-
перемикач режимів роботи, 3-шкала часу, 4-програмовані клавіші, 5-показник
часу, 6-штепсель
Спосіб комутації електричних контактів у розетках-таймерах однаковий,
він механічний, через з’єднання провідників. Різниця лише в методі керування. В
електронних це виконують релейні схеми, які наглядаються процесором.
Основою механічних таймерів є пристрій, що забезпечує постійний обертовий
рух, який сприяє з’єднанню та роз’єднанню контактів.
У старіших таймерах, виготовлених років 30-40 тому, таким пристроєм був
механізм, подібний до годинникового, котрий складався із системи шестерень і
такий, що рухався спіральною пружиною. Зараз його замінено повільнохідним
імпульсним електродвигуном, що зробило прилад менш шумним, хоча і залежним
від зовнішнього джерела електрики.
Спосіб контролю комутації і виявив головний недолік механічних
рознімів-таймерів. У наявних зразках неможливо реалізувати програмування на
інтервал часу, довший за добу. В електронних же апаратах він може сягати тижня
чи місяця.
Стається це тому, що темп обертання виконавчого диска з контактом
залежить від передавального співвідношення редуктора, яке зменшує число
обертів за хвилину валу імпульсного електродвигуна.
Є методи змусити виконавчий диск робити повний оберт, наприклад, за дві
доби. Одне з них – ускладнити редуктор, зробивши більше шестерень у ньому.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 6
Інше – збільшити діаметр виконавчого диска. Проте – це розширений шлях
модернізації конструкції, що збільшує її габаритність. Тому його не
використовують.
Іншим недоліком механічних розеток-таймерів є залежність виконавчого
двигуна від зовнішньої енергії. Якщо частота змінного струму відрізняється від
номінальних 50 Гц, то вони або прискорюються, або сповільнюються. Крім того,
при аварійних вимкненнях електроенергії таймери механічні припиняють
працювати зовсім. В електронних розетках-таймери цього не трапляється,
оскільки вони обладнані резервним джерелом живлення – акумулятором.
Прив'язка механічного комутуючого пристрою до мережевої напруги може
бути і його перевагою. У разі аварійного вимкнення він однаково виконає свою
програму, але трохи пізніше. А от електронний комутатор не відчує відключення
від мережі. Контакти він замкне, а працював керований апарат чи ні – йому
байдуже.
1.2 Електромеханічний таймер
Електромеханічні таймери призначені для управління електроприладами за
розкладом. Використовується для включення/відключення освітлення і інших
електротехнічних пристроїв протягом добового або тижневого циклу за
встановленою програмою.
Реле часу має мінімальний інтервал програмування 15 хв, є вбудований
акумулятор з резервом ходу до 100 годин, а також, що можливість примусового
включення/відключення навантаження, простий в установці і надійний.
Механічний таймер невимогливий до навколишньої температури, тому Ви
можете використовувати його в холодних приміщеннях (гаражі, неопалювані
кімнати будинку або офісу, підсобки) для управління світлом або нагрівальними
приладами.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 7
Рисунок 1.2 – Електромеханічний таймер
Принцип дії:
Механічний добовий таймер має 96 міні-перемикачів-«пелюсток», кожен з
яких відповідає за свій 15(30)-хвилинний відрізок на 24-годинною шкалою. В ті
15(30) хвилин, коли відповідний «пелюстка» включений, прилад буде працювати.
Таймери механічні підключаються в розетку для управління побутовими
приладами можна придбати в будь-якому спеціалізованому магазині, ми ж
розглянемо промислові варіанти, що встановлюються на площину/DIN-рейку,
номінальний струм контактів 16 А.
Реле часу 1РВМ (одноканальне), 2РВМ (двоканальне) більше не
випускаються, натомість йдуть сучасні аналоги. На нашому сайті ви можете
знайти описи різних (механічних і електронних) реле часу в розділі каталогу
«Добові і тижневі реле».
Технічні характеристики:
-Напруга живлення: 230 В
-Точність ходу ± 1 сек/добу
-Споживана потужність: 1.8 ВA
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 8
-Кількість контактів: 1 перемикаючий
-Номінальний струм: 16 А
-Комутована напруга: 250 В
-Діапазон робочих температур: від - 10 °C до + 45 °C - мінімальна
температура згідно з досвіду використання даних пристроїв значно нижче.
-Кріплення реле: DIN-рейка/поверхня
1.3 Цифровий електронний таймер
Спроможне здійснювати програмне автоматичне керування освітленням та
іншими приладами з огляду на добовий дійсний час за таймером.
Такий апарат на сьогоднішній день буде доречним для збереження
електроенергії на освітлення, покращення роботи зовнішнього освітлення, для
різноманітних пристроїв та апаратури, які необхідно вмикати й вимикати в
однаковий час регулярно кожні добу, протягом багатьох тижнів, місяців. Таким
чином, відбувається економія і матеріальних засобів.
Рисунок 1.3 – Цифровий електронний таймер
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 9
Рисунок 1.4 – Електрична принципова схема цифрового таймера
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 10
2 Обґрунтування технічного завдання
Проаналізуємо вихідні дані нашої кваліфікаційної роботи. Ось так, згідно
із завданням, програмований таймер використовується для увімкнення та
вимкнення різних виконавчих пристроїв у визначений час, а також регулятор
температури для підтримання заданої теплоти. Працює при вихідній напрузі 220
В, 50 Гц. Літієвий елемент CR1220. Кількість робочих каналів 8 шт. Живлення
схеми становить 12 В. У роли індикатора виступає WA1602L, датчика
температури - DS18B20. (Maxim-Dallas). Розміри плати становлять ширина 73 мм,
довжина 134 мм, товщина 5мм, що є досить компактна в нашому випадку.
Можливість корекції похибки датчика температури. Збереження всіх
програмованих параметрів в незалежній пам’яті.
Технічні показники проекту:
Цикл програмування таймера - 24 години (доба).
Дискретність завдання часу - 1 хвилина.
Кількість каналів - 8 каналів.
Сумарна здатність навантаження таймера - 1 кВт, (220 В)
Програмовані події - вмикання, вимикання, імпульс.
Кількість подій - 99 подій.
Тип коммутуючого елемента – реле.
Кількість каналів регулювання температури - 4 канали.
Потужність нагрівального елемента – 200 Вт, (220В.).
Живлення – 220 В, 50 Гц.
Габаритні розміри – 155 х 80 х 55.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 11
3 Розробка структурної та принципової схем
Структурна схема програмованого таймера-генератора для
робототехнічних комплексів зображена на рисунку 3.1.
Рисунок 3.1 - Структурна схема таймера-генератора: КР – кварцовий
резонатор, ДТ – датчик температури, ЦП – центральний процесор, ОК – органи
керування, БУЗП – блок управління зовнішніми пристроями, БЖ – блок
живлення, ЦП – мікроконтролер типу PIC16F1517-I/P(MICRO CHIP)
Характеристики наведені в таблиці 3.1.
Таблиця 3.1 – Характеристика мікроконтролера типу PIC16F1517-
I/P(MICRO CHIP)
Параметр Значення
Lead Free Status / RoHS Status Lead free / RoHS Compliant
Серія PIC® XLP™ 16F
Процесор PIC
Розмір ядра 8 Біт
Швидкість 20 MГц
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 12
Підключення I²C, LIN, SPI, UART/USART
Периферія Brownout Detect/Reset, POR, PWM, WDT
Число вводів/виводів 36
Розмір програмованої пам'яті 14 Kбайт (8 K x 14)
Тип програмованої пам'яті FLASH
Размер памяти 512 x 8
Напруга джерела (Vcc/Vdd) 2.3 В - 5.5 В
Претворювачі даних A/D 28x10b
Тип осцилятора Internal
Робоча температура 40 °C – 85 °C
Корпус (розмір) 40DIP (0.600", 15.24 мм)
Таймер-генератор по суті є мікропроцесорною системою — це
функціонально закінчений виріб, що складається з кількох пристроїв, головним з
яких є мікроконтролер.
Структура мікропроцесорної системи (МПС) є магістрально-модульною. У
такій структурі є група магістралей (шин), до яких приєднуються різні модулі
(блоки), що обмінюються між собою відомостями по одних і тих самих шинах по
черзі, в режимі поділу часу.
Типова мікропроцесорна система працює за допомогою шин, за якими в
систему передаються адреси модулів, до яких звертається мікропроцесор. У шину
включений шинний формувач (ШФ) – DD2, DD3, що забезпечує роботу
мікроконтролера на навантаження, утворену зовнішніми ланцюгами. Власної
здатності навантаження у МП не вистачає.
Мікроконтролер сполучає на одному кристалі функції процесора та
периферійних приладів, містить ОЗП і (або) ПЗП. По суті, це однокристальний
комп'ютер, здатний виконувати нескладні завдання.
Система стабілізації частоти.
Таймер-генератор оперує у режимі реального часу, тому для високої
сталості відліку часу застосовуємо часовий кварцовий резонатор. Резонансна
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 13
частота часових резонаторів 32768 Гц, поділена на 15-розрядний двійковий
лічильник, дає інтервал часу у 1 секунду.
Алфавітно-цифровий РК-модуль.
Для показу поточної інформації під час роботи приладу, програмування
режиму роботи приладу використовуємо алфавітно-цифровий РК-модуль BC1602
фірми Bolymin.
Таблиця 3.2 - Основні параметри
16 символів, 2 рядки
Вбудований контролер KS0066 або аналогічний
Підсвітка фронтальна світлодіодна
Напруга + 5 В
Таблиця 3.3 - Призначення виводів
№ Символ Призначення
1 Vss Загальний
2 Vdd Напруга живлення
3 Vo Регулювання контрастності
4 RS Вибір регістра команди/дані
5 R/W Зчитування/запис
6 E Стробіруючий сигнал
7 - 14 DB0-DB7 Шина даних
15 A/Vee Напруга живлення підсвітки/вихід джерела мінусової напруги
16 K Общий підсвітки
Таблиця 3.4 – Електричні характеристики
Параметр Символ Умова Значення Од. виміру
Напруга живлення: Vdd Vdd = + 5 В 5.0 В
Струм споживання: Idd Vdd = + 5 В 1.2 мA
Напруга живлення ЖК: Vdd-Vo 25 ºC 4.2 В
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 14
Напруга живлення LED
Vf 25 ºC 4.2 В
підсвітки
Струм споживання LED
If 25 ºC 280 мA
підсвіткою
Струм споживання EL
Iel Vel = 110 В / 400 Гц - Врмс
підсвіткою
Датчики температури
Окрім програмованого таймера, який служить для увімкнення та
вимкнення різних виконавчих пристроїв у заданий час, таймер-генератор включає
4 канали регулятора температури для підтримання встановленої температури в
контрольованому середовищі. Як датчики для системи вимірювання та контролю
температури застосовуємо термістори – DS18B20(Maxim-Dallas).
Рисунок 3.2 – Датчик температури
Температурний діапазон від - 55 до + 125 °С.
Точність показань 0.5 °С в діапазоні - 10 до + 85 °C.
Напруга живлення 3 – 5 В.
Крім стандартної схеми підключення датчика можлива робота і по
паразитному живленню (крім LaunchPad) - при цьому до датчика необхідно
підвести всього 2 дроти (1 і 3 вивід на мінус, 2 - дані.). так само шина даних
підключається до +5 В через резистор 4.7 кОм (підтягуючий резистор) R2…R5.
Всі датчики підключаються паралельно.
Органи керування
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 15
Для управління (програмування, ручного управління зовнішніми
пристроями, тощо використовуємо 5 кнопок з нормально розімкнутими
контактами К1…К5.
Таблиця 3.5 – Технічні параметри кнопок К1-К5
Функціональне призначення мініатюрна кнопка
Робоча напруга,В 30
Робочий струм,А 0.1
Фіксація немає
Конфігурація контактів DPDT
Підсвічування немає
Опір ізолятора не менше, МОм 100
Опір контактів не більше, Ом 0,05
Робоча температура, ºС -25…+70
Спосіб монтажу в отвори на плату
Виробник Switronic
Для контролю замикання контактів кнопок при натисканні виводиться
звуковий сигнал за допомогою п'єзо динаміка HF1.
Живлення пристрою
Пристрій живиться від мережі 220 В змінного струму через понижуючий
трансформатор 220 / 12 В, 4 Вт та схему випрямлення напруги VD15.
Для стабілізації напруги живлення мікроконтролера використовується
інтегральний стабілізатор LM78L05 – DA2.
Мікросхема — стабілізатор 78L05 (7805) має теплове захист, а також
вбудовану систему **оберігає** стабілізатор від перевантаження по струму. Тим
не менш, для більш надійної роботи бажано застосовувати діод, що дозволяє
захистити стабілізатор від короткого замикання у вхідному ланцюзі.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 16
Таблиця 3.6 - Технічні параметри стабілізатора 78L05
Вхідна напруга від 7 В до 20 В
Вихідна напруга від 4,5 В до 5,5 В
Вихідний струм (максимальний) 100 мА
Струм споживання (стабілізатором) 5,5 мА
Допустима різниця напруги вхід-вихід 1,7 В
Робоча температура від - 40 до + 125 °C
Для живлення Алфавітно-цифрового ЖК-модуля використовується DA1 -
MC34063 – універсальна мікросхема для найпростіших імпульсних
перетворювачів. На ній без застосування зовнішніх перемикаючих транзисторів
можна будувати понижуючі, підвищують і інвертують перетворювачі. А це
основні типи перетворювачів, які не мають гальванічної розв'язки.
Таблиця 3.7 - Основні технічні характеристики MC34063
Широкий діапазон значень вхідних напруг від 3В до 40В
Високий вихідний імпульсний струм до 1,5 А
Регульована вихідна напруга
Частота перетворювача до 100 кГц
Точність внутрішнього джерела опорної напруги 2 %
Обмеження струму короткого замикання
Низьке споживання в сплячому режимі
Для збереження поточного часу при пропаданні живлення таймера від
мережі використовується литиевый елемент CR1220.
Таблиця 3.8 - Технічні параметри литиевого елемента СR1220
Найменування типу VARTA: CR1220
Класифікація МЕК CR1220
Електрохімічна система Первинний літієвий, дисковий
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 17
Ємність 35 мАч
Напруга 3 В
Блок управління зовнішніми пристроями
Для включення/виключення зовнішніх пристроїв за програмою чи в
ручному режимі передбачена подача на них оперативної напруги через контакти
реле К1…К8.
В каналах регулятора температури в якості ключів використані
напівпровідникові симістори VD11…VD14 – BTA 140 – 600
Таблиця 3.9 - Технічні параметри семістора BTA140-600
I max у відкритому стані, (A) 25
U в закритому стані, (В) 600
Відпираючий струм, max (мA) 6÷35
Pin(1,2,3) (T1, T2 G)
Корпус TO-220
Для гальванічної розв'язки кіл управління симісторів використано
оптопари МОС 3062 – DA2…DA5.
Симісторний оптрон (оптопара) являє собою світлодіод і світлочутливий
симістор, зібрані в одному корпусі і мають оптичну зв'язок. Основне призначення
– комутація високоВного навантаження змінного та пульсуючого струму. Крім
прямого включення навантаження симісторні оптрони нерідко використовуються
як керуючі для потужних симісторів або тиристорів (як гальванічної розв'язки і як
підсилювачі струму)
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 18
Таблиця 3.10 – Параметри симісторного оптрона
вхід вихід загальні
тип
If, мА Ur, В Udrm, В I, мА ZCC Upk, кВ
МОС3062 10 6 600 100 + 5,3(7.5)
If – струм спрацьовування;
Ur – зворотна напруга світлодіода, не більше;
Udrm – напруга, що комутується, не більше;
I – струм через симістор, не більше;
ZCC – наявність або відсутність схеми відмикання в момент проходження
через «нуль»;
Upk – напруга ізоляції, максимально допустима пікова напруга між входом
і виходом;
Urms – напруга ізоляції, максимально допустима напруга ізоляції (діюче
значення).
Інструкція по експлуатації виробу.
Для контролю і управління функціями використовується РК – індикатор 16
Х 2 і 5 кнопок.
Індикатор має два режими – робочий і програмування. Зовнішній вигляд
індикатора в робочому режимі показаний на рисунку 3.3.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 19
Рисунок 3.3 – Робочий режим
Чотири символу праворуч угорі відображають реальний час. Для
установки часу з допомогою кнопок «вправо» і «вліво» встановити курсор на
позицію індикатора годин. Кнопки «вгору» і «вниз» встановити значення годин,
потім встановити курсор на позицію індикатора хвилин і встановити значення
хвилин і натиснути кнопку «enter». Годинник реального часу починають йти, про
це свідчить миготливе двокрапка. ( при першому включенні після повного
припинення електроживлення курсор автоматично встановлюється в потрібну
позицію). Після запуску можна встановити елемент СR1220. Без цього елемента у
разі короткочасного припинення електроживлення хід годин припиняється.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 20
Вісім символів внизу зліва відображають стан реле каналів 1 ... 8.
Для ручного керування необхідно встановити курсор на символ,
відповідний потрібного реле і натиснути кнопку «вгору» для включення або
кнопку «вниз» для відключення. Курсор переміщається з допомогою кнопок
«вліво» чи «вправо».
Вісім символів вгорі зліва відображають режими управління реле. Для
встановлення потрібного режиму необхідно встановити курсор на символ, що
відповідає режиму потрібного реле і натиснути кнопку «вгору» для режиму
«автомат/ручний» або «вниз» для режиму «ручний» В ручному режимі реле
включаються і відключаються так, як описано вище. У режимі «автомат/ручний»
реле включаються і вимикаються вручну і автоматично. Для автоматичного
керування необхідно запрограмувати «події».
Для цього:
1. Перемикаємо індикатор таймера в режим «програмування». Натискаємо
і утримуємо кнопку «вліво», потім натискаємо кнопку «вправо». Індикатор
приймає вигляд. Відпускаємо кнопку.
2. За допомогою кнопок «вправо» і «вліво» встановлюємо курсор на
позицію, яка вказує номер події. За допомогою кнопок «вгору» і «вниз»
встановлюємо номер першої події – 01.
3. Далі встановлюємо номер каналу. За допомогою кнопок «вправо» і
«вліво» встановлюємо курсор на позицію номера каналу. За допомогою кнопок
«вгору» і «вниз» встановлюємо номер реле – 1.
4. Далі встановлюємо тип події. За допомогою кнопок «вправо» і «вліво»
встановлюємо курсор на позицію, яка вказує на тип події. За допомогою кнопок
«вгору» і «вниз» встановлюємо «+» - включення.
5. Встановлюємо час настання події. За допомогою кнопок «вправо» і
«вліво» встановлюємо курсор на позицію, яка вказує годинник настання події.
За допомогою кнопок «вгору» і «вниз» встановлюємо 10. Встановлюємо
курсор на позицію, яка вказує хвилини настання події.
За допомогою кнопок «вгору» і «вниз» встановлюємо 00.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 21
6. Для програмування другого події повторити пункти 2 ,4 , 5. В п. 2
встановити – 02, п. 4 встановити «-», п. 5 – 23.59. Введені події зберігаються в
пам'яті контролера весь час, поки на пристрій подано електроживлення або
встановлена батарея CR1220.
7. Для збереження інформації в енергонезалежній пам'яті необхідно при
знаходженні індикатора в режимі програмування натискати кнопку «вправо» до
тих пір, поки на дисплеї не з'явиться напис «store». Після цього натиснути кнопку
«enter». Введена інформація записується в енергонезалежну пам'ять і індикатор
переходить в робочий режим.
Крім включення і відключення існує ще один тип події – імпульс.
При настанні цієї події реле включається на заздалегідь запрограмований
час . Цей час може становити 2 – 58 секунд. Один з прикладів використання цього
типу події – подача дзвінків в школі. Припустимо, потрібно подавати дзвінки
тривалістю 10 секунд о 08.30 , 09.15 , 09.25 , 10.10 і т. д. Дзвінок підключаємо,
наприклад, до реле 7, включаємо для цього реле режим «автомат/ручний». Після
цього програмуємо #01 &7p [08:30], #02 &7p [09:15], #03 &7p [09:25], #04 &7p
[10:10] і т. д. Встановлюємо тривалість дзвінка p = 10c.
Об'єднаний режим таймера «автомат/ручний» дозволяє вносити
короткочасні корективи в запрограмований алгоритм, не змінюючи самого
алгоритму, тобто задавати події крім запрограмованого часу.
Регулятор температури складається з чотирьох терморегуляторів для
підтримки заданої температури в об'єкті регулювання. Кожен регулятор містить
датчик температури DS18B20 і нагрівальний елемент. При знаходженні
індикатора в робочому режимі нижні символи праворуч відображають номер
каналу, реальну температуру цього каналу і стан регулювання (вкл. вимк.). Для
того, щоб подивитися температуру іншого каналу необхідно встановити курсор на
номер каналу і за допомогою кнопок «вгору» і «вниз» встановити потрібний
канал. Зліва від номера каналу знаходиться символ, який вказує на стан
регулятора («+» включений, «-» вимкнено). У робочому режимі існує можливість
корекції похибки датчика температури (при необхідності). Для цього необхідно
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 22
помістити поряд з датчиком зразковий термометр, встановити курсор на
показання температури цього каналу і через деякий час, коли показання
термометра стабілізуються, кнопками «вгору» і «вниз» встановити на індикаторі
показання термометра. Після цього записати значення поправки в
енергонезалежну пам'ять.
Для того, щоб встановити задану температуру, необхідно індикатор
перемкнути у режим «програмування». На індикаторі в тих же знакомісцях
висвічується номер каналу і значення заданої температура. Встановити курсор на
значення температури потрібного каналу і за допомогою кнопок «вгору» і «вниз»
ввести потрібне значення.
В енергонезалежну пам'ять поміщаються:
1. Події
2. Тривалість імпульсу «р».
3. Задана температура.
4. Значення температурної корекції датчиків.
Зазначені в п. 7 дії забезпечують запис одночасно всіх параметрів, тому їх
слід проводити після повного завершення процесу програмування.
На рисунку 3.4 представлена принципова схема контролера таймера-
генератора.
Для досягнення поставленої задачі –"програмований таймер-генератор для
робототехнічних комплексів" як основний елемент апаратної та програмної
реалізації використовуємо мікроконтролер PIC16F1517-I/PT
8-бітний PIC-мікроконтролер, FLASH/ISP FLASH = 14 Кбайт, SRAM = 512
байт, Живлення, В = 2,3...5,5, кільк. вив. користув. = 36, периферія. = Brown-out
Detect/Reset, POR, PWM, WDT, роздільна здатність/швидкість АЦП/кільк. кан. =
28 х 10-біт, сумісність = I²C, LIN, SPI, UART/USART, Темп. роб., °C = -40...+85,
частота, МГц = 20.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 23
Рисунок 3.4 – Схема принципова контролера
Мікроконтро́лер (англ. microcontroller), або однокристальна мікроЕОМ —
виконана у вигляді мікросхеми спеціалізована мікропроцесорна система, що
вміщує мікропроцесор, блоки пам'яті для зберігання коду програм і даних, порти
вводу-виводу та блоки зі спеціальними функціями (лічильники, компаратори,
АЦП та інші).
Застосовується для керування електронними пристроями. По суті, це —
однокристальний комп'ютер, спроможний виконувати нескладні завдання.
Використання однієї мікросхеми суттєво зменшує розміри, енергоспоживання та
вартість пристроїв, побудованих на базі мікроконтролерів.
Для показу поточної інформації під час роботи пристрою, програмування
режиму роботи пристрою використовуємо алфавітно-цифровий РК-модуль
BC1602 фірми Bolymin.Перевагою символьних РК-модулів перед звичайними РКІ
є компактний інтерфейс і простота управління. Вхідні/вихідні сигнали мають
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 24
КМОП-рівні, тому РК-модуль, з точки зору мікроконтролера, мало чим
відрізняється від зовнішньої логічної КМОП мікросхеми. Користувачеві
залишається лише підключити до індикатору 6...11 проводів і періодично
посилати за ним керуючі сигнали. Все інше бере на себе вбудований в
символьний рідкокристалічний модуль контролер. По-англійськи його називають
Dot Matrix LCD Controller/Driver, оскільки він поєднує функції керуючого
пристрою і силового драйвера для матриці точкових сегментів
DS18B20 – цифровий сенсор температури з програмованим роздільною
селективністю перетворення.
Визначні ознаки
1) Застосування інтерфейсної шини даних 1-Wire для зв'язку з керуючою
системою;
2) Наявність унікального 64-бітного послідовного ідентифікаційного коду,
розміщеного у внутрішній ROM-пам'яті та призначеного для багатоточкових
систем, де потрібно викликати певний датчик;
3) Напруга живлення складає 3-5,5 В, що дозволяє застосовувати його не
лише у 5-В системах, але й у 3,3 (переважна більшість мікроконтролерів);
4) Діапазон вимірюваної температури охоплює -55...+125 оС;
5) Точність ±0,5 оС, хоча це дійсно лише для діапазону -10...+85 оС;
6) Роздільна здатність перетворення встановлюється користувачем і
дорівнює 9...12 біт;
7) Володіє внутрішніми регістрами тригерів найвищої та найнижчої
границь спрацювання з генерацією сигналу тривоги для систем, що задіюють
термостатичну логіку роботи;
8) Ці сенсори програмно сумісні з DS1822 та активно використовуються у
промислових термостатичних регуляторах, індустріальних комплексах, у
споживчій електроніці та інших чутливих до тепла системах.MC34063 –
універсальна мікросхема для найпростіших імпульсних перетворювачів в блоках
живлення.
78L05 це стабілізатор напруги на 5 В.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 25
Симістор BTA140-600 в поєднанні з оптроном МОС3062 дозволять
керувати нагрівальними приладами достатньо потужними і одночасно
забезпечують гальванічну розв'язку мережі живлення нагрівачами від системи
управління температурними режимами.
Інші елементи схеми – резистори, конденсатори тощо, широко вживанні
елементи електронних схем для використання як в промислових так і в побутових
приладах.
Рисунок 3.5 – Схема принципова блоку управління зовнішніми пристроями
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 26
4 Розробка програмного забезпечення таймера
4.1 Прошивка МК головна програма
#include <htc.h>
#include "variable.c"
__CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_ON & MCLRE_OFF & CP_OFF &
BOREN_OFF & CLKOUTEN_OFF);
__CONFIG(STVREN_ON & BORV_HI & LVP_OFF);
//*******************************************************************************
************
void strob(void)
{
e = 1;
NOP();
e = 0;
}
void delay_15mS(void)
{
T2CON = 0x76;
PR2 = 250;
TMR2IF = 0;
while (TMR2IF == 0);
}
void delay_5mS(void)
{
T2CON = 0x26;
PR2 = 250;
TMR2IF = 0;
while (TMR2IF == 0);
}
void delay_150uS(void)
{
T2CON = 0x14;
PR2 = 199;
TMR2IF = 0;
while (TMR2IF == 0);
}
void delay_50uS(void)
{
T2CON = 0x04;
PR2 = 199;
TMR2IF = 0;
while (TMR2IF == 0);
}
void delay_500uS(void)
{
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 27
T2CON = 0x3C;
PR2 = 249;
TMR2IF = 0;
while (TMR2IF == 0);
}
//*******************************************************************************
void erase_flash(void)
{
char i;
for (i = 0;i < 8;i++)
{
PMADR = &eeprom_rom[i][0];
CFGS = 0;
FREE = 1;
WREN = 1;
PMCON2 = 0x55;
PMCON2 = 0xAA;
WR = 1;
NOP();
NOP();
WREN = 0;
}
}
void write_flash()
{
char i,j,k;
k = count_wr << 5;
for (i = 0;i < 4;i++)
{
j = i << 1;
buffer.all = set_termo[i];
eeprom_ram[200 + j] = buffer.lb;
eeprom_ram[201 + j] = buffer.mb;
buffer.all = corr_termo[i];
eeprom_ram[208 + j] = buffer.lb;
eeprom_ram[209 + j] = buffer.mb;
}
eeprom_ram[216] = _switch.all;
// PMADR = ROM;
CFGS = 0;
WREN = 1;
LWLO = 1;
for (i = 0;i < 32;i++)
{
PMDAT = eeprom_ram[k];;
PMADR = &eeprom_rom[count_wr][i];
PMCON2 = 0x55;
PMCON2 = 0xAA;
WR = 1;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 28
NOP();
NOP();
k++;
}
LWLO = 0;
PMCON2 = 0x55;
PMCON2 = 0xAA;
WR = 1;
NOP();
NOP();
WREN = 0;
if (count_wr < 7)
count_wr++;
else
{
status.write = 0;
cursor = 0;
}
}
//*******************************************************************************
*********
unsigned char Crc8(unsigned char *stroke, unsigned char len)
{
unsigned char crc = 0x00;
while (len--)
{
crc = Crc8Table[crc ^ *stroke++];
}
return crc;
}
//*******************************************************************************
******************
void ds_1_reset(void)
{
ds_port_1 = 0;
tris_1 = 0;
delay_500uS();
tris_1 = 1;
}
void ds_2_reset(void)
{
ds_port_2 = 0;
tris_2 = 0;
delay_500uS();
tris_2 = 1;
}
void ds_3_reset(void)
{
ds_port_3 = 0;
tris_3 = 0;
delay_500uS();
tris_3 = 1;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 29
}
void ds_4_reset(void)
{
ds_port_4 = 0;
tris_4 = 0;
delay_500uS();
tris_4 = 1;
}
//*******************************************************************************
****************
void ds_1_read(void)
{
char i,j;
T2CON = 0x0C;
PR2 = 199;
TMR2IF = 0;
ds_port_1 = 0;
OPTION_REG = 0x08;
for (j = 0;j < 9;j++)
{
for (i = 0;i < 8;i++)
{
tris_1 = 1;
shift_reg_rx.all = shift_reg_rx.all >> 1;
while (TMR2IF == 0);
tris_1 = 0;
TMR2IF = 0;
NOP();
NOP();
NOP();
NOP();
TMR0 = 210;
TMR0IF = 0;
tris_1 = 1;
while (TMR0IF == 0);
shift_reg_rx._bit = ds_port_1;
}
stroke_rx[j] = shift_reg_rx.all;
}
}
//******************************************************************************
//*******************************************************************************
****************
void ds_2_read(void)
{
char i,j;
T2CON = 0x0C;
PR2 = 199;
TMR2IF = 0;
ds_port_2 = 0;
OPTION_REG = 0x08;
for (j = 0;j < 9;j++)
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 30
{
for (i = 0;i < 8;i++)
{
tris_2 = 1;
shift_reg_rx.all = shift_reg_rx.all >> 1;
while (TMR2IF == 0);
tris_2 = 0;
TMR2IF = 0;
NOP();
NOP();
NOP();
NOP();
TMR0 = 210;
TMR0IF = 0;
tris_2 = 1;
while (TMR0IF == 0);
shift_reg_rx._bit = ds_port_2;
}
stroke_rx[j] = shift_reg_rx.all;
}
}
//*******************************************************************************
****************
void ds_3_read(void)
{
char i,j;
T2CON = 0x0C;
PR2 = 199;
TMR2IF = 0;
ds_port_3 = 0;
OPTION_REG = 0x08;
for (j = 0;j < 9;j++)
{
for (i = 0;i < 8;i++)
{
tris_3 = 1;
shift_reg_rx.all = shift_reg_rx.all >> 1;
while (TMR2IF == 0);
tris_3 = 0;
TMR2IF = 0;
NOP();
NOP();
NOP();
NOP();
TMR0 = 210;
TMR0IF = 0;
tris_3 = 1;
while (TMR0IF == 0);
shift_reg_rx._bit = ds_port_3;
}
stroke_rx[j] = shift_reg_rx.all;
}
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 31
}
//*******************************************************************************
****************
void ds_4_read(void)
{
char i,j;
T2CON = 0x0C;
PR2 = 199;
TMR2IF = 0;
ds_port_4 = 0;
OPTION_REG = 0x08;
for (j = 0;j < 9;j++)
{
for (i = 0;i < 8;i++)
{
tris_4 = 1;
shift_reg_rx.all = shift_reg_rx.all >> 1;
while (TMR2IF == 0);
tris_4 = 0;
TMR2IF = 0;
NOP();
NOP();
NOP();
NOP();
TMR0 = 210;
TMR0IF = 0;
tris_4 = 1;
while (TMR0IF == 0);
shift_reg_rx._bit = ds_port_4;
}
stroke_rx[j] = shift_reg_rx.all;
}
}
//*******************************************************************************
**************
void ds_1_write(char command)
{
char i;
T2CON = 0x0C;
PR2 = 199;
TMR2IF = 0;
ds_port_1 = 0;
shift_reg_tx.all = command;
OPTION_REG = 0x08;
for (i = 0;i < 8;i++)
{
tris_1 = 1;
while (TMR2IF == 0);
TMR2IF = 0;
tris_1 = 0;
TMR0 = shift_reg_tx._bit?220:0;
TMR0IF = 0;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 32
while (TMR0IF == 0);
tris_1 = 1;
shift_reg_tx.all = shift_reg_tx.all >> 1;
}
}
//*******************************************************************************
***************
void ds_2_write(char command)
{
char i;
T2CON = 0x0C;
PR2 = 199;
TMR2IF = 0;
ds_port_2 = 0;
shift_reg_tx.all = command;
OPTION_REG = 0x08;
for (i = 0;i < 8;i++)
{
tris_2 = 1;
while (TMR2IF == 0);
TMR2IF = 0;
tris_2 = 0;
TMR0 = shift_reg_tx._bit?220:0;
TMR0IF = 0;
while (TMR0IF == 0);
tris_2 = 1;
shift_reg_tx.all = shift_reg_tx.all >> 1;
}
}
//*******************************************************************************
***************
void ds_3_write(char command)
{
char i;
T2CON = 0x0C;
PR2 = 199;
TMR2IF = 0;
ds_port_3 = 0;
shift_reg_tx.all = command;
OPTION_REG = 0x08;
for (i = 0;i < 8;i++)
{
tris_3 = 1;
while (TMR2IF == 0);
TMR2IF = 0;
tris_3 = 0;
TMR0 = shift_reg_tx._bit?220:0;
TMR0IF = 0;
while (TMR0IF == 0);
tris_3 = 1;
shift_reg_tx.all = shift_reg_tx.all >> 1;
}
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 33
}
//*******************************************************************************
***************
void ds_4_write(char command)
{
char i;
T2CON = 0x0C;
PR2 = 199;
TMR2IF = 0;
ds_port_4 = 0;
shift_reg_tx.all = command;
OPTION_REG = 0x08;
for (i = 0;i < 8;i++)
{
tris_4 = 1;
while (TMR2IF == 0);
TMR2IF = 0;
tris_4 = 0;
TMR0 = shift_reg_tx._bit?220:0;
TMR0IF = 0;
while (TMR0IF == 0);
tris_4 = 1;
shift_reg_tx.all = shift_reg_tx.all >> 1;
}
}
//*******************************************************************************
***************
void set_cursor(void)
{
if ((key == left) && (cursor > 0))
cursor--;
if ((key == right) && (cursor < 30))
cursor++;
if (status.work == 0)
//робочий режим
switch (cursor)
{
case 0:{
// if (key == up)
// {
// if (N < 9)
// N++;
// }
// if (key == down)
// {
// if (N > 0)
// N--;
// }
};break;
case 1:{
if (key == up)
` _switch._0 = 1;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 34
else if (key == down)
_switch._0 = 0;
};break;
case 2:{
if (key == up)
` _switch._1 = 1;
else if (key == down)
_switch._1 = 0;
};break;
case 3:{
if (key == up)
` _switch._2 = 1;
else if (key == down)
_switch._2 = 0;
};break;
case 4:{
if (key == up)
` _switch._3 = 1;
else if (key == down)
_switch._3 = 0;
};break;
case 5:{
if (key == up)
` _switch._4 = 1;
else if (key == down)
_switch._4 = 0;
};break;
case 6:{
if (key == up)
` _switch._5 = 1;
else if (key == down)
_switch._5 = 0;
};break;
case 7:{
if (key == up)
` _switch._6 = 1;
else if (key == down)
_switch._6 = 0;
};break;
case 8:{
if (key == up)
` _switch._7 = 1;
else if (key == down)
_switch._7 = 0;
};break;
//**********************************************************
case 9:{
if (_switch._0 == 1)
{
if (key == up)
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 35
_auto._0 = 1;
else if (key == down)
` _auto._0 = 0;
}
else
{
if (key == up)
_manual._0 = 1;
else if (key == down)
` _manual._0 = 0;
}
};break;
case 10:{
if (_switch._1 == 1)
{
if (key == up)
_auto._1 = 1;
else if (key == down)
` _auto._1 = 0;
}
else
{
if (key == up)
_manual._1 = 1;
else if (key == down)
` _manual._1 = 0;
}
};break;
case 11:{
if (_switch._2 == 1)
{
if (key == up)
_auto._2 = 1;
else if (key == down)
` _auto._2 = 0;
}
else
{
if (key == up)
_manual._2 = 1;
else if (key == down)
` _manual._2 = 0;
}
};break;
case 12:{
if (_switch._3 == 1)
{
if (key == up)
_auto._3 = 1;
else if (key == down)
` _auto._3 = 0;
}
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 36
else
{
if (key == up)
_manual._3 = 1;
else if (key == down)
` _manual._3 = 0;
}
};break;
case 13:{
if (_switch._4 == 1)
{
if (key == up)
_auto._4 = 1;
else if (key == down)
` _auto._4 = 0;
}
else
{
if (key == up)
_manual._4 = 1;
else if (key == down)
` _manual._4 = 0;
}
};break;
case 14:{
if (_switch._5 == 1)
{
if (key == up)
_auto._5 = 1;
else if (key == down)
` _auto._5 = 0;
}
else
{
if (key == up)
_manual._5 = 1;
else if (key == down)
` _manual._5 = 0;
}
};break;
case 15:{
if (_switch._6 == 1)
{
if (key == up)
_auto._6 = 1;
else if (key == down)
` _auto._6 = 0;
}
else
{
if (key == up)
_manual._6 = 1;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 37
else if (key == down)
` _manual._6 = 0;
}
};break;
case 16:{
if (_switch._7 == 1)
{
if (key == up)
_auto._7 = 1;
else if (key == down)
` _auto._7 = 0;
}
else
{
if (key == up)
_manual._7 = 1;
else if (key == down)
` _manual._7 = 0;
}
};break;
case 18:{
if (key == up)
termo_con.all |=
mask_set_1[n_can_termo];
else if (key == down)
` termo_con.all &=
~mask_set_1[n_can_termo];
};break;
case 17:{
if (key == up)
{
if (n_can_termo < 3)
n_can_termo++;
}
if (key == down)
{
if (n_can_termo > 0)
n_can_termo--;
}
};break;
case 20:{
if (key == up)
{
if (time_hour < 23)
time_hour++;
}
if (key == down)
{
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 38
if (time_hour > 0)
time_hour--;
}
};break;
case 22:{
if (key == up)
{
if (corr_termo[n_can_termo]
< 32000)
corr_termo[n_can_termo]++;
}
if (key == down)
{
if (corr_termo[n_can_termo]
> -32000)
corr_termo[n_can_termo]--;
}
};break;
case 21:{
if (key == up)
{
if (time_minute < 59)
time_minute++;
}
if (key == down)
{
if (time_minute > 0)
time_minute--;
}
};break;
}
else
{
// режим програмування
switch (cursor)
{
case 0:;break;
case 1:{
if (key == up)
{
if (n_sob < 98)
n_sob++;
}
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 39
if (key == down)
{
if (n_sob > 0)
n_sob--;
}
};break;
case 2:{
if (key == up)
{
if (reg_hour.n_can <
7)
reg_hour.n_can++;
}
if (key == down)
{
if (reg_hour.n_can >
0)
reg_hour.n_can--;
}
};break;
case 3:{
if (key == up)
{
if (reg_minute.action
< 3)
reg_minute.action++;
}
if (key == down)
{
if (reg_minute.action
> 1)
reg_minute.action--;
}
};break;
case 4:{
if (key == up)
{
if (reg_hour.val < 23)
reg_hour.val++;
}
if (key == down)
{
if (reg_hour.val > 0)
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 40
reg_hour.val--
;
}
};break;
case 5:{
if (key == up)
{
if (reg_minute.val <
59)
reg_minute.val++;
}
if (key == down)
{
if (reg_minute.val >
0)
reg_minute.val--;
}
};break;
case 6:{
if (key == up)
{
if (n_can_termo < 3)
n_can_termo++;
}
if (key == down)
{
if (n_can_termo > 0)
n_can_termo--
;
}
};break;
case 7:{
if (key == up)
{
if (set_termo[n_can_termo]
< 560) //30 deg
set_termo[n_can_termo]++;
}
if (key == down)
{
if (set_termo[n_can_termo]
> 320) //20 deg
set_termo[n_can_termo]--;
}
if (key == enter)
{
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 41
set_termo[n_can_termo] =
400; //25 deg
}
};break;
case 10:{
if (key == enter)
{
erase_flash();
status.write = 1;
count_wr = 0;
status.work = 0;
cursor = 0;
}
};break;
}
}
if (((key == up) || (key == down)) && ((cursor == 2) || (cursor == 4)))
eeprom_ram[n_sob << 1] = reg_hour.all;
//запис змін значень
в масив
if (((key == up) || (key == down)) && ((cursor == 3) || (cursor == 5)))
eeprom_ram[(n_sob << 1) + 1] = reg_minute.all; //
key = 0;
}
//*******************************************************************************
************************************
void display(void)
{
char i;
delay_150uS();
rw = 0;
rs = 0;
port_lcd = 0x80 | light;
//установка адреси верхнього рядку
strob();
port_lcd = 0x00 | light;
strob();
rs = 1;
if (status.work == 0)
//робочий режим
{
data = _switch._0?au:man;
stroke_dysplay[0] = (index._640 & !(cursor ^ 1))?0x20:data;
data = _switch._1?au:man;
stroke_dysplay[1] = (index._640 & !(cursor ^ 2))?0x20:data;
data = _switch._2?au:man;
stroke_dysplay[2] = (index._640 & !(cursor ^ 3))?0x20:data;
data = _switch._3?au:man;
stroke_dysplay[3] = (index._640 & !(cursor ^ 4))?0x20:data;
data = _switch._4?au:man;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 42
stroke_dysplay[4] = (index._640 & !(cursor ^ 5))?0x20:data;
data = _switch._5?au:man;
stroke_dysplay[5] = (index._640 & !(cursor ^ 6))?0x20:data;
data = _switch._6?au:man;
stroke_dysplay[6] = (index._640 & !(cursor ^ 7))?0x20:data;
data = _switch._7?au:man;
stroke_dysplay[7] = (index._640 & !(cursor ^ 8))?0x20:data;
stroke_dysplay[8] = 0x20;
stroke_dysplay[9] = 0x20;
data = H_10 + 0x30;
stroke_dysplay[10] = (index._640 & !(cursor ^ 20))?0x20:data;
data = H_01 + 0x30;
stroke_dysplay[11] = (index._640 & !(cursor ^ 20))?0x20:data;
stroke_dysplay[12] = status.second?0x3a:0x20;
data = M_10 + 0x30;
stroke_dysplay[13] = (index._640 & !(cursor ^ 21))?0x20:data;
data = M_01 + 0x30;
stroke_dysplay[14] = (index._640 & !(cursor ^ 21))?0x20:data;
stroke_dysplay[15] = 0x20;
}
else
//програмування
{
stroke_dysplay[0] = 0x23; //#
data = sob_10 + 0x30;
//номер події
stroke_dysplay[1] = (index._640 & !(cursor ^ 1))?0x20:data;
data = sob_01 + 0x30;
stroke_dysplay[2] = (index._640 & !(cursor ^ 1))?0x20:data;
stroke_dysplay[3] = 0x20;
stroke_dysplay[4] = 0x3e;
data = reg_hour.n_can + 0x31;
//номер канала
stroke_dysplay[5] = (index._640 & !(cursor ^ 2))?0x20:data;
if (reg_minute.action == 3)
data = 0xd9;
//включити
else if (reg_minute.action == 2)
data = 0xda;
//виключити
else
data = 0x58; //не
активно
stroke_dysplay[6] = (index._640 & !(cursor ^ 3))?0x20:data;
stroke_dysplay[7] = 0x20;
stroke_dysplay[8] = 0x20;
stroke_dysplay[9] = 0x20;
data = h_10 + 0x30;
stroke_dysplay[10] = (index._640 & !(cursor ^ 4))?0x20:data;
data = h_01 + 0x30;
stroke_dysplay[11] = (index._640 & !(cursor ^ 4))?0x20:data;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 43
stroke_dysplay[12] = 0x3a;
data = m_10 + 0x30;
stroke_dysplay[13] = (index._640 & !(cursor ^ 5))?0x20:data;
data = m_01 + 0x30;
stroke_dysplay[14] = (index._640 & !(cursor ^ 5))?0x20:data;
stroke_dysplay[15] = 0x20;
}
for (i = 0;i < 17;i++) //вивід інформації першого рядку на індикатор
{
delay_50uS();
buff_lcd = stroke_dysplay[i];
port_lcd = buff_lcd;
strob();
port_lcd = buff_lcd << 4 | light;;
strob();
}
//*************************************************************
delay_150uS();
rw = 0;
//установка адреси другого рядка
rs = 0;
port_lcd = 0xc0 | light;;
strob();
port_lcd = 0x00 | light;;
strob();
rs = 1;
if (status.work == 0)
//робочий режим
{
data = relay._0?on:off;
stroke_dysplay[16] = (index._640 & !(cursor ^ 9))?0x20:data;
data = relay._1?on:off;
stroke_dysplay[17] = (index._640 & !(cursor ^ 10))?0x20:data;
data = relay._2?on:off;
stroke_dysplay[18] = (index._640 & !(cursor ^ 11))?0x20:data;
data = relay._3?on:off;
stroke_dysplay[19] = (index._640 & !(cursor ^ 12))?0x20:data;
data = relay._4?on:off;
stroke_dysplay[20] = (index._640 & !(cursor ^ 13))?0x20:data;
data = relay._5?on:off;
stroke_dysplay[21] = (index._640 & !(cursor ^ 14))?0x20:data;
data = relay._6?on:off;
stroke_dysplay[22] = (index._640 & !(cursor ^ 15))?0x20:data;
data = relay._7?on:off;
stroke_dysplay[23] = (index._640 & !(cursor ^ 16))?0x20:data;
stroke_dysplay[24] = 0x20;
data = n_can_termo + 0x31;
stroke_dysplay[25] = (index._640 & !(cursor ^ 17))?0x20:data;
data = (termo_con.all & (mask_set_1[n_can_termo]))?0x2b:0x2d;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 44
stroke_dysplay[26] = (index._640 & !(cursor ^ 18))?0x20:data;//вкл-викл
канала температури
stroke_dysplay[27] = 0x20;
data = termo_10 + 0x30;
stroke_dysplay[28] = (index._640 & !(cursor ^ 22))?0x20:data;
data = termo_01 + 0x30;
stroke_dysplay[29] = (index._640 & !(cursor ^ 22))?0x20:data;
stroke_dysplay[30] = 0x2c;
data = termo_00 + 0x30;
stroke_dysplay[31] = (index._640 & !(cursor ^ 22))?0x20:data;
}
else
//програмування
{
stroke_dysplay[16] = 0x20;
stroke_dysplay[17] = ((cursor ^ 10))?0x20:0x73;
stroke_dysplay[18] = ((cursor ^ 10))?0x20:0x74;
stroke_dysplay[19] = ((cursor ^ 10))?0x20:0x6f;
stroke_dysplay[20] = ((cursor ^ 10))?0x20:0x72;
stroke_dysplay[21] = ((cursor ^ 10))?0x20:0x65;
stroke_dysplay[22] = ((cursor ^ 10))?0x20:0x7e;
stroke_dysplay[23] = 0x20;
stroke_dysplay[24] = 0x20;
data = n_can_termo + 0x31;
stroke_dysplay[25] = (index._640 & !(cursor ^ 6))?0x20:data;
stroke_dysplay[26] = 0x74;
stroke_dysplay[27] = 0x3d;
data = set_termo_10 + 0x30;
stroke_dysplay[28] = (index._640 & !(cursor ^ 7))?0x20:data;
data = set_termo_01 + 0x30;
stroke_dysplay[29] = (index._640 & !(cursor ^ 7))?0x20:data;
stroke_dysplay[30] = 0x2c;
data = set_termo_00 + 0x30;
stroke_dysplay[31] = (index._640 & !(cursor ^ 7))?0x20:data;
}
for (i = 16;i < 33;i++) //вивод інформації
другого рядку на індикатор
{
delay_50uS();
buff_lcd = stroke_dysplay[i];
port_lcd = buff_lcd | light;;
strob();
port_lcd = buff_lcd << 4 | light;;
strob();
}
}
void BCD_decod(void)
{
h_01 = reg_hour.val; //prg
m_01 = reg_minute.val; //prg
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 45
h_10 = 0;
//prg
m_10 = 0;
while (h_01 > 9)
//prg
{
//prg
h_01 -= 10;
//prg
h_10++;
//prg
}
//prg
while (m_01 > 9)
//prg
{
//prg
m_01 -= 10;
//prg
m_10++;
//prg
}
//prg
reg_hour.all = eeprom_ram[n_sob << 1];
//prg
reg_minute.all = eeprom_ram[(n_sob << 1) + 1]; //prg
sob_10 = 0;
sob_01 = n_sob + 1; //prg перетворення з
двійкового у двійково-десятикове значення
while (sob_01 > 9)
{
//prg номера події
sob_01 -= 10;
sob_10++;
}
H_01 = time_hour; //rab
значення годин та хвилин в BCD
M_01 = time_minute;
H_10 = 0;
M_10 = 0;
while (H_01 > 9)
{
H_01 -= 10;
H_10++;
}
while (M_01 > 9)
{
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 46
M_01 -= 10;
M_10++;
}
//***************************************
if (termo[n_can_termo] == 0xffff)
{
termo_00 = 0x2f;
termo_01 = 0x2f;
termo_10 = 0x2f;
}
else
{
termo_01 = (char)(termo[n_can_termo] >> 4);
//rab temperatury в BCD
termo_10 = 0;
while (termo_01 > 9)
{
termo_01 -= 10;
termo_10++;
}
termo_00 = tabl_termo[(termo[n_can_termo] & 0x000f)];
}
set_termo_01 = (char)(set_termo[n_can_termo] >> 4);
//set temperatury в BCD
set_termo_10 = 0;
while (set_termo_01 > 9)
{
set_termo_01 -= 10;
set_termo_10++;
}
set_termo_00 = tabl_termo[(set_termo[n_can_termo] & 0x000f)];
}
void alarm(void)
//rab
{
char i;
if (status.alarm == 1)
{
for (i = 0;i < 200;i += 2)
{
reg_hour.all = eeprom_ram[i];
// перенос из ROM в RAM
reg_minute.all = eeprom_ram[i + 1];
if ((reg_minute.action > 1) && (_switch.all &
mask_set_1[reg_hour.n_can])) //подія активна та канал на
"автоматі"
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 47
{
if ((reg_minute.val == time_minute) &&
(reg_hour.val == time_hour)) //час співпав
{
if (reg_minute.action == 3)
//включити
_auto.all |=
mask_set_1[reg_hour.n_can];
else if (reg_minute.action == 2)
//виключити
_auto.all &=
~mask_set_1[reg_hour.n_can];
}
}
}
}
status.alarm = 0;
}
//*******************************************************************************
*******************************************************
void out(void)
{
TRISD = 0;
TRISA = 0x0f;
relay._0 = _switch._0?_auto._0:_manual._0;
relay._1 = _switch._1?_auto._1:_manual._1;
relay._2 = _switch._2?_auto._2:_manual._2;
relay._3 = _switch._3?_auto._3:_manual._3;
relay._4 = _switch._4?_auto._4:_manual._4;
relay._5 = _switch._5?_auto._5:_manual._5;
relay._6 = _switch._6?_auto._6:_manual._6;
relay._7 = _switch._7?_auto._7:_manual._7;
relay_port_1 = relay._0;
relay_port_2 = relay._1;
relay_port_3 = relay._2;
relay_port_4 = relay._3;
relay_port_5 = relay._4;
relay_port_6 = relay._5;
relay_port_7 = relay._6;
relay_port_8 = relay._7;
counter--;
compare_out[0] = (counter + 0) & limit;
compare_out[1] = (counter + shift_1) & limit;
compare_out[2] = (counter + shift_2) & limit;
compare_out[3] = (counter + shift_3) & limit;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 48
if ((termo_out[0] > 0) && (compare_out[0] == termo_out[0]))
reg_1 = termo_con.on_1?1:0;
else if (compare_out[0] == 0)
reg_1 = 0;
if ((termo_out[1] > 0) && (compare_out[1] == termo_out[1]))
reg_2 = termo_con.on_2?1:0;
else if (compare_out[1] == 0)
reg_2 = 0;
if ((termo_out[2] > 0) && (compare_out[2] == termo_out[2]))
reg_3 = termo_con.on_3?1:0;
else if (compare_out[2] == 0)
reg_3 = 0;
if ((termo_out[3] > 0) && (compare_out[3] == termo_out[3]))
reg_4 = termo_con.on_4?1:0;
else if (compare_out[3] == 0)
reg_4 = 0;
}
//*******************************************************************************
*********************
void real_time(void)
{
char i;
// RC3 = 1;
second += 2;
if (second > 59)
{
second = 0;
time_minute++;
status.alarm = 1;
if (time_minute > 59)
{
time_minute = 0;
time_hour++;
if (time_hour > 23)
time_hour = 0;
}
}
if (status.alarm == 1)
alarm();
if (status.no_pow > 0)
{
// pow_dysplay = 0;
// pow_sensor = 0;
rs = 0;
tmr_dysp_start = 50;
OSCCON = 0x02;
TRISD = 0xff;
TRISA = 0xff;
}
status.no_pow++;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 49
// RC3 = 0;
}
//*******************************************************************************
**************************8
void keyboard(void)
{
static char k,m,j;
k = PORTB & 0b00111110;
if ((m == no_pusch) && (k == pusch_up))
key = up ;
else if ((m == no_pusch) && (k == pusch_down))
key = down;
else if ((m == no_pusch) && (k == pusch_left))
key = left;
else if ((m == no_pusch) && (k == pusch_right))
key = right;
else if ((m == no_pusch) && (k == pusch_enter))
key = enter;
else if ((m == pusch_left) && (k == 0x2a))
{
status.work = 1;
cursor = 0;
}
else if ((m == pusch_up) && (k == 0x16))
{
status.work = 0;
cursor = 0;
}
else if ((m == pusch_up) && (k == pusch_up))
{
if (timer_key)
timer_key--;
else
{
if ((index.all & 0b00011111) == 0b00011111)
key = up;
}
}
else if ((m == pusch_down) && (k == pusch_down))
{
if (timer_key)
timer_key--;
else
{
if ((index.all & 0b00011111) == 0b00011111)
key = down;
}
}
else if ((m == no_pusch) && (k == no_pusch))
timer_key = set_time_key_0;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 50
j = rab;
m = k;
}
//*******************************************************************************
**********************
//*******************************************************************************
*********
void func_0(void)
{
ds_port_1 = 0;
if (termo_con._1 == 0)
{
ds_1_reset();
delay_500uS();
ds_1_write(0xcc);
delay_150uS();
ds_1_write(0x44);
termo_con._1 = 1;
tmr_ds_1 = 0x0a;
}
else
{
if (tmr_ds_1)
tmr_ds_1--;
else
{
ds_1_reset();
delay_500uS();
ds_1_write(0xcc);
delay_150uS();
ds_1_write(0xbe);
delay_500uS();
ds_1_read();
termo_con._1 = 0;
if ((Crc8(stroke_rx,9) == 0))
{
termo_val.mb = stroke_rx[1];
termo_val.lb = stroke_rx[0];
termo[0] = termo_val.all + corr_termo[0];
if (termo[0] < set_termo[0])
{
termo_out[0] = (set_termo[0] -
termo[0]) << 4;
if (termo_out[0] > limit)
termo_out[0] = limit;
}
else
{
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 51
termo_out[0] = 0;
}
}
else
{
termo[0] = 0xffff;
termo_out[0] = 0;
}
}
}
alarm();
set_cursor();
}
void func_1(void)
{
ds_port_2 = 0;
if (termo_con._2 == 0)
{
ds_2_reset();
delay_500uS();
ds_2_write(0xcc);
delay_150uS();
ds_2_write(0x44);
termo_con._2 = 1;
tmr_ds_2 = 0x0a;
}
else
{
if (tmr_ds_2)
tmr_ds_2--;
else
{
ds_2_reset();
delay_500uS();
ds_2_write(0xcc);
delay_150uS();
ds_2_write(0xbe);
delay_500uS();
ds_2_read();
termo_con._2 = 0;
if ((Crc8(stroke_rx,9) == 0))
{
termo_val.mb = stroke_rx[1];
termo_val.lb = stroke_rx[0];
termo[1] = termo_val.all + corr_termo[1];
if (termo[1] < set_termo[1])
{
termo_out[1] = (set_termo[1] -
termo[1]) << 4;
if (termo_out[1] > limit)
termo_out[1] = limit;
}
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 52
else
{
termo_out[1] = 0;
}
}
else
{
termo[1] = 0xffff;
termo_out[1] = 0;
}
}
}
BCD_decod();
if (status.no_pow == 0)
display();
}
void func_2(void)
{
ds_port_3 = 0;
if (termo_con._3 == 0)
{
ds_3_reset();
delay_500uS();
ds_3_write(0xcc);
delay_150uS();
ds_3_write(0x44);
termo_con._3 = 1;
tmr_ds_3 = 0x0a;
}
else
{
if (tmr_ds_3)
tmr_ds_3--;
else
{
ds_3_reset();
delay_500uS();
ds_3_write(0xcc);
delay_150uS();
ds_3_write(0xbe);
delay_500uS();
ds_3_read();
termo_con._3 = 0;
if ((Crc8(stroke_rx,9) == 0))
{
termo_val.mb = stroke_rx[1];
termo_val.lb = stroke_rx[0];
termo[2] = termo_val.all + corr_termo[2];
if (termo[2] < set_termo[2])
{
termo_out[2] = (set_termo[2] -
termo[2]) << 4;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 53
if (termo_out[2] > limit)
termo_out[2] = limit;
}
else
{
termo_out[2] = 0;
}
}
else
{
termo[2] = 0xffff;
termo_out[2] = 0;
}
}
}
set_cursor();
}
void func_3(void)
{
ds_port_4 = 0;
if (termo_con._4 == 0)
{
ds_4_reset();
delay_500uS();
ds_4_write(0xcc);
delay_150uS();
ds_4_write(0x44);
termo_con._4 = 1;
tmr_ds_4 = 0x0a;
}
else
{
if (tmr_ds_4)
tmr_ds_4--;
else
{
ds_4_reset();
delay_500uS();
ds_4_write(0xcc);
delay_150uS();
ds_4_write(0xbe);
delay_500uS();
ds_4_read();
termo_con._4 = 0;
if ((Crc8(stroke_rx,9) == 0))
{
termo_val.mb = stroke_rx[1];
termo_val.lb = stroke_rx[0];
termo[3] = termo_val.all + corr_termo[3];
if (termo[3] < set_termo[3])
{
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 54
termo_out[3] = (set_termo[3] -
termo[3]) << 4;
if (termo_out[3] > limit)
termo_out[3] = limit;
}
else
{
termo_out[3] = 0;
}
}
else
{
termo[3] = 0xffff;
termo_out[3] = 0;
}
}
}
BCD_decod();
if (status.no_pow == 0)
display();
}
typedef void(*func_point)(void);
const func_point func[4] = {func_0,func_1,func_2,func_3};
//*******************************************************************************
**********
void init_LCD()
{
pow_dysplay = 1;
pow_sensor = 1;
rs = 0;
rw = 0;
delay_15mS();
port_lcd = 0x30 | light;
strob();
delay_5mS(); //не перевіряємо
strob();
delay_150uS(); // не перевіряємо
strob();
delay_50uS(); //
strob();
delay_50uS(); //
strob();
port_lcd = 0x20 | light;
strob();
delay_50uS(); //
port_lcd = 0x20 | light; // чотирибітна шина
strob();
port_lcd = 0x80 | light; //N F
strob();
delay_50uS();
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 55
port_lcd = 0x00 | light;
strob();
port_lcd = 0xd0 | light;
strob();
delay_50uS();
port_lcd = 0x00 | light;
strob();
port_lcd = 0x60 | light;
strob();
delay_50uS();
port_lcd = 0x00 | light;
strob();
port_lcd = 0x10 | light;
strob();
delay_15mS();
}
void init(void)
{
char i,j,k;
OSCCON = 0x7a;
PORTA = 0;
PORTB = 0;
PORTC = 0;
PORTD = 0;
PORTE = 0;
TRISA = 0b00001111;
ANSELA = 0;
TRISB = 0b00111111;
ANSELB = 0;
TRISC = 0b00000000;
ANSELC = 0;
TRISD = 0;
ANSELD = 0;
TRISE = 0;
ANSELE = 0;
INTE = 1;
INTEDG = 1;
//переривання за позитивним фронтом
TMR1IE = 1;
T1CON = 0x8d;
INTF = 0;
TMR1IF = 0;
PEIE = 1;
nWPUEN = 0;
WPUB = 0b00111110;
timer_light = set_time_light;
init_LCD();
status.work = 0;
cursor = 20;
key = 0x20;
k = 0;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 56
for (j = 0;j < 8;j++)
//перенесення даних із ПЗП в ОЗП
{
for (i = 0;i < 32;i++)
{
eeprom_ram[k] = eeprom_rom[j][i];
k++;
}
}
for (i = 0;i < 4;i++)
{
j = i << 1;
buffer.lb = eeprom_ram[200 + j];
buffer.mb = eeprom_ram[201 + j];
set_termo[i] = buffer.all;
buffer.lb = eeprom_ram[208 + j];
buffer.mb = eeprom_ram[209 + j];
corr_termo[i] = buffer.all;
}
_switch.all = eeprom_ram[216];
}
//*******************************************************************************
********
void main(void)
{
init();
while (1)
{
if ((INTF == 0) && (TMR1IF == 0))
SLEEP(); //якщо переривання немає — спимо
else
{
if (INTF == 1)
// якщо переривання від RB0
{
if (status.write == 1)
write_flash();
OSCCON = 0x7a;
if (pow_dysplay == 0)
if (tmr_dysp_start)
tmr_dysp_start--;
else
init_LCD();
status.no_pow = 0;
keyboard();
(func[index.all & 0x03])();
out();
index.all++;
INTF = 0;
}
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 57
if (TMR1IF == 1)
// якщо преривання від
TMR1
{
CLRWDT();
status.second = !status.second;
real_time();
TMR1IF = 0;
}
}
}
}
4.2 Прошивка МК змінних
#include <htc.h>
#define relay_port_1 LATD0
#define relay_port_2 LATD2
#define relay_port_3 LATD4
#define relay_port_4 LATD6
#define relay_port_5 LATD7
#define relay_port_6 LATD5
#define relay_port_7 LATD3
#define relay_port_8 LATD1
#define port_lcd LATC
#define rs RE0
#define rw RE1
#define e RE2
#define ds_port_1 RA0
#define ds_port_2 RA1
#define ds_port_3 RA2
#define ds_port_4 RA3
#define reg_1 LATA4
#define reg_2 LATA5
#define reg_3 LATA6
#define reg_4 LATA7
#define light_sw RC3
#define tris_1 TRISA0
#define tris_2 TRISA1
#define tris_3 TRISA2
#define tris_4 TRISA3
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 58
#define on 0x2b
#define off 0x2d
#define noact 0x78
#define au 0xed
#define man 0xdf
#define pusch_up 0b00110110
#define pusch_down 0b00011110
#define pusch_left 0b00101110
#define pusch_right 0b00111010
#define pusch_enter 0b00111100
#define no_pusch 0b00111110
#define prg (char)(pusch_left & pusch_right)
#define rab (char)(pusch_up & pusch_down)
#define up 0x30
#define down 0x31
#define left 0x32
#define right 0x33
#define enter 0x34
#define set_time_key_0 100
#define set_time_key_1 50
#define set_time_light 500
//#define set_time_pulse 10
#define limit 0x3f
#define shift_1 limit/4
#define shift_2 limit/2
#define shift_3 shift_1 +
shift_2
unsigned char eeprom_ram[224];
unsigned char second,buff_lcd,cursor,data,key,light;
unsigned char n_can,counter,count_wr;
unsigned char H_10,H_01,M_10,M_01,h_10,h_01,m_10,m_01,time_hour,time_minute,i_01,i_10;
unsigned char
n_can_termo,termo_10,termo_01,termo_00,set_termo_10,set_termo_01,set_termo_00;
unsigned char n_sob,sob_10,sob_01;
unsigned int termo[4];
int corr_termo[4];
unsigned int termo_out[4];
unsigned int set_termo[4];
unsigned char tmr_ds_1,tmr_ds_2,tmr_ds_3,tmr_ds_4;
unsigned char ds_bit[] = {0x01,0x02,0x04,0x08};
unsigned char set_time_pulse;
unsigned char timer_key,timer_dysp_start,timer_pulse;
char stroke_dysplay[32];
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 59
unsigned char compare_out[4];
unsigned char stroke_rx[9];
unsigned int timer_light;
union {
struct{
unsigned _0:1;
unsigned _1:1;
unsigned _2:1;
unsigned _3:1;
unsigned _4:1;
unsigned _5:1;
unsigned _6:1;
unsigned _7:1;
};unsigned char all;
}_pulse;
union {
struct{
unsigned _0:1;
unsigned _1:1;
unsigned _2:1;
unsigned _3:1;
unsigned _4:1;
unsigned _5:1;
unsigned _6:1;
unsigned _7:1;
};unsigned char all;
}_switch;
union {
struct{
unsigned _0:1;
unsigned _1:1;
unsigned _2:1;
unsigned _3:1;
unsigned _4:1;
unsigned _5:1;
unsigned _6:1;
unsigned _7:1;
};unsigned char all;
}_auto;
union {
struct{
unsigned _0:1;
unsigned _1:1;
unsigned _2:1;
unsigned _3:1;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 60
unsigned _4:1;
unsigned _5:1;
unsigned _6:1;
unsigned _7:1;
};unsigned char all;
}_manual;
union {
struct{
unsigned _0:1;
unsigned _1:1;
unsigned _2:1;
unsigned _3:1;
unsigned _4:1;
unsigned _5:1;
unsigned _6:1;
unsigned _7:1;
};unsigned char all;
}relay;
union {
struct{
unsigned _40:1;
unsigned _80:1;
unsigned _160:1;
unsigned _320:1;
unsigned _640:1;
unsigned _1280:1;
unsigned _2560:1;
unsigned _5120:1;
};unsigned char all;
}index;
union {
struct{
unsigned :1;
unsigned go:1;
unsigned write:1;
unsigned second:1;
unsigned no_pow:2;
unsigned work:1;
unsigned alarm:1;
};unsigned char all;
}status;
union {
struct{
unsigned on_1:1;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 61
unsigned on_2:1;
unsigned on_3:1;
unsigned on_4:1;
unsigned _1:1;
unsigned _2:1;
unsigned _3:1;
unsigned _4:1;
};unsigned char all;
}termo_con;
union {
struct{
unsigned val:5;
unsigned n_can:3;
};unsigned char all;
}reg_hour;
union {
struct{
unsigned val:6;
unsigned action:2;
};unsigned char all;
}reg_minute;
union {
struct{
unsigned tim:3;
unsigned key:5;
};unsigned char all;
}qwerty;
union {
struct {
unsigned lb:8;
//
unsigned mb:8;
//
};unsigned int all;
}termo_val;
union {
struct {
unsigned lb:8;
//
unsigned mb:8;
//
};unsigned int all;
}buffer;
union {
struct {
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 62
unsigned _bit:1;
//
unsigned :7;
//
};unsigned char all;
}shift_reg_tx;
union {
struct {
unsigned :7;
unsigned _bit:1;
};unsigned char all;
}shift_reg_rx;
const unsigned char eeprom_rom[8][32] =
{{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}};
const unsigned char qwesad[] = {0,0,0};
const unsigned char tabl_termo[] =
{0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
const unsigned char mask_set_1[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
const char Crc8Table[256]=
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 63
{
0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65,
157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220,
35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98,
190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255,
70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7,
219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154,
101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36,
248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185,
140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205,
17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80,
175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238,
50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115,
202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139,
87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22,
233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168,
116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53
};
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 64
5 Оцінка точності програмованого таймера
Похибка програмованого таймера для робототехнічних комплексів не є
постійною величиною, а змінюється в часі в залежності від зміни умов
проведення аналізів. Для вивчення похибки програмованого таймера-генератора
для робототехнічних комплексів необхідно розділити її на складові частини.
Тоді загальна похибка програмованого таймера-генератора для
робототехнічних комплексів розраховується за формулою:
2 2 2 2 2 2 2
1 2 3 4 5 6 7 , (5.1)
де 1 – приведена похибка кварцового резонатора;
2 – приведена похибка датчика температури;
3 – приведена похибка центрального процесора;
4 – приведена похибка органів керування;
5 – приведена похибка блока управління зовнішніми пристроями;
6 – приведена похибка блока живлення;
7 – приведена похибка мікроконтролера.
0,42 0,12 1,02 0,32 0,12 0,22 1,82 2,133% .
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 65
6 Спеціальний розділ
6.1 Технологічний розділ
Наш програмований таймер для робототехнічних комплексів складається з
двох плат (рисунок 6.1 та 6.2). Розміри плат становлять ширина 73 мм, довжина
134 мм, товщина 5 мм, що є досить компактна в нашому випадку.
Рисунок 6.1 – Друкована плата контролера
Рисунок 6.2 – Друкована плата блоку управління зовнішніми пристроями
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 66
6.2 Економічний розділ
Розраховуємо вартість матеріалів, запасних частин, комплектуючих які
витрачаються на виготовлення пристрою.
Таблиця 6.1 - Розрахунок вартості матеріалів, запасних частин,
комплектуючих матеріалів, грн.
№ Назва Кількість Вартість грн.
За одиницю Загальна
1 Великий корпус 1 108,00 108,00
2 Малий корпус 1 87,00 87,00
3 Трансформатор 220\12 1 71,00 71,00
4 Друковані плати 2 250,00 500,00
5 Індекатор WA1602L 1 415,00 415,00
6 Реле 8 25,00 200,00
7 Сімістор BTA 140-800 4 48,00 192,00
8 Клемник 4-х контактний 6 31,00 186,00
9 Клемник 3-х контактний 4 21,00 84,00
10 Кнопки 5 5,00 25,00
11 Штовхачі для кнопок 5 2,2 11,00
12 Зумер 1 5,00 5,00
13 Тримач батареї CR 1 4,00 4,00
14 Мікроконтролер PIC16F1517-I/PT 1 76,00 76,00
15 Датчик DS18B20 4 43,00 172,00
16 Мікросхема ULN2003 2 4,50 9,00
17 Мікросхема МС34063 1 11,00 11,00
18 Мікросхема МОС3062 4 21,00 84,00
19 Діодний міст DF08 1 15,00 15,00
20 Діод LL4148 11 0,9 9,9
21 Діод MBRS140 2 5,50 11,00
22 Діод BAV99 4 0,60 2,40
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 67
23 Діод GS1M 2 1,20 2,40
24 Стабілітрон BZV55 4.7V 1 11,00 11,00
25 Дросель 100мкГн & 500мА 1 7,00 7,00
26 Роз’єм ICD20 2 5,00 10,00
27 Роз’єм ВН20 2 5,00 10,00
28 Плівочний конденсатор 4 1,50 6,00
29 Конденсатор Ел 2200.0 & 25в 1 10,00 10,00
30 Конденсатор Ел 1000.0 & 25в 1 7,00 7,00
31 Конденсатор Ел 100.0 & 25в 1 3,00 3,00
32 Конденсатор 0805 9 0,70 6,30
33 Конденсатор 0.125Вт 12 1,50 18,00
34 Резистор 0805 19 0,50 9,50
Всього 125 2378,50
Загальна вартість матеріалів, запасних частин, комплектуючих складає
2378,50 грн.
Розробка пристрою передбачає виконання наступних видів робіт, які
вказані в таблиці 6.2
Таблиця 6.2 - Витрати часу на розробку пристрою.
Норма часу на Загальні
№ Назва робіт К-сть, шт.
розробку, год. витрати часу
1 Виготовлення 1 2 2
корпусу
2 Монтаж 125 0,02 2,5
елементів
3 Пайка 125 0,02 2,5
елементів
4 Збирання 1 1 1
пристрою
5 Наладка 1 2 2
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 68
пристрою
Всього 10
6.3 Охорона праці
Аналіз небезпек і шкідливостей, що виникають у процесі проведення
досліджень в приміщенні лабораторії
Даний проект характеризується тим, що для проведення усього комплексу з
розробки програмованого таймеру необхідний сучасний комплекс програмних і
апаратних засобів досліджень. Тому робота виконується за допомогою сучасного
персонального комп’ютера (ПК) у приміщенні експериментальної лабораторії.
Аналіз небезпек та шкідливостей полягає у визначенні наявності шкідливих
факторів на робочому місці при роботі в даному приміщенні.
Приміщення лабораторії розташоване на 2-му поверсі цегляної
пятиповерхової будівлі. Устаткування лабораторії складається з чотирьох ПК і
двох друкувальних пристроїв. Приміщення має наступні розміри: довжина 8 м,
ширина 4,5 м, висота 3,2 м і розрахований на чотирьох одночасно працюючих
чоловік. Площа, яка припадає на одного працівника – 9 м2, об’єм – 28,8 м3, що
відповідає вимогам ДБН В.2.2.28-2010.
Робота з комп’ютерного моделювання відноситься до категорії 1-легких,
оскільки виконується сидячи, не потребує систематичної фізичної напруги або
підняття і перенесення ваги. Енерговитрати при виконанні такої роботи
складають приблизно 150 ккал/год, це еквівалентно 172 Дж/сек.
Характеристика зорової роботи з ПК відповідає великому класу точності,
тобто найменший розмір об'єкта розрізнення понад 0,3мм до 0,5мм, що відповідає
3 розряду зорової роботи, підрозряд – в; контраст розрізнення об'єкта з фоном –
великий, фон світлий.
Лабораторія має бічне природне освітлення через три світлових отвори у
зовнішній стіні (вікон). Вікно має такі розміри: ширина 1,3 м; висота 1,8 м.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 69
Нормований коефіцієнт природного освітлення становить 1,2%. Площа світлових
отворів забезпечує необхідний коефіцієнт природного освітлення, фактичне
значення якого становить 38-46%, що є достатнім рівнем, обумовленим ДБН
В.2.5-28-2018. Для темного часу доби передбачене штучне освітлення.
Лабораторія обладнана шістьма світильниками, кожний з яких має по дві
люмінесцентні лампи денного світла, потужністю 58 Вт кожна. Фактичне
значення штучного загального освітлення становить 415 лк, а нормативне
значення – 400 лк. Отже, рівень штучного освітлення відповідає ДБН В.2.5-28-
2018.
Мікроклімат впливає на терморегуляцію організму людини, яка є необхідною
умовою його життєздатності і нормальної життєдіяльності. Терморегуляцією
називається сукупність процесів, пов'язаних з утворенням тепла в організмі
людини і віддачею його в навколишнє середовище, в результаті яких температура
тіла людини підтримується на постійному рівні (36,5-37 ºC) незалежно від
зовнішніх умов.
Мікроклімат впливає, головним чином, на теплообмін між організмом
людини і навколишнім середовищем. Теплообмін здійснюється в основному
трьома способами:
1. конвекцією за рахунок різниці температур тіла людини і навколишнього
повітря, а також за рахунок руху повітря;
2. випромінюванням за рахунок різниці температур тіла людини і
навколишніх предметів;
3. випаровуванням за рахунок різниці вологості поверхні тіла людини і
навколишнього повітря.
Процес конвекції є перенесенням тепла в результаті переміщення і
перемішування частинок повітря. Процес теплового випромінювання полягає в
перенесенні тепла від одного тіла до іншого інтенсивними інфрачервоними
променями.
При нормальних умовах (T = 20 ºC, φ = 50%, P = 760 мм.рт.ст. (101,3 кПа), v
= 0,1 м/с) людина в стані спокою віддає в навколишнє середовище в середньому
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 70
420 кДж / год (100 ккал / год): конвекцією - 30%; випромінюванням - 45%;
випаровуванням - 25%.
Для забезпечення нормального теплообміну між організмом людини і
навколишнім середовищем встановлені нормативні параметри мікроклімату. При
відхиленні фактичних параметрів від нормативних відбувається порушення
теплообміну, терморегуляції і пов'язаних з ними багатьох функцій організму, що
призводить до виникнення ряду захворювань.
Фактичні значення основних факторів мікроклімату наступні:
1. Температура повітря:
- в холодний період року – 22-23°С;
- в теплий період року – 30-32°С.
2. Вологість повітря:
- в холодний період року – 50-52%;
- в теплий період року – 40-45%.
3. Швидкість руху повітря:
- в холодний період року – 0,05-0,1 м/с;
- в теплий період року – 0,1-0,15 м/с.
Оптимальні параметри мікроклімату в робочій зоні :
1. Температура повітря:
- в холодний період року – 20-22°С;
- в теплий період року – 25-26°С.
2. Вологість повітря: 40-60 %.
3. Швидкість руху повітря:
- не більше 0,1м/с;
Наведені фактичні значення задовольняють ДСН 3.3.6.042-99 «Санітарні
норми мікроклімату виробничих приміщень», за виключенням температури в
теплий період року. Необхідно розрахувати і змонтувати систему
кондиціонування повітря.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 71
Дане приміщення відноситься до класу приміщень без підвищеної
небезпеки ураження електричним струмом (ПУЕ-17), тому що відповідає таким
вимогам:
– кабінет має струмонепровідні дерев'яні поли (паркет);
– відносна вологість повітря 50-60%;
– немає утворень пилу , що проводить струм;
– неможливість одночасного дотику з однієї сторони до металевих
конструкцій будинку, що мають з'єднання з землею, і з іншої сторони до корпусів
електроустаткування.
Вся електрична підводка до столів, де розташовані персональні
комп’ютери, захищена від механічних ушкоджень. Для захисту від ураження
електричним струмом застосоване заземлення відповідно ДСТУ Б В.2.5-82:2016.
При роботі з ПК не відбувається утворення і виділення в повітря загально-
токсичних, подразнюючих, канцерогенних і інших шкідливих речовин,
концентрація яких перевищувала б установлені норми і правила, тому повітря
робочої зони відповідає вимогам ДСТУ-Н Б А.3.2-1:2007 і вимогам до ГДК
шкідливих речовин і пилу.
Джерела вібрація в даному приміщенні відсутні, що відповідає вимогам
ДСН 3.3.6.039-99
В даному приміщенні рівень шуму визначається шумом від системних
блоків та від друкувального пристрою (принтеру) і не перевищує 52 дБА, що
відповідає вимозі ДСН 3.3.6.037-99
Приміщення лабораторії розташоване в північній частині будинку, стіни
пофарбовані кремовою фарбою (пастельний тон) із коефіцієнтом відбиття 40-60%,
фарбування має матову структуру. Робочі місця обладнані відповідно до вимог
ДСТУ 8604:2015. У даному приміщенні робочі місця розташовані таким чином,
щоб у поле зору не потрапляли вікна й освітлювальні прилади. Екрани моніторів
розміщені під кутом 90-105о до вікна, у поле зору не потрапляють поверхні з
дзеркальним відбиттям. Співвідношення яскравості екрана з найближчими
поверхнями не перевищує 5:1, покриття столу матове з коефіцієнтом відбиття 0,3-
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 72
0,4. Монітори розміщені так, щоб відстань від очей користувача до екрана
складала не менше 700 мм, кут зору 30о. Руки користувача розташовуються на
робочому столі в горизонтальному положенні, передбачена опора для спини.
Пожежна безпека регламентується НАПБ А.01.001-2014. Приміщення
лабораторії відноситься до категорії В (ДСТУ Б В.1.1-36:2016) –
пожежонебезпечних приміщень, тому що є наявність горючих речовин: дерев'яні
столи і стільці, дерев'яна підлога, віконна рама; приміщення сухе з відносною
вологістю 40-60%. Згідно умов експлуатації приміщення лабораторії відповідно
до ДБН В.2.5-56-2014 обладнане автоматичним пожежним димовим
оповіщувачем ІПК-3.1М, який формує сигнал про пожежу при виявлені чиннику,
що супроводжує пожежу - дим.
Додатково для гасіння пожежі в кабінеті передбачений ручний
вуглекислотний вогнегасник типу ВВК-9, призначений для гасіння твердих і
рідких горючих речовин, а також електроустановок.
При виникненні пожежі люди евакуюються з лабораторії шляхом виходу в
коридор другого поверху, що веде на сходову клітку, яка має вихід назовні через
вестибюль (ДБН В.1.1.7-2016).
За результатами аналізу умов праці дослідника, що виникають у процесі
роботи при статистичній обробці матеріалів, можна зробити висновок, що всі
параметри лабораторії відповідають вимогам нормативних документів для даного
типу роботи. Відхиленням від встановлених вимог є відсутність системи
кондиціонування повітря. Виходячи з цього рекомендується в приміщенні
лабораторії встановити систему кондиціонування повітря.
Розробка системи кондиціонування повітря
Кондиціонування повітря — це створення та автоматичне підтримування в
приміщенні заданих або таких, що змінюються за певною програмою
метеорологічних умов, які є найбільш сприятливими для працівників чи для
нормального протікання технологічного процесу. Кондиціонування повітря може
бути повним та неповним. Повне кондиціонування повітря передбачає
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 73
регулювання температури, вологості, швидкості руху повітря, а також можливість
його додаткового оброблення (очищення від пилу, дезінфекції, дезодорації,
озонування). При неповному кондиціонуванні регулюється лише частина
параметрів повітря.
Кондиціонування повітря здійснюється кондиціонерами, які
підрозділяються на центральні та місцеві. Центральні кондиціонери призначені
для обслуговування великих за розмірами приміщень. Оброблення повітря
проводиться в одному центрі, що розташований поза приміщеннями, в яких
здійснюється кондиціонування і зв'язаного з останніми каналами для подачі та
рециркуляції повітря. Місцеві кондиціонери мають малу продуктивність і
встановлюються безпосередньо в невеликих приміщеннях. Такі кондиціонери,
зазвичай, працюють на зовнішньому повітрі за, так званою, припливною схемою.
Система кондиціонування оснащується спеціальними пристроями, які
автоматично регулюють за заданими умовами необхідні параметри повітря, а
отже й відповідні характеристики теплоносія та холодної води.
Принцип роботи кондиціонера.
У основі роботи будь-якого кондиціонера лежить властивість рідин
поглинати тепло при випаровуванні і виділяти - при конденсації. Щоб зрозуміти,
яким чином відбувається цей процес, розглянемо схему кондиціонера на прикладі
спліт-системи:
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 74
Рисунок 7.1 - Схема кондиціонера побудована за принципом спліт-системи
Основними вузлами будь-якого кондиціонера є:
Компресор - стискає фреон і підтримує його рух по холодильному контуру.
Конденсатор - радіатор, розташований в зовнішньому блоці. Назва
відображає процес, що відбувається при роботі кондиціонера, - перехід фреону з
газоподібної фази в рідку (конденсація).
Випарник - радіатор, розташований у внутрішньому блоці. У випарнику
фреон переходить з рідкої фази в газоподібну (випаровування).
ТРВ (терморегулюючий вентиль) - знижує тиск фреону перед випарником.
Вентилятори - створюють потік повітря, що обдуває випарник і
конденсатор. Використовуються для інтенсивнішого теплообміну з навколишнім
повітрям.
Компресор, конденсатор, ТРВ і випарник сполучені мідними трубами і
утворюють холодильний контур, усередині якого циркулює суміш фреону і
невеликої кількості компресорного масла.
В процесі роботи кондиціонера на вхід компресора з випарника надходить
газоподібний фреон під низьким тиском в 3 - 5 атмосфери і температурою 10 -
20°С. Компресор стискає фреон до тиску 15 - 25 атмосфери, внаслідок чого фреон
нагрівається до 70 - 90°С, після чого поступає в конденсатор.
Завдяки інтенсивному обдуванню конденсатора, фреон остигає і
переходить з газоподібної фази в рідку з виділенням додаткового тепла.
Відповідно, повітря, що проходить через конденсатор, нагрівається.
На виході конденсатора фреон знаходиться в рідкому стані, під високим
тиском і з температурою на 10 - 20°С вище за температуру атмосферного повітря.
З конденсатора теплий фреон поступає в терморегулюючий вентиль (ТРВ), який в
простому випадку є капіляром (довга тонка мідна трубка, звита в спіраль). На
виході ТРВ тиск і температура фреону істотно знижуються, частина фреону при
цьому може випаруватися.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 75
Після ТРВ суміш рідкого і газоподібного фреону з низьким тиском
поступає у випарник. У випарнику рідкий фреон переходить в газоподібну фазу з
поглинанням тепла, відповідно, повітря, що проходить через випарник, остигає.
Далі газоподібний фреон з низьким тиском поступає на вхід компресора і увесь
цикл повторюється.
Цей процес лежить в основі роботи будь-якого кондиціонера і не залежить
від його типу, моделі або виробника.
При вирішенні питання щодо доцільності кондиціонування повітря
необхідно враховувати й економічні чинники.
Через традиції, що склалися, окрім одиниць системи СІ, для вимірювання
потужності кондиціонера (при роботі на охолоджування або нагрів)
використовують також позасистемну одиницю «британська теплова
одиниця/година (БТЕ/год), величина якої визначається так: кількість тепла,
необхідного для нагріву одного фунт (0,45 кг) води, на один градус Фаренгейта
(0,56 °С). Одиниця БТЕ/год так співвідноситься з одиницею системи СІ (Вт): 1 Вт
= 3,412 БТЕ/год.
Таким чином, використовувані в кліматичній техніці одиниці вимірювання
потужності (продуктивності) зв'язані між собою співвідношеннями: 1 Вт = 3,412
БТЕ/год, 1 Вт = 1,163 ккал/год, 1 БТЕ/год = 0,293 Вт, 1 ккал/год = 3,968 БТЕ/год.
Потрібну для конкретного приміщення потужність кондиціонера по
холоду можна розрахувати, визначивши лишнє тепло в приміщені, в якому він
повинен бути встановлений.
Надлишкове тепло в приміщені розраховують за формулою:
Qз Q1 Q2 Q3 Q4 Q5
де Qз – загальна кількість тепла;
Q1 – лишнє тепло в приміщені від сонячної радіації та штучного світла;
Q2 – надходження тепла від людей, що знаходяться в приміщенні;
Q3 – надходження тепла від офісного устаткування;
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 76
Q4 – надходження тепла від побутової техніки;
Q5 – надходження тепла від опалювання.
Надходження тепла від сонячної радіації залежить від площі і
розташування вікон. На широті Черкас надходження тепла через 1 кв. м скла
будуть:
- північна орієнтація – 42 Вт/м2;
- північно-східна і північно-західна орієнтація – 215 Вт/м2;
- східна і західна орієнтація – 290 Вт/м2;
- південно-східна і південно-західна орієнтація – 220 Вт/м2;
- південна орієнтація – 130 Вт/м2;
- горизонтальне скління – 400 Вт/м2.
Якщо вікно затінене деревами або є щільні світлі жалюзі, приведені
величини ділять на коефіцієнт 1,4.
Кабінет має бічне природне освітлення через чотири світлових отвори у
зовнішній стіні (вікон). Вікно має такі розміри: ширина 1,3м; висота 1,8м.
Надходження тепла від сонячної радіації через вікна, а при використанні
електричного освітлення надходження тепла від штучного освітлення:
Q1.1 w h qs nw 1,3 1,8 42 4 393 (Вт)
де w - ширина вікон,
h - висота вікон,
qs - орієнтація вікна,
nw - кількість вікон.
Q1.2 nL PL 12 60 720 (Вт)
де nL - кількість ламп електричного освітлення,
PL - потужність одної лампи електричного освітлення.
В результаті
Q1 Q1.1 Q1.2 393 7201113 (Вт)
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 77
Надходження тепла від стін істотно менше, тому у ряді випадків ними
нехтують.
Надходження тепла від людей, що знаходяться в приміщенні. Одна людина
залежно від роду занять виділяє:
- відпочинок в сидячому положенні – 120 Вт;
- легка робота в сидячому положенні – 130 Вт;
- помірно активна робота в офісі – 140 Вт;
- легка робота стоячи – 160 Вт;
- легка робота на виробництві – 240 Вт;
- робота середньої тяжкості на виробництві – 290 Вт;
- важка робота – 440 Вт.
Тепер розрахуємо надходження тепла від людей:
Q2 q p np 140 4 560
(Вт)
q
де p - надходження тепла від людини,
n
p - кількість людей.
Надходження тепла від офісного устаткування. Зазвичай вони
приймаються у розмірі 30% від споживаної потужності:
- комп'ютер – 350 Вт;
- лазерний принтер – 400 Вт;
- матричний або струменевий принтер – 50 Вт;
- копіювальний апарат – 500 - 600 Вт.
Q3 qk nk qr (350 4) 2 50 1500
(Вт)
де qk - надходження тепла від комп'ютера,
nk - кількість комп'ютерів,
qr - принтер.
Надходження тепла побутової кухонної техніки. Побутова кухонна техніка
відсутня, тому Q4 0
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 78
У ряді випадків, у високих будівлях з великою площею скління
кондиціонування буває необхідно вже навесні, коли опалювальний сезон ще не
закінчений. В цьому випадку в розрахунку необхідно враховувати лишнє тепло
від системи опалювання, що приблизно дорівнює 180-225 Вт/м2 площі.
Вибираємо Q5 200Вт/м2 .
В результаті загальна сума тепла буде рівна:
Qз Q1 Q2 Q3 Q4 Q5 1113 560 1500 200 3282
(Вт)
Вибираємо близьку по потужності модель кондиціонера із стандартного
ряду: 2,0; 2,5; 3,5; 5,0; 7,0 кВт. В даному випадку достатньо моделі потужністю
3,5 кВт. Вибираємо кондиціонер HAIER AS12NB5HRA.
Рисунок 7.2 - Кондиционер HAIER AS12NB5HRA
Технічні характеристики кондиціонера HAIER AS12NB5HRA наступні:
Потужність охолоджування (Вт): 3500
Потужність обігріву (Вт): 3900
Повітрообмін (куб. м/година): 600
Розміри внутрішнього блоку (мм): 855x280x204
Розміри зовнішнього блоку (мм): 780x540x245
Потужність, яка споживається при охолоджувані (кВт): 1,025
Потужність, яка споживається при обігріві (кВт): 1,08
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 79
Живлення (В/Гц/Ф): 220/50/1
Рівень шуму (дБ): 21/35
Вага внутрішнього блоку (кг): 10,3
Вага зовнішнього блоку (кг): 28
Тип хладагенту: R410А
Контроль температури : Термістор
Кількість швидкостей вентилятора : 3/4
Регулювання коливання жалюзі : Авто
Тип пульта ДУ : ДУ з дисплеєм
Діапазон температур: (-15) … +43 °С
Таймер : 24 год Вкл/викл
Тип компресора : інверторний
Спеціальні функції та пристрої кондиціонера HAIER AS12NB5HRA:
1. Інверторний компресор.
Інверторний принцип управління компресором допомагає домогтися
кращої енергоефективності. Кондиціонер працює плавно і тихо, споживає на 20-
30% менше електроенергії.
2. Режим дбайливого обдування і низький шум.
Залежно від обраного температурного режиму, кондиціонер обирає спосіб
обдування. На низькій швидкості працює тихо, звуковий рівень чутності - всього
16 дБ. Повітряний потік спрямований вгору, в режимі охолодження і вниз, в
режимі опалення.
3. Рівномірна підготовки повітря.
Вертикальні і горизонтальні жалюзі кондиціонера розподіляють
повітряний потік в 11 напрямках. Так досягається рівномірний розподіл повітря
по всій площі та об'єму приміщення.
4. Антикорозійне покриття.
Покриття Blue Fin захищає теплообмінник від впливу пилу і вологи.
Збільшує термін служби обладнання.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 80
Висновки
Створений під час проєктування програмований таймер для
робототехнічних систем є пристроєм, призначеним для вмикання та вимикання
різних виконавчих механізмів у визначений час і регулятора температури для
утримання заданої температури.
Розроблені структурна електрична схема, принципова електрична схема
програмованого таймера для робототехнічних систем, складальне креслення
друкованої плати та креслення друкованої плати. Розроблене програмне
забезпечення програмованого таймера для робототехнічних систем на основі
прошивки мікроконтролера як основної програми, так і змінних.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 81
Список використаної літератури
1. Козбур, І. Р., Марущак, П. О., Медвідь, В. Р., Савків, В. Б., & Пісьціо,
В. П. (2022). Проектування мікропроцесорних систем керування.
2. Главчев, М. І. (2024). Проєктування програм діагностики
комп'ютерних систем та мереж. Частина 2.
3. Шкіль, О., Рахліс, Д., Філіпенко, І., Корнієнко, В., & Рожнова, Т.
(2024). Автоматизоване проєктування вбудованих систем цифрового оброблення
сигналів на платформі SoC. Сучасний стан наукових досліджень та технологій в
промисловості, (1 (27)), 192-203.
4. Марчак, Б. В., & Лашко, О. Л. (2022). Принципи побудови та
реалізація системного менеджера відкладеного запуску програм.
5. Яшанов, С. М., Шевчук, Б. В., & Олефіренко, Т. О. (2022).
Інформаційні технології у виробництві.
6. Мельникович, Д. С. (2025). Автоматизована система керування
будинком.
7. Заікін, В. І. Застосування 3D моделювання під час проєктування та
виготовлення корпусу блоку керування системи ЧПК.
8. Марков, В. Ю. (2025). Програмований генератор випробувальних
сигналів на базі мікроконтролера ATMega328 для перевірки логічних мікросхем.
9. Jing, Z., & Wang, F. (2022, November). The design and implementation of
timer. In 6th International Conference on Mechatronics and Intelligent Robotics
(ICMIR2022) (Vol. 12301, pp. 330-336). SPIE.
10. Кнівець, Є. Г., & Поліщук, В. М. (2025). Багатоканальний циклічний
програмований таймер для керування системою опалення, 109.
11. Микитюк, З., Шимчишин, О., Зворський, А., & Марків, Д. (2024).
Автоматизація процесів керування мікрокліматом житлових приміщень.
12. Ангеліна, М. (2022). Характеристичні особливості деяких
мікроконтролерів ARDUINO. Рекомендовано Вченою радою Житомирського
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 82
державного університету імені Івана Франка, протокол № 3 від 4.02. 2022 р.
Рецензенти, 273.
13. Новоселов, С. П., Сичова, О. В., & Теслюк, С. І. Багатопотокове
програмне керування рухом промислового маніпулятора. Міжнародна науково-
практична конференція «Інтелектуальні інформаційні системи в управлінні
проєктами та економіці в умовах воєнного стану», Коблево, 13-16 вересня 2022 р.
Праці–Харків: ХНУРЕ, 2022.–135 с., 92.
14. Ткачук, О. О. (2022). Автоматизація процесу керування 3D фрезерним
станком.
15. Коверзнєв, А. В., & Ясенова, І. С. Програмний засіб керування часом
та управління задачами. ЗБІРНИК ТЕЗ, 231.
16. Славов, С. В. (2023). Багатоканальний таймер виконавчих пристроїв
робототехнічних систем.
Аркуш
ЗРСА25ск3.026.23499.001 ПЗ
Зм. Арк. № докум. Підпис Дата 83