Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/8273
Title: Автоматизована система для зберігання та пошуку вантажів на платформі Arduino
Authors: Гавриш, Олександр Степанович
Швець, Олексій Анатолійович
Keywords: автоматизований склад;arduino uno;скетч;кроковий двигун;драйвер
Issue Date: 2020
Abstract: В даній роботі розроблено автоматизований склад стелажного типу, який призначено для зберігання в спеціальних комірках одиничних міні-вантажів. На практиці такий склад знайде застосування в аптеках, бібліотеках, поштових відділеннях тощо. Автоматизована система складається з механічної конструкції, що забезпечує переміщення вантажів по трьох різних осях руху, трьох крокових двигунів та драйверів для них, плати Arduino UNO, блоку живлення та аварійної кнопки. Склад працює в автоматичному режимі. Введення інформації про об'єкти зберігання здійснюється вручну за допомогою клавіатури
URI: https://er.chdtu.edu.ua/handle/ChSTU/8273
Appears in Collections:172 Електронні комунікації та радіотехніка (Телекомунікації)

Files in This Item:
File Description SizeFormat 
Б_172_ТК_Швець_Гавриш_2020.pdf
  Restricted Access
2 MBAdobe PDFView/Open Request a copy


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ 
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ 
ФАКУЛЬТЕТ ЕЛЕКТРОННИХ ТЕХНОЛОГІЙ І РОБОТОТЕХНІКИ 
КАФЕДРА РАДІОТЕХНІКИ, ТЕЛЕКОМУНІКАЦІЙНИХ І 
РОБОТОТЕХНІЧНИХ СИСТЕМ 
 
До захисту допущено  
завідувач кафедри РТРС 
д.т.н., професор __________ В.В. Палагін  
"_____" червня 2020 року 
 
 
Пояснювальна записка 
до кваліфікаційної роботи 
освітнього ступеня «бакалавр» 
на тему: «Автоматизована система для зберігання та пошуку вантажів на платформі Arduino» 
 
 
 Виконав студент 4 курсу, групи ТК-65 
 Спеціальність – 172 «Телекомунікації та радіотехніка» 
 Освітня програма – «Телекомунікації» 
 Швець Олексій Анатолійович 
 Керівник роботи Гавриш О.С. 
 Рецензент Лях І.М. 
 
 
 
 
 
Черкаси 2020 
Форма № Н-9.01 
Черкаський державний технологічний університет 
(назва вузу) 
Факультет електронних технологій і робототехніки 
Кафедра Радіотехніки, телекомунікаційних і робототехнічних систем 
Освітній ступінь бакалавр 
Спеціальність 172 -  Телекомунікації та радіотехніка 
Освітня програма Телекомунікації 
 ЗАТВЕРДЖУЮ 
 Завідувач кафедри РТРС 
 д.т.н., професор Палагін В.В. 
   
 «  » січня  2020 р. 
 
 
ЗАВДАННЯ 
на дипломний проект (роботу) студенту 
Швецю Олексію Анатолійовичу 
(прізвище, ім'я, по батькові) 
1. Тема проекту (роботи) Автоматизована система для зберігання та пошуку вантажів на  
платформі Arduino 
керівник проекту (роботи) Гавриш Олександр Степанович, к.ф.-м.н., доцент 
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання) 
затверджена наказом по університету від «  »     р.  №  
2. Строк подання студентом проекту (роботи) 10 червня 2020 р. 
 
3. Вихідні дані до проекту (роботи) живлення – 220 В, кількість комірок – 3х3 
4. Зміст розрахунково-пояснювальної записки (перелік питань, які потрібно розробити)______ 
Вступ. 1. Огляд і характеристика автоматизованих складів. 2. Загальні відомості про  
апаратно-обчислювальну платформу Аrduino. 3. Синтез автоматизованого складу 
стелажного типу на платформі Аrduino. 4. Охорона праці. Висновки. Список використаної 
літератури 
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень)  
1. Постановка задачі 2. Структурна схема автоматизованого складу. 3. Вибір апаратних  
засобів для реалізації проекту. 4.Блок-схема алгоритму роботи автоматизованого складу. 
5. Плакат з охорони праці  
6. Консультанти з проекту (роботи) із зазначенням розділів проекту, що їх стосуються 
  Підпис, дата 
Розділ Прізвище, ініціали та посада  завдання         завдання 
консультанта видав прийняв 
Охорона праці  Кожем’якін О. С., ст. викладач   
 кафедри безпеки життєдіяльності   
    
    
 
7. Дата видачі завдання 17 січня 2020 р. 
 
КАЛЕНДАРНИЙ ПЛАН 
№ Назва етапів дипломного                               С   т р  о  к   виконання етапів      П   р имітка 
з/п проекту (роботи) проекту (роботи) 
1. Аналіз технічного завдання та огляд літератури 17.01.2020  
2. Розробка методики проведення дослідження 10.02.2020  
3. Ознайомлення з апаратно-програмною    
 платформою Arduino 12.03.2020  
4 Розробка структурної схеми автоматизованого    
 складу та вибір апаратних компонент 01.04.2020  
5. Розробка блок-схеми алгоритму роботи    
 автоматизованого складу та написання скетчів 12.04.2020  
6. Розробка розділу з охорони праці  01.05.2020  
7. Оформлення пояснювальної записки 10.05.2020  
8. Оформлення плакатів 01.06.2020  
    
    
   
 
 Студент   Швець О.А. 
  (підпис) (прізвище та ініціали) 
Керівник проекту (роботи)   Гавриш О.С. 
  (підпис) (прізвище та ініціали) 
 
ЗМІСТ 
 Стор. 
Вступ 5 
1. ОГЛЯД І ХАРАКТЕРИСТИКА АВТОМАТИЗОВАНИХ СКЛАДІВ 7 
1.1 Призначення та структура автоматизованих транспортно-складських  
систем 7 
1.2 Характеристики автоматизованих складських систем стелажного  
типу 14 
1.3 Особливості і переваги автоматизованих складів стелажного типу 22 
2. ЗАГАЛЬНІ ВІДОМОСТІ ПРО АПАРАТНО-ОБЧИСЛЮВАЛЬНУ  
ПЛАТФОРМУ ARDUINO 24 
2.1 Загальна характеристика Arduino 24 
2.2 Різновиди плат Arduino та їх функціональні можливості 26 
2.2.1 Arduino Uno 26 
2.2.2 Arduino Leonardo 27 
2.2.3 Arduino Ethernet 27 
2.2.4 Arduino Mega 2560 28 
2.2.5 Arduino Mini 29 
2.2.6 Arduino Micro 30 
2.2.7 Arduino Due 30 
2.2.8 LilyPad Arduino 31 
2.2.9 Arduino Pro 32 
2.2.10 Arduino Robot 33 
2.2.11 Arduino Esplora 34 
2.2.12 Arduino Yún 35 
2.2.13 Arduino Tre 36 
2.2.14 Arduino Zero 36 
 
 
2.3 Опис елементів плати Arduino Uno 37 
2.4 Середовища програмування для Arduino 40 
3. СИНТЕЗ АВТОМАТИЗОВАНОГО СКЛАДУ СТЕЛАЖНОГО ТИПУ  
НА ПЛАТФОРМІ ARDUINO 42 
3.1 Розробка структурної схеми вертикального автоматизованого складу 42 
3.2 Вибір апаратних та програмних засобів для створення  
автоматизованого складу стелажного типу 44 
3.2.1 Вибір апаратної обчислювальної платформи 44 
3.2.2 Вибір двигунів 45 
3.2.3 Вибір драйверів двигунів 51 
3.2.4 Вибір клавіатури 56 
3.2.5 Вибір блоку живлення 63 
3.2.6 Програма IDE Arduino 63 
3.3 Розробка алгоритму та блок-схеми роботи автоматизованого складу 68 
3.4 Технічна та програмна реалізація макета автоматизованого складу 73 
4. ОХОРОНА ПРАЦІ  77 
 77 
  
Висновки  
Список використаної літератури  
 
Вступ 
 
Актуальність роботи.  
Автоматичні системи зберігання та пошуку вантажів стрімко 
впроваджуються на сучасних підприємствах. В залежності від профілю 
підприємства і наявного вантажу для зберігання до автоматизованих складів 
пред’являються різні вимоги, що обумовлює індивідуальність підходу до 
кожного проектного рішення. 
В даній роботі розробляється роботизований склад стелажного типу для 
міні-вантажів, метою проектування якого є поєднання двох складових: 
практичної і навчальної. Практична складова полягає в технічній реалізації 
проекту, що враховує конкретні запити замовника щодо кількості комірок, 
розмірів стелажу, маси і габаритів вантажів, швидкодії опрацювання вантажів, 
вимог до керування тощо. Навчальна складова проектування полягає в 
ознайомленні з платформою Arduino для розробки конкретних технічних рішень 
і написанні програм для конктролера.  
Наявність роботизованого складу дозволяє скоротити час пошуку і 
переміщення вантажу, і майже виключає помилку при формуванні замовлення. 
Автоматизація складських операцій також приводить до зменшення витрат 
трудових ресурсів, підвищення продуктивності. В зв’язку з цим розробка 
автоматизованої складської системи на базі популярної платформи Arduino є 
актуальною задачею.  
Зв’язок роботи з науковими програмами, планами темами.  
Тематика бакалаврської роботи зв’язана з напрямком науково-практичних 
досліджень по проектуванні автоматизованих радіотехнічних і 
телекомунікаційних пристроїв на платформі Arduino, що проводяться 
викладачами кафедри радіотехніки, телекомунікаційних і робототехнічних 
систем Черкаського державного технологічного університету.  
Метою роботи є розробка автоматизованого складу стелажного типу на 
платформі Arduino та її апаратно-програмна реалізація. 
Для досягнення поставленої мети необхідно вирішити такі завдання: 
• провести аналіз методів і засобів автоматизації складського обліку; 
• ознайомитися з функціональними можливостями платформи Arduino і 
засобами програмування контролеру; 
• розробити структурну схему автоматизованого складу стелажного типу і 
здійснити вибір апаратних засобів; 
• розробити алгоритм роботи автоматизованої системи для зберігання та 
пошуку вантажів на платформі Arduino та побудувати блок-схему; 
• здійснити програмну реалізацію проекту у вигляді скетчів, що описують 
роботу як окремих блоків так і пристрою в цілому. 
Практичне значення одержаних результатів полягає в тому, що даний 
проект може використовуватися як в навчальних і в профорієнтаційних цілях, 
демонструючи можливості платформи Arduino та створення на ній 
автоматизованих систем, так і практичного використання в різноманітних 
сферах: аптеках, поштових відділеннях, бібліотеках, складських приміщеннях, 
для домашніх потреб (наприклад, автоматизованої доставки вантажів зі стелажа, 
розташованого в погребі, для літньої людини) тощо. 
 
1. ОГЛЯД І ХАРАКТЕРИСТИКА АВТОМАТИЗОВАНИХ СКЛАДІВ 
 
1.1 Призначення та структура автоматизованих транспортно-
складських систем 
 
Основні технологічні функції автоматизованих транспортно-складських 
систем полягають в організації накопичення та переміщення оброблюваних 
виробів і їх подачі до модулів обробки [1]. 
Як автоматизовані транспортно-складські системи застосовуються як 
засоби безперервного транспорту (конвеєри), так і автоматичні механізми 
циклічної дії (передавальні візки, крани-штабелери). При збільшенні серійності 
основного виробництва розширюються можливості використання конвеєрного 
встаткування, а з її зменшенням - автоматичних візків різного типу. При значній 
ємності накопичувальних пристроїв використовуються стелажі, які 
обслуговуються кранами-штабелерами. 
З конвеєрних систем при невеликій необхідній ємності формуються 
буферні накопичувачі або накопичувачі у робочих позицій. Деталі типу тіл 
обертання, як правило, укладаються в тару. Корпусні деталі закріплюються на 
спеціальних супутниках. 
Автоматизовані транспортно-складські системи можуть бути використані 
на різних рівнях, в тому числі внутрішньо операційному і міжопераційному, 
внутрішньо дільничному і меж-дільничному, внутрішньоцеховому і 
міжцеховому і т.д. Застосовуються накопичувачі, транспортно-складська тара 
для зберігання предметів праці, модульні пристрої для автоматичної подачі 
заготовок і повернення деталей, інструментів і пристосувань, подачі мастильних 
і охолоджуючих рідин, накопичення і подачі допоміжних матеріалів, видалення 
відходів і т.д. 
На рівні гнучких автоматизованих ліній і ділянок додатково 
застосовуються модулі транспортування заготовок і деталей, автоматичні 
склади для зберігання штучних вантажів, напівфабрикатів і готових виробів до 
передачі їх на інші ділянки тощо. 
На рівні гнучкого автоматизованого цеху і заводу додатково 
використовуються конвеєри, транспортери, підвісні дороги, загальноцехові і 
загальнозаводські автоматичні склади з пристроями обробки вхідних і вихідних 
вантажів, призначені для зберігання сировини, матеріалів, інструментів, 
напівфабрикатів, комплектуючих виробів, готової продукції, складальних 
комплектів і т .п. 
На всіх рівнях модулі автоматизованої транспортно-складської системи і 
їх компоненти несуть технологічні функції згладжування дискретності або 
нерівномірного ритму роботи обладнання, організації та формування 
матеріальних транспортних потоків, істотно впливаючи на технологічну 
компоновку в цілому. 
За основним функціональним призначенням і конструктивними 
особливостями модулі автоматизованої транспортно-складської системи можуть 
бути розділені на автоматичні склади, штабелююче обладнання, 
перевантажувальні та завантажувально-розвантажувальні пристрої, 
накопичувачі, транспортні роботи, конвеєри і підвісні дороги (рис.1.1). 
Автоматичні склади призначені для накопичення вихідної сировини, 
заготовок, готових виробів, тари, зберігання інструментів і пристосувань, 
тимчасового зберігання відходів. 
Основними компонентами автоматичних складів є стелажні конструкції, 
штабелювальні пристрої, транспортно-складська тара, контрольні пристрої 
габаритів і маси, завантажувально-розвантажувальні і перевантажувальні 
пристрої, технічні засоби систем автоматичного управління складами. 
Роботи-штабелери транспортують вантажні одиниці; завантажують і 
вивантажують стелажі, приймальні пристрої технологічного обладнання, 
транспортні механізми; розподіляють вантажні одиниці між основним 
технологічним обладнанням. До їх складу можуть входити автоматичні крани-
штабелери, мостові крани і ін. 
 Автоматизована транспортно-  
    
 складська система  
           
Складські модулі  Транспортно-накопичувальні модулі 
                 
Перевантажні Транспортні 
Склади  Штабелери   Накопичувачі    Конвеєри  
пристрої роботи 
           
Складська Стелажні Роботи, Секції 
 крани-   транспортних  Рейкові  Напольні  
тара маніпулятори 
штабелери пристроїв 
           
Столи і Приймальні Рейкові Підвісні 
Стелажі  Мостові     перезаван  вантаже 
візки пристрої  
тажні несучі 
           
Крани- Пристаночні Безрейкові Підвісні 
 Напольні   Конвеєри     
штабелери накопичувачі напольні штовхаючі 
           
Однорейкові 
Контрольні Централізовані 
   Підйомники    Підвісні  підвісні 
пристрої накопичувачі 
дороги 
           
Комплектні Приймальні 
   секції       
склади 
стелажів 
 
Рисунок 1.1 – Структура автоматизованої транспортно-складської системи 
 
Накопичувачі призначаються для накопичення вантажних одиниць перед 
технологічним обладнанням, створення технологічних заділів, необхідних для 
ритмічної і безперебійної роботи обладнання, згладжування порушень 
технологічного ритму. В якості накопичувачів можуть бути використані також 
приймальні пристрої, транспортні пристрої (наприклад, конвеєрні 
накопичувальні лінії, які набираються з окремих секцій) і ін. 
Перевантажувальні та завантажувально-розвантажувальні пристрої 
дозволяють змінювати напрямок руху вантажний одиниці без її повороту, 
повертати вантажну одиницю на 90 ... 360°, завантажувати і вивантажувати 
крани-штабелери, транспортні роботи, конвеєрні механізми, пов'язувати між 
собою вантажно-розвантажувальне транспортне та технологічне обладнання. 
Транспортні роботи (рейкові) транспортують вантажні одиниці, 
завантажують і вивантажують приймальні пристрої технологічного обладнання, 
транспортні механізми, розподіляють вантажні одиниці між основним 
технологічним обладнанням. 
Транспортно-перевантажувальні рейкові роботи призначені для 
міжопераційного транспортування вантажних одиниць, автоматичного 
завантаження (розвантаження) конвеєрів, штабелювання вантажних одиниць. 
Транспортно-перевантажувальні для підлоги (конвеєрні) роботи 
призначені для автоматичного завантаження (розвантаження) тари на рухомий 
підвісний транспорт за заданою програмою, транспортування і накопичення 
вантажних одиниць. 
Автоматичні безрейкові транспортні засоби (робокари) дозволяють 
здійснити транспортування вантажів з автоматичного складу до модулів 
обробки і назад по командам центральної ЕОМ або бортового комп'ютера. 
Конвеєри і підвісні дороги можуть бути ланцюговими, роликовими, 
стрічковими, підвісними і підлоговими, з автоматичним адресуванням і ін. Їх 
основними функціями є транспортування і накопичення вантажних одиниць. 
Типова схема компоновок автоматизованої транспортно-складської 
системи приведена на рис. 1.2, яка включає:  
1 - робот (оператор);  
2 - приймальний пристрій;  
3 - кран-штабелер;  
4 - стелаж;  
5 - контрольний пристрій;  
6 - ділянка розвантаження;  
7 - технологічне обладнання;  
8 - передавальна візок;  
9 - електро-робокар;  
10 - роликовий конвеєр;  
11 - поворотний стіл;  
12 - конвеєрний підлоговий маніпулятор;  
13 - підвісний вантаженесучий конвеєр;  
14 - однорейкова дорога;  
15 - підвісний штовхаючий конвеєр;  
16 - опускна секція;  
17 - конвеєрний підвісний маніпулятор. 
При лінійному розташуванні обладнання на базі кранів-штабелерів і 
підлогового обладнання (рис. 1.2, а) автоматизована транспортно-складська 
система працює наступним чином: заготовки, готові деталі і технологічне 
оснащення укладаються в тару поза автоматизованою транспортно-складською 
системою. Потім тара проходить контрольний пристрій і надходить на 
завантажувальний ланцюговий конвеєр до крана-штабелеру, який встановлює її 
в вільну комірку стелажа. Система управління відшукує потрібну комірку 
стелажа з тарою, кран-штабелер забирає цю тару і встановлює на приймальний 
пристрій робочого місця біля верстата. Далі кран-штабелер забирає тару з 
обробленими деталями з приймального пристрою робочого місця і встановлює її 
або в вільну комірку стелажа, або відправляє за іншою адресою. 
На технологічне обладнання деталі і тара подаються роботами, 
маніпуляторами або вручну, якщо обладнання для подачі деталей з тари не 
входить до складу атоматизованої транспортно-складської системи. 
Робота автоматизованої транспортно-складської системи багаторядного 
типу (рис. 1.2, б) відрізняється тим, що вантажні одиниці розподіляються по 
прийомним пристроям електроробокарами. 
 
 
 
а)  
  
б) в) 
   
г) 
 
д) 
 
 
Рисунок 1.2 – Типова схема компоновок автоматизованих  
транспортно-складських систем: 
а - лінійного типу; б - багаторядного типу на базі кранів-штабелерів і підлогового 
обладнання; в - кільцевого типу на базі конвеєрного обладнання; г - 
багаторядного типу на базі підвісного транспорту; д - кільцевого типу на базі 
підвісного транспорту 
 
У автоматизованих транспортно-складських системах кільцевого типу 
(рис.1.2, в) міжопераційні накопичення і транспортування вантажних одиниць 
здійснюються на кільцевому конвеєрі, по периферії якого розташовані 
приймальні пристрої верстатів. 
У автоматизованих транспортно-складських системах багаторядного типу 
(рис. 1.2, г) вантажні одиниці розподіляються в приймальні пристрої робочих 
місць верстатів за допомогою підвісного транспорту (підвісний вантаженесучий 
або штовхаючий конвеєри, монорельсова дорога). Такі автоматизовані 
транспортно-складські системи характеризуються високою інтенсивністю 
вантажопотоків і невеликим числом номенклатури заготовок. 
У автоматизованих транспортно-складських системах кільцевого типу 
(рис.1.2, д) міжопераційні накопичення вантажних одиниць може здійснюватися 
і в кільцевих підвісних конвеєрних лініях, які, як правило, переміщують штучні 
вантажі. 
Широке поширення в автоматизованих транспортно-складських системах 
отримали самохідні транспортні візки (електроробокари), які мають різні 
маршрути і транспортують різні деталі і заготовки.
 
1.2 Характеристики автоматизованих складських систем стелажного 
типу 
 
Через склади проходять всі матеріальні вантажопотоки. Автоматичні 
склади підрозділяються на стелажні і конвеєрні. 
Схема стелажного складу з автоматичним стелажним краном-штабелером 
і двома стелажами приведена на рис.1.3 [2]. 
 
Рисунок 1.3 – Схема стелажного складу з автоматичним стелажним  
краном-штабелером і двома стелажами: 
1 - автоматичний стелажний кран-штабелер, 2 - стелажі, 3 - накопичувачі 
 
Основними параметрами складу є ширина стелажа В, ширина проходу для 
крана-штабелера Впр, величина накопичувача lн, висота складу Н і висота 
накопичувача hн. 
Схема стелажного складу з автоматичним мостовим краном-штабелером і 
трьома стелажами приведена на рис.1.4 [2]. Додатковими параметрами цього 
складу є ширина складу X і зазор між вантажем і стелажем λ. 
 
 
Рисунок 1.4 – Схема стелажного складу з автоматичним 
мостовим краном-штабелером і трьома стелажами: 
1 - мостовий кран-штабелер, 2 - стелаж 
 
Широке поширення складів з автоматичними стелажними кранами-
штабелерами пояснюється їх високою продуктивністю, компактністю і легкістю 
автоматизації. До їх недоліків можна віднести малу вантажопідйомність однієї 
секції складу, особливо при невеликій висоті приміщення. Стелажні склади з 
автоматичними мостовими кранами-штабелерами доцільно застосовувати при 
одиничному і дрібносерійному виробництві. 
У разі, коли при незначній номенклатурі вантажів потрібні порівняно 
великі запаси матеріалів, можна використовувати автоматизовані склади з 
гравітаційними стелажами (рис.1.5) [2]. 
До обладнання автоматичних складів відносяться складська тара, стелажі, 
крани-штабелери, перевантажувальні пристрої, а також системи автоматичного 
управління складами. Вимоги до складського обладнання діляться на технічні, 
економічні, експлуатаційні, організаційні та ергономічні. 
 
Рисунок 1.5 – Автоматизований склад з гравітаційними стелажами: 
1 - автоматичні каретки-оператори, 2 - гравітаційні стелажі,  
3 - перевантажувальні пристрої 
 
Технічні вимоги поділяються на вимоги до геометричних і швидкісних 
характеристик обладнання. Наприклад, геометричні характеристики кранів-
штабелерів повинні забезпечувати найбільш повне використання обсягу зони 
зберігання, а швидкісні характеристики - необхідну продуктивність. 
Економічні вимоги регламентують найбільш повне використання обсягу 
складу. Експлуатаційні вимоги обумовлюють таку характеристику обладнання, 
як точність його позиціонування щодо комірок складу. Організаційні вимоги 
забезпечують умови безпеки праці обслуговуючого персоналу. Ергономічні 
вимоги гарантують зручність роботи з обладнанням і його доступність для 
очищення та дезінфекції. 
На автоматичних складах заготовки, деталі та вироби перевантажуються і 
складуються в транспортно-складську тару, яка представляє собою ящикові, 
стійкові або плоскі піддони, або в спеціальну технологічну тару у вигляді касет 
або супутників. Вантажі в тарі складаються на стелажах, які можуть бути 
односторонніми і двосторонніми. Вони складаються з рам, полиць, гвинтових 
розтяжок і фундаментальних болтів. Для автоматичних складів стелажі можуть 
виготовлятися в комплекті зі стелажними кранами-штабелерами. 
Перевантажувальні пристрої призначені для прийому вантажів, що 
підвозяться внутрішньозаводським транспортом на склади, а також для видачі 
вже навантажених піддонів зі складу на транспортну підсистему або навпаки. 
До перевантажних пристроїв відносяться: 
- консольні столи і накопичувачі, вбудовані в конструкції стелажів; 
- поворотні і багатопозиційні столи і візки; 
- роликові і ланцюгові конвеєри; 
- опускні і підйомні секції; 
- штовхачі. 
Характеристики деяких з цих пристроїв наведені в табл. 1.1 [2]. 
Перевантажувальні пристрої автоматичних складів можна оснащувати 
апаратурою для автоматичного контролю маси і габаритів вантажів, а також 
пристосуваннями для укладання деталей в тару, їх орієнтування, підрахунку 
числа деталей, виробів і тари. 
Системи автоматичного управління складами складають частину загальної 
системи управління виробництвом. Основними їх функціями є: 
- автоматизація переміщення вантажів на складі; 
- облік наявності, прибуття і відправлення вантажів; 
- прийом і обробка керуючої інформації; 
- видача інформації про роботу складу; 
- загальне управління і планування роботи складу. 
Системи автоматизації складу на нижньому рівні включають в себе 
приводи виконавчих механізмів, пускорегулюючу апаратуру, пристрої 
автоматичного позиціонування і логічного управління і пристрої введення-
виведення інформації. 
Компонування складських систем залежить від типу виробництва, 
виробничої програми, типу внутрішньоцехового транспорту, характеристик 
конструкції виробничого корпусу, а також типу і устаткування самих складів. 
 
 
 
Таблиця 1.1 
Перевантажувальні пристрої вантажопідйомністю 500 кг 
для тари розмірами 600х800 мм2 
Швидкість Потужність 
маса, 
Пристрій переміщення приводу, призначення 
кг 
вантажу, м/хв кВт 
Конвеєр Подача тари в зону дії 
роликовий стелажного крана-
7,5 0,75 340 
штабелера з поворотним 
столом 
Стіл Передача тари з роликового 
поворотний конвеєра на такий же 
7,5 1,5 450 
конвеєр, розташований під 
кутом 900 до нього в плані 
Конвеєр Подача тари в зону дії 
роликовий крана-штабелера з 
15 0,55 350 
опускний секцією і 
ланцюговим конвеєром 
Секція Перевантаження тари з 
роликова 15 0,55 680 роликового конвеєра на 
опускна ланцюговий конвеєр 
Конвеєр Подача тари в зону дії 
ланцюговий крана-штабелера з 
15 1,1 470 
опускною секцією і 
роликовим конвеєром 
Найбільш раціональною є така компоновка складів, коли вони 
максимально наближені до технологічного устаткування. В цьому випадку 
автоматичний кран-штабелер або транспортноскладський робот не тільки 
виконує функції складування, а й розподіляє матеріали, заготовки та готові 
вироби по робочих місцях. При цьому забезпечується економія виробничих 
площ, безпосереднє стикування складу з транспортом і роботизованими 
технологічними комплексами, підвищення надійності всієї транспортно-
складської системи, відбувається загальне зростання продуктивності праці і 
зменшення витрат на виконання операцій переміщення. 
Раціонально скомпонувати транспортно-складські системи можливо при 
використанні в якості транспортно-складських роботів автоматичних стелажних 
кранів-штабелерів і при розташуванні одного або декількох стелажів уздовж 
виробничої дільниці, поруч з робототехнологічних комплексами. 
На рис. 1.6 показана схема типової секції транспортнонакопичувальної 
системи з одним стелажем [2]. 
 
Рисунок 1.6 – Типова секція транспортно-накопичувальної системи: 
1 - автоматичний стелажна кран-штабелер, 2 - стелаж, 3 - перевантажувальні 
пристрої робототехнологічних комплексів, 4 - ланцюговий конвеєр-накопичувач 
для прийому і видачі вантажів 
 
Єдиний багатофункціональний склад з клітинними стелажами та 
автоматичним стелажним краном-штабелером використовують при невеликих 
вантажопотоках, незначних термінах та обсягах зберігання заготовок і готових 
виробів. При лінійних компоновках склади розташовуються в торцях 
виробничої дільниці і оснащуються стелажними або мостовими автоматичними 
кранами-штабелерами. 
Центральна компоновка складу з автоматичним стелажним краном-
штабелером приведена на рис.1.7 [2]. 
 
 
Рисунок 1.7 – Центральна компоновка складу  
з автоматичним стелажним краном-штабелером: 
1 - виробнича дільниця з робототехнологічних комплексами, 2 - перевантажувальні 
пристрої і накопичувачі, 3 - ділянка вхідного контролю, 4 - автоматичний 
стелажний кран-штабелер, 5 - об'єднаний склад матеріалів, заготовок, інструменту, 
порожньої тари і готових виробів, 6 -надходження матеріалів, заготовок, порожньої 
тари та інструменту; 7 - вихід готових і бракованих виробів; 8 - ділянка технічного 
контролю 
 
При порівняно невеликих вантажопотоків автоматичні крани-штабелери 
можна застосовувати в якості транспортно-складських роботів, призначених не 
тільки для обслуговування стелажного складу або транспортних операцій в 
межах довжини стелажів, а й для подачі заготовок і матеріалів безпосередньо на 
перевантажувальні пристрої робототехнічних комплексів, що виходять за межі 
стелажів. 
Компонувальні схеми зі стелажними кранами-штабелерами застосовують 
при великих вантажопотоках і незначних обсягах зберігання вантажів, а з 
мостовими кранами-штабелерами - при менших вантажопотоках і великих 
обсягах зберігання. При великих вантажопотоках і обсягах зберігання вантажів 
рекомендується створювати окремі склади для заготовок і готових виробів. При 
цьому транспортні операції здійснюються або транспортно-складськими 
роботами, що обслуговують одночасно стелажні склади, або самостійною 
транспортною підсистемою. 
Підводячи підсумок, можна сказати, що автоматичні системи зберігання 
призначені для буферного зберігання і високошвидкісного транспортування 
картонних коробок, палет і невеликих пластикових або металевих контейнерів. 
Наявність автоматизованого складу дозволяє скоротити час пошуку і 
переміщення готової продукції, а так само повністю виключає можливість 
помилки при формуванні замовлення. Автоматизований склад, керований 
комп'ютером або контролером, дозволяє зменшити витрату трудових ресурсів і, 
дозволяє зменшити витрати на виробництво [3]. 
Виходячи з багатьох переваг, система автоматизованого складування та 
зберігання широко застосовується на міжнародному рівні. Автоматизація грає 
все більш зростаючу центральну роль в системі управління. 
Інтелектуальне управління дозволяє автоматично крану-штабелеру 
розраховувати необхідну траєкторію руху і пересуватися одночасно по 
вертикальній і горизонтальній осі. Також проводиться розрахунок швидкості 
переміщення і довжини траєкторії руху. 
Робота кранів-штабелерів контролюється індустріальними контролерами і 
кожна операція, яка виконується кранами-штабелерами, перевіряється 
датчиками безпеки і позиціонування для забезпечення максимальної надійності 
роботи системи. 
Основні операції, які виконують автоматичні крани-штабелери можна 
розділити на три основні класи: операції з отримання одиниці зберігання з 
конвеєрів; операції з вивантаження і завантаження одиниць зберігання в 
стелажні конструкції; видачу одиниці зберігання в зону комплектації і видачі 
замовлень. 
Така організація роботи дозволяє отримати максимальну щільність 
зберігання і забезпечити повне збереження одиниць зберігання. 
 
1.3 Особливості і переваги автоматизованих складів стелажного типу 
 
Організація складського господарства на належному рівні виходить 
сьогодні в першочергові завдання на багатьох підприємствах світу. Зберігання 
продукції, матеріалів і комплектуючих на автоматичних складах допоможе 
уникнути таких проблем, як нестача площ, ненадійність зберігання, помилки в 
обліку, складність переміщення. Рішення обладнати на підприємстві 
автоматизований склад незаперечно далекоглядне і прогресивне, що дозволяє 
економити і гроші, і час [4]. 
Склади стелажного типу призначені для зберігання в спеціальних 
комірках одиничних вантажів, розміщених на європалетах або касетах.  
Склад працює в автоматичному режимі. Введення інформації про об'єкти 
зберігання здійснюється шляхом сканування штрих-коду або вручну. 
Концепція автоматизованого складу заснована на принципах 
універсальності і багатофункціональності. Такий підхід дозволяє адаптувати 
готові рішення під досить широкий спектр особливих запитів замовника, таких 
як, наприклад, двостороннэ завантаження, зберігання окремих вантажів або 
інтеграція в виробничий процес. 
Переваги автоматизованих складів стелажного типу [4]: 
1. Оптимізація простору, виражена в розумному використанні території: 
вертикальні склади економлять до 90% площі і звільняють десятки, а то і сотні 
квадратних метрів, для розміщення матеріалів та комплектуючих, так і для 
технологічних проїздів. 
2. Економія часу: пошук і подача матеріалів і вузлів на виробництво 
виконується автоматично. Оператору не потрібно переміщатися по території 
складу для пошуку і доставки затребуваних виробів. 
3. Надійний облік: автоматична система зберігає дані про асортимент 
виробів і матеріалів, їх місцезнаходження, час потрапляння на склад і видачі в 
хронологічному порядку. Це дозволяє безпомилково враховувати залишки, 
списання і прихід, складати звітність. 
4. Спрощення логістики: виключаються нераціональні переміщення 
матеріалів, маневрування вантажно-завантажувальної техніки між стелажами і 
упаковками. 
5. Гарантія збереження матеріалів: конструкція вертикального складу 
повністю захищає внутрішній простір від непередбачених механічних впливів, 
бруду або інших шкідливих факторів. 
6. Захист від несанкціонованого доступу: доступ до управління складом 
дозволений тільки авторизованим співробітникам через систему розпізнавання. 
7. Безпека оператора: фізичні та фотоелектричні запобіжні бар'єри 
виключають найменшу небезпеку його здоров'ю під час роботи. 
8. Простота використання: пульт управління має простий, інтуїтивно 
зрозумілий інтерфейс, що не вимагає від оператора спеціальної підготовки. 
9. Мінімізація кількості персоналу: для управління складом досить одного 
оператора. 
10. Підвищення продуктивності за рахунок безперервного потоку 
матеріалів до технологічних ділянок та безперебійного завантаження 
устаткування. 
11. Можливість автономної установки під відкритим небом, поза 
будівлею, або в приміщенні на будь-якій вільній площі, в тому числі в 
безпосередній близькості від працюючого обладнання з автоматичною подачею 
матеріалів і вузлів зі складу прямо на установку. 
12. Незалежність від кліматичних факторів: повноцінна функціональність 
в будь-яких погодних умовах, в тому числі при несприятливій температурі. 
 
2. ЗАГАЛЬНІ ВІДОМОСТІ ПРО АПАРАТНО-ОБЧИСЛЮВАЛЬНУ 
ПЛАТФОРМУ ARDUINO 
 
2.1 Загальна характеристика Arduino 
 
Arduino - це комбінація апаратної і програмної частин для простої 
розробки електроніки. Апаратна частина включає в себе велику кількість видів 
плат Arduino з вбудованими програмованими мікроконтролерами, а також 
додаткові модулі. Програмна частина складається з середовища розробки 
(програми для написання скетчів і прошивки мікроконтролерів Ардуіно), 
спрощеної мови програмування, величезної кількості готових функцій і 
бібліотек [27]. 
Платформа Ардуіно створювалася викладачами для більшого залучення 
студентів в електротехніку. Ідея мала величезний успіх і Arduino пішла набагато 
далі. Завдяки відкритій архітектурі виробляти дані мікроконтролери, 
доповнювати модельний ряд, писати програми може хто завгодно. Всі схеми і 
вихідний код програм є у відкритому доступі. 
Після того, як Arduino отримало більш широке поширення, багато 
виробників електроніки почали випускати власні плати на базі мікроконтролерів 
Ардуіно. Коли до виробництва підключилися китайські виробники, Ардуіно 
стало набагато доступніше і отримало ще більшу аудиторію.  
Спочатку команда викладачів, які розробили Ардуіно, відкрили сайт 
arduino.cc. Але через розбіжності, в колективі стався розкол в 2008 році. Частина 
розробників відокремилася та створила інший сайт arduino.org. Це спричинило 
плутанину, через однакових назв для різних Ардуінок, програм і прошивок. 
Тільки в 2017 році конфлікт вирішився повністю. Так залишився тільки один 
офіційний сайт arduino.cc. 
Arduino - повністю відкрита платформа. Розробником і виробником може 
стати абсолютно будь-яка людина. А значить офіційних сайтів існує багато, 
об’єднуючи розробнмків в межах певної країни. 
Платформа Ардуіно створювалася для навчання студентів і школярів 
електротехніці, програмуванню, радіоелектроніці, системам автоматизації. За 
допомогою мікроконтролерів можна робити не тільки навчальні проекти, а й 
дійсно корисні пристрої. На Arduino створюються проекти автоматизації, 
пристрої розумного будинку, портативні метеостанції, роботизовані 
маніпулятори і безліч інших корисних пристроїв. 
Початкова мета Ардуіно - це навчання. Дітям набагато цікавіше вчитися, 
якщо вони можуть відразу застосовувати нові знання на практиці, та ще й 
побачити і помацати плоди своєї праці. Набагато цікавіше навчатися 
експериментуючи, а не слухаючи суху теорію. 
З технічної точки зору, Ардуіно вміє приймати і відправляти сигнали 
відповідно до інструкцій в прошивці. Звучить досить скромно, але на практиці 
це дозволяє отримувати і обробляти інформацію з сенсорів і передавати 
команди виконавчим механізмам або інших пристроїв. Наприклад: 
мікроконтролер може отримувати дані з датчиків температури, тиску, вологості 
і виводити зведену інформацію на дисплей. 
Цих можливостей вистачає для реалізації складних пристроїв, таких як 
безпілотні літальні апарати, 3D-принтери, роботизовані маніпулятори, 
радіокеровані машинки, човни, всюдиходи та т.і. Можливості Ардуіно обмежені 
тільки уявою. Якщо не вистачає можливостей Ардуіно, то існують більш 
потужні мікроконтролери такі як Ардуіно Мега, NodeMCU, STM32, Wemos, 
Raspberry Pi, Orange Pi. 
Для того, що б почати використовувати Arduino необхідно придбати плату 
Arduino або стартовий набір Arduino.  
 
 
 
2.2 Різновиди плат Arduino та їх функціональні можливості 
 
Розглянемо номенклатуру плат Arduino. Сьогодні їх на абсолютно 
легальних умовах може робити будь-який виробник: як великий, такий як Intel, 
так і дрібні noname постачальники з Китаю. Надійність і зручність «китайських» 
і «офіційних» плати Ардуіно в більшості випадків однакові. Тому нема чого 
переплачувати - для своїх навчальних проектів можете сміливо купувати 
аналоги, які легко знайти в інтернеті. 
Arduino виробляє різні плати, кожна з який має власні особливості. Крім 
того, Arduino дотримуються моделі open source, завдяки чому інші можуть 
модифікувати і виробляти клони Arduino, розширювати і змінювати їх 
функціонал і форм-фактор. Нижче наведені короткі відомості про різні моделі 
Arduino [28]. 
2.2.1 Arduino Uno. Arduino Uno є стандартною платою Arduino і можливо 
найбільш поширеною. Вона заснована на чіпі Atmel ATmega328, що має на 
борту 32 КБ флеш-пам'яті, 2 КБ SRAM і 1 Кбайт EEPROM пам'яті.  
 
Рисунок 2.1 – Плата Arduino Uno 
 
На периферії має 14 дискретних (цифрових) каналів вводу / виводу і 6 
аналогових каналів вводу / виводу, це дуже різнобічно-корисні девайси, що 
дозволяють перекривати більшість аматорських завдань в області 
мікроконтролерної техніки. Чіп ATmega16u2 на платі управляє послідовної 
зв'язком. Дана плата контролера є однією з найбільш дешевих і найбільш часто 
використовуваних.  
2.2.2 Arduino Leonardo. Платформа Arduino Leonardo трохи відрізняється 
від Uno. На основі ATmega32u4, цей мікроконтролер має розширені можливості 
USB і, отже, не вимагає окремого мікрочіпа для послідовної зв'язку з USB, як 
Uno. Це означає меншу вартість; менше мікросхем - дешевше рішення. Це 
також означає, що розробник може використовувати мікроконтролер в якості 
рідного пристрою USB, збільшується гнучкість при комунікації з комп'ютером. 
Леонардо може ефективно емулювати клавіатуру і мишу через USB HID. 
 
Рисунок 2.2 – Плата Arduino Leonardo 
 
2.2.3 Arduino Ethernet. Платформа Arduino Ethernet на основі ATmega328, 
взята з Uno, може підключатися до мережі Ethernet, функціональність необхідна 
в багатьох проектах. Фізично, платформа Arduino Ethernet має ті ж14-
дискретних входів / виходів, як Arduino Uno, з тим виключенням, що 4 
використовуються для управління модулем Ethernet і вбудованим зчитувачем 
мікро-SD карт, обмежуючи кількість доступних виводів. 
Цікаво відмітити, що Arduino Ethernet має додатковий модуль POE (Power 
Over Ethernet). Ця опція дозволяє Arduino Ethernet живитися безпосередньо від 
мережі Ethernet, без необхідності використання зовнішнього джерела живлення 
за умови, що живлення POE підключено на іншому кінці кабелю Ethernet. Без 
POE Arduino повинен живитися за допомогою зовнішнього джерела живлення. 
Ще одна відмінність від інших плат Arduino - це відсутність роз'єму USB. 
Тому що досить багато місця зайнято роз'ємом Ethernet, зате пристрій підтримує 
комунікації через звичайні виводи. 
 
Рисунок 2.3 – Плата Arduino Ethernet 
 
2.2.4 Arduino Mega 2560. Arduino Mega 2560 лиш трохи довша, ніж 
Arduino Uno, але вона має значно більше каналів вводу / виводу. Вона має в 
цілому 54 цифрових ліній вводу / виводу і 16 аналогових входів. Вона також має 
велику кількість флеш-пам'яті: 256 КБ, що дозволяє зберігати більші програми, 
ніж Uno. Вона також має чималу SRAM і EEPROM: 8 КБ і 4 КБ, відповідно. 
Вона також має 4 апаратних UART порти, що робить її ідеальною платформою 
для комунікацій з декількома пристроями паралельно. 
Плати Arduino Mega використовуються там, де необхідна велика кількість 
входів і виходів. 
 
Рисунок 2.4 – Плата Arduino Mega 2560 
 
2.2.5 Arduino Mini. Платформа Arduino Mini це крихітний пристрій, що 
використовується в проектах, що вимагають максимальної економії місця. Вона 
містить 14 цифрових входів / виходів і 4 аналогових вхідних контактів (ще 
чотири доступні, але не виведені.) Пристрій настільки мініатюрний, що не має 
ні USB-роз'єму, ні регулятора потужності ні навіть гребінки для підключення 
периферії. Програмування здійснюється за допомогою зовнішнього USB або 
RS232 через TTL послідовний адаптер. 
 
Рисунок 2.5 – Плата Arduino Mini 
 
 
2.2.6 Arduino Micro. Контролер Arduino Micro повністю відповідає своїй 
назві; це одна з найменших плат з лінійки Arduino. Незважаючи на свій 
невеликий розмір, вона все ж має велику кількість вхідних і вихідних виводів; 
вона має 20 цифрових каналів вводу / виводу, з яких 7 можуть бути використані 
як виходи ШІМ. Вона також має 12 аналогових входів. Мікро не спроектована, 
для нарощування приєднаними шілдами, але у її таке розташування виводів 
гребінок, що її зручно розміщувати безпосередньо на макетній платі. 
 
Рисунок 2.6 – Плата Arduino Micro 
 
2.2.7 Arduino Due. Контролер Arduino Due відрізняється від всіх Arduino 
тим, що він спроектований не на основі AVR, а на чіпі Atmel SAM3X8E 
архітектури ARM Cortex-M3. Цей передовий мікроконтролер працює на частоті 
84 МГц і є повноцінним 32-розрядним пристроєм. Він має велику кількість 
дискретних і аналогових входів / виходів: 54 цифрових канали (12 з яких 
можуть бути використані в якості ШІМ) і 12 аналогових входів. На платі 
передбачені 4 UART, порт SPI, інтерфейс Twin-Wire, а так само включає в себе 
порт JTAG. 
Платформа Arduino Due має більш високі вимоги для живлення і живиться 
від 3,3 В. Будьте обережні, щоб не подати 5 В на будь-який з виводів: в іншому 
випадку, ви можете спалити плату. При виборі шілдів розширення для Due, 
треба переконатися, що він підтримує живлення 3.3 В. 
Arduino Due неймовірно потужний Arduino. Due має на борту 512 КБ 
флеш-пам'яті і сумарно 96 КБ SRAM. Він може обробляти найбільші програми 
на високій швидкості. Якщо потрібні потужні обчислювальні процеси, то ця 
Ардуіно – найкращий вибір. 
 
Рисунок 2.7 – Плата Arduino Due 
 
2.2.8 LilyPad Arduino. LilyPad Arduino - досить цікавий пристрій. Він 
випадає зі звичних стереотипів про звичайний Arduino, тому що має не 
прямокутну, а круглу форму. По-друге, він не підтримує механічні з'єднання з 
шілдами. Він призначений для, невеликих автономних пристроїв. Кругла форма 
продиктувала те, що роз'єми рівномірно розподілені по колу, і його невеликий 
розмір (2 дюйма в діаметрі) робить його ідеальним для переносних пристроїв. 
Це пристрій легко заховати, і кілька виробників розробили пристрої, спеціально 
для LilyPad: екрани, датчики світла, навіть коробки для батарей живлення, які 
можуть бути зашиті в тканину. Для того, щоб зробити LilyPad якомога менше і 
якомога легше, на скільки можливо, були принесені деякі жертви. У LilyPad 
немає регулятора напруги на борту, так що йому для живлення буде необхідно 
забезпечити принаймні 2,7 вольт, і не більше 5,5 вольт. 
 
Рисунок 2.8 – Плата LilyPad Arduino 
 
2.2.9 Arduino Pro. Контролер Arduino Pro заявлений в двох версіях, на 
основі ATmega168 і ATmega328. Версія 168 працює на 3,3 В з тактовою 
частотою 8 МГц, а версія 328 працює на 5 В і частоті 16 МГц. Обидві версії 
мають 14 цифрових входів / виходів і 6 аналогових входів. Контролер має роз'єм 
живлення батареї JST, перемикач для вибору між режимами живлення, і 
простір, відведений для модуля живлення, при необхідності. На платі немає 
порту USB, але замість нього використовується кабель FTDI для програмування. 
Arduino Pro відрізняється від більшості інших Arduino тим, що будучи 
окремою самостійною макетної платою, він також може бути використаний для 
розширення функціоналу інших контролерів як шілд. Він випускається без 
портів і звичних гребінок. Всі цифрові і аналогові входи і виходи розташовані 
по краях плати, зберігаючи стандартне для Ардуіно розташування отворів, 
готових до припаювання гребінок або проводів, в разі потреби. Замість 
використання для прототипування нових проектів, Arduino Pro більше 
спрямований на остаточний монтаж в готовій продукції. Arduino Pro не 
розробляються самим Arduino, а був розроблений і запущений у виробництво 
фірмою SparkFun Electronics. 
 
Рисунок 2.9 – Плата Arduino Pro 
 
2.2.10 Arduino Robot. Arduino Robot, це просто кажучи, Arduino на 
колесах. До його складу входять дві плати контролерів - одна управляє 
двигунами на борту, а інша обробляє сигнали датчиків. Керуючий контролер дає 
команди платі управління двигунами про те, що робити. 
Керуюча плата контролюється чіпом ATmega32u4 з 32 КБ флеш, 2,5 КБ 
SRAM і 1 Кбайт EEPROM пам'яті. Вона також має зовнішній I2C EEPROM 
пристрій, забезпечуючи більше місця для зберігання інформації. На борту є 
компас, динамік, три світлодіода, клавіатура на п'ять кнопок і РК-екран. Вона 
також має три виводи під пайку для зовнішнього I2C пристрою.  
Вона також має окремі канали вводу / виводу, з п'ятьма цифровими 
входами / виходами, шістьма ШІМ і чотирма аналоговими входами. Залишено 
місце для восьми аналогових входів (для датчиків відстані, ультразвукових 
датчиків або інших) і шести дискретних входів / виходів для інших пристроїв 
(чотири з яких можуть бути використані для аналогового входу). 
Плата двигунів повністю незалежна, заснована на ATmega32u4, тобто на 
тому ж чіпі що і плата управління. Плата двигунів має в своєму складі два 
двигуна з колесами, які живляться окремо, п'ять ІЧ датчиків, I2C і SPI порти. 
Вона також містить акумуляторний відсік, в який вставляється чотири 
акумуляторні батареї типу АА, а так само містить гніздо для підзарядки 
акумуляторів на борту. Плата може також живитися від роз'єму USB, але в цій 
конфігурації, з міркувань безпеки, двигуни відключаються. 
 
Рисунок 2.10 – Плата Arduino Robot 
 
2.2.11 Arduino Esplora. Arduino Esplora це досить дивний пристрій. 
Більшість плат Arduino призначені для стаціонарного розміщення на столі, але 
Esplora призначений для тримання руками. ATmega32u4 геометрично не 
сумісний з шілдами і не має на борту контактів для входів і виходів. Замість 
цього, він виглядає і відчувається в руках як геймпад; у нього є курсор під 
великий палець у вигляді чотирьох дискретних кнопок, один аналоговий 
джойстик, а також лінійний потенціометр. В якості зворотнього зв'язку 
передбачені зумер і триколірний світлодіод. Esplora також має наступні 
датчики: вона має на борту мікрофон, датчик температури, роз'єм для 
підключення РК-екрану і трьох-осьовий акселерометр. У Esplora 32 Кб флеш 
пам'яті; 4 КБ використовуються загрузчиком. Так само є 2,5 КБ SRAM і 1 Кбайт 
EEPROM пам'яті. Для сумісності Esplora c іншими контролерами, передбачені 4 
роз'єми TinkerKit: з двома входами і двома виходами. 
 
Рисунок 2.11 – Плата Arduino Esplora 
 
2.2.12 Arduino Yún. Платформа Arduino Yun базується на чіпі 
ATmega32u4, але він також має Atheros AR9331 на одній платі. Процесор 
Atheros має повний дистрибутив Linux, на основі OpenWRT, операційної 
системи поширеної в бездротових маршрутизаторах на Linux. Плата Arduino 
Yun має вбудований Ethernet і WiFi, а також слот для micro-SD. Yun 
відрізняється від інших Arduino і шілдів тим, що у нього серйозна мережева 
функціональність; Arduino може посилати команди в OpenWRT, і далі 
продовжувати обробку свого скетчу. Обидва процесора працюють самостійно, 
існуюча бібліотека обміну даними полегшує комунікацію між двома 
процесорами. 
 
Рисунок 2.12 – Плата Arduino Yún 
 
2.2.13 Arduino Tre. Arduino Tre тільки планується запустити у 
виробництво але обіцяє стати феноменальним флагманом в сфері аматорських 
контролерів. До цього моменту, найшвидшим Arduino був Due, на основі ARM-
сумісного мікроконтролера. Tre, створений Arduino і BeagleBoard, поєднує в 
собі потужність повного комп'ютера з гнучкістю каналів вводу / виводу 
платформ Arduino. Tre матиме процесор класу Cortex-A8 під назвою Sitara 
AM335X, що працює на частоті 1 ГГц. Цей процесор має доступ до 512 Мб 
оперативної пам'яті і має HDMI порт здатний відображати Full HD (1920 х 
1080). Вся ця міць пов'язана з інтерфейсом розробника за допомогою Atmel 
ATmega32u4, використовуючи середовище програмування Arduino. 
2.2.14 Arduino Zero. Arduino Zero це новий Arduino на чіпі Atmel SAM 
D21 мікроконтролера. У нього 256 Кб флеш-пам'яті, 32 Кб оперативної пам'яті, і 
працює він на частоті 48 МГц. Arduino Zero призначений для задоволення 
майбутніх потреб спільноти розробників, пропонуючи дизайн, який одночасно є 
потужним, надійним, і досить гнучким, який буде затребуваний в робототехніці 
і переносних проектах. 
 
2.3 Опис елементів плати Arduino Uno  
 
Розглянемо комплектацію найбільш популярної плати сімейства Arduino –  
Arduino Uno (рис.2.13) [29]. 
 
Рисунок 2.13 – Розташування елементів на платі Arduino Uno 
 
Роз'єм живлення (USB / роз'єм для адаптера). Кожна плата Arduino 
повинна приєднуватися до джерела живлення. Arduino Uno може живитися від 
USB кабелю від персонального комп'ютера або від окремого адаптера, який 
підключається до передбаченого на платі роз'єму. USB також використовується 
для завантаження програми (скетчу) на плату. 
Роз'єми (Піни) (5V, 3.3V, GND, Analog, Digital, PWM, AREF). 
Піни на платі Arduino - це передбачені роз'єми, до яких підключаються 
дроти від периферійних пристроїв (дуже часто для прототипів використовують 
монтажні плати (макетна плата, макетка) і дроти з конекторами на кінцях). На 
Arduino кілька типів пінів, кожен з яких підписаний відповідно до виконуваної 
функції. 
GND: скорочення від «Ground» - «Земля». На платах кілька пінів GND, 
кожен з яких може використовуватися для заземлення електричного кола. 
5V і 3.3V: піни, які на виході забезпечують живлення 5 вольт і 3.3 вольт 
відповідно. Більшість компонентів, які підключаються до Arduino, 
благополучно живляться саме від 5 або 3.3 вольт. 
Analog: на ділянці, яка підписана «Analog In» (від A0 до A5 на Arduino 
Uno) розташовані аналогові входи. Ці піни дозволяють зчитувати сигнали від 
аналогових датчиків (наприклад, датчика температури) і перетворювати їх в 
цифрові значення, якими ми надалі оперуємо. 
Digital: навпроти аналогових пінів знаходяться цифрові піни (від 0 до 13 
на Arduino Uno). Ці піни використовуються для цифрових вхідних (input) 
сигналів (наприклад, натискання кнопки) і для генерації цифрових вихідних 
(output) сигналів (наприклад, живлення світлодіода). 
PWM: поряд з деякими цифровими пінами (3, 5, 6, 9, 10, і 11 на UNO) 
присутній знак (~). Ці піни працюють як в звичайному цифровому режимі, так і 
в режимі ШІМ-модуляції (широтно-імпульсної, PWM). Якщо пояснити коротко 
- ці піни можуть імітувати аналоговий вихідний сигнал (наприклад, для 
поступового згасання світлодіода). 
AREF: цей пін використовується досить рідко. У деяких випадках його 
підключають в схему для установки максимального значення напруги на 
аналогових входах (від 0 до 5 вольт). 
Кнопка скидання (Reset Button). Як і на оригінальних Nintendo, на 
Arduino є кнопка скидання (reset). При натисканні на неї контакт скидання 
замикається з землею і код, завантажений на Arduino починає 
відпрацьовуватись заново. Корисна опція, якщо код відпрацьовується без 
повторів, але необхідно протестувати його роботу. 
Індикатор живлення (Power LED). Трохи праворуч і нижче напису 
"UNO" встановлений світлодіод, підписаний «on». Цей світлодіод повинен 
загорітися, коли ви підключили Arduino до джерела живлення. Якщо світлодіод 
не засвітився, це - поганий знак). 
Світлодіоди TX і RX. TX - скорочення від transmit (передача), RX - від 
receive (прийом). Ці умовні позначення часто зустрічаються в електроніці для 
позначення контактів, які відповідають за серійний обмін даними. На Arduino 
Uno ці контакти зустрічаються два рази на цифрових пінах 0 і 1 і в якості 
світлодіодів TX і RX. Ці світлодіоди дозволяють візуально відслідковувати, 
передає або приймає дані Arduino (наприклад, при завантаженні програми на 
плату). 
Головна інтегральна мікросхема (IC). Чорна деталь з металевими 
конекторами з двох сторін це інтегральна мікросхема, мікропроцесор (IC або 
Integrated Circuit). Можна сміливо вважати, що це «мізки» Arduino. Цей чіп 
різний в різних моделях Arduino, але зазвичай він відноситься до лінійки 
мікропроцесорів ATmega від компанії ATMEL. Це може виявитися важливою 
інформацією для завантаження скетчу на плату. Модель інтегральної 
мікросхеми зазвичай вказана на її верхній корпусних частини. Для додаткової 
інформації про вашу мікросхемі варто звернутися до її даташіту. 
Регулятор напруги виконує функцію, вказану в назві - контролює 
напругу, яка надходить на плату Arduino. Можна його собі уявити як охоронця, 
який не пропускає занадто велику напругу на плату, щоб уникнути її 
ушкоджень. Звичайно ж, у регулятора є своя межа. Так що живити Arduino 
напругою більше 20 вольт не можна. 
 
2.4 Середовища програмування для Arduino 
 
Програми для Arduino пишуться на звичайному C ++, доповненим 
простими і зрозумілими функціями для керування вводом / виводом на 
контактах. Для зручності роботи з Arduino існує безкоштовне офіційна 
середовище програмування «Arduino IDE», що працює під Windows, Mac OS і 
Linux. 
Середовище розробки Arduino складається з вбудованого текстового 
редактора програмного коду, області повідомлень, вікна виводу тексту 
(консолі), панелі інструментів з кнопками часто використовуваних команд і 
декількох меню. Для завантаження програм і зв'язку середовище розробки 
підключається до апаратної частини Arduino (рис. 2.14). 
 
Рисунок 2.14 – Середовище розробки Arduino IDE 
 
Програма, написана в середовищі Arduino, називається скетч. Скетч 
пишеться в текстовому редакторі, що має інструменти вирізки/вставки, 
пошуку/заміни тексту. Під час збереження і експорту проекту в області 
повідомлень з'являються пояснення, також можуть відображатися помилки, що 
виникли. Вікно виводу тексту (консоль) показує повідомлення Arduino, 
включають повні звіти про помилки та іншу інформацію. Кнопки панелі 
інструментів дозволяють перевірити і записати програму, створити, відкрити і 
зберегти скетч, відкрити моніторинг послідовної шини. 
Фактично програми пишуться на C / C ++, а компілюються і збираються за 
допомогою широко відомого avr-gcc. всі особливості зводяться до того, що є 
набір бібліотек, що включає в себе деякі функції (на кшталт pinMode) і об'єкти 
(на кшталт Serial), а при компіляції програми середовище розробки створює 
тимчасовий .cpp файл, в який крім написаного коду включається ще кілька 
рядків, і отриманий результат відправляється компілятору а потім лінковщіку з 
потрібними параметрами. 
 
3. СИНТЕЗ АВТОМАТИЗОВАНОГО СКЛАДУ СТЕЛАЖНОГО ТИПУ НА 
ПЛАТФОРМІ ARDUINO 
 
3.1 Розробка структурної схеми вертикального автоматизованого 
складу 
 
Згідно з вимогами технічного завдання автоматизований склад 
представляє собою стелаж (вертикальну шафу), що містить 9 комірок, в які 
маніпулятор може вставляти і виймати міні-вантажі. Користувач може 
взаємодіяти з автоматизованою системою через клавіатуру і йому надається 
кнопка аварійної зупинки, що дозволяє миттєво блокувати механічний рух. 
Автоматизований склад складається в основному з механічної 
конструкції, трьох крокових двигунів, які мають драйвери крокових двигунів, 
плату Arduino UNO, блок живлення ATX (разом зі стабілізатором напруги 5В) і 
аварійна кнопка зупинки. 
 
Кроковий двигун 1  Кроковий двигун 2  Кроковий двигун 3 
   
  
Драйвер двигуна 1 
 Драйвер двигуна 2  Драйвер двигуна 3 
  
   
  
 Система управління  
  
   
Блок живлення  Клавіатура   
 
Рисунок 3.1 – Структурна схема вертикального автоматизованого складу 
Структурна схема автоматизованого складу, що проектується, наведена на 
рис.3.1. Розглянемо призначення і взаємодію компонент, наведених на рис.3.1. 
Кроковий двигун 1 служить для переміщення маніпулятора (виделкового 
захвату) по горизонтальній площині (Ох) від платформи до певної комірки. 
Кроковий двигун 2 призначений для переміщення виделкового захвату в 
горизонтальній площині по осі Оz і забезпечує встановлення або вилучення 
вантажу з комірки. 
Кроковий двигун 3 керує рухом маніпулятора у вертикальній площині 
(вісь Оу), тобто виконує підйом і опускання маніпулятора для вибору комірки 
по висоті.  
Драйвери 1-3 забезпечують керування кроковими двигунами 1-3. 
Як система управління виступає платформа Arduino UNO, що забезпечує 
управління всіма компонентами системи. 
Клавіатура призначена для введення команд управління, і дозволяє 
користувачу задавати номер комірки в яку передбачається розмістити або 
вилучити вантаж.  
Джерело живлення необхідне для постачання вузлів автоматизованого 
комплексу електроенергією постійного струму, шляхом перетворення мережевої 
напруги до необхідних значень. 
 
3.2 Вибір апаратних та програмних засобів для створення 
автоматизованого складу стелажного типу 
 
На сучасному ринку представлено розмаїття програмних і апаратних 
компонентів. Серцем нашого проекту служить апаратна обчислювальна 
платформа. Вибір платформи безпосередньо залежить від вимог проекту. 
Розрізняють 2 основних бренди мікроконтролерних друкованих плат: Arduino і 
Raspberry PI. Так само доведеться вибирати і в іншому: 
- типи двигунів; 
- типи драйверів; 
- типи датчиків; 
Залежно від обраної платформи буде залежати і вибір середовища 
програмування. Так само величезну роль грає керуючий вплив. Так ми повинні 
визначитися, що послужить системою, яка буде управляти роботом. Вибір 
невеликий: 
- ПК; 
- мобільна платформа; 
- спеціальне програмований обладнання; 
- клавіатура. 
3.2.1 Вибір апаратної обчислювальної платформи. Як ми вже сказали 
серцем нашого проекту буде апаратна обчислювальна платформа. 
Мікроконтролер є важливою частиною автоматизованої складської системи. 
Використовуючи мікроконтролер в якості ключового обчислювального і 
логічного пристрою керуючої системи автоматизованого складу, виникає 
потреба у високій частоті роботи, і великих обсягах оперативної пам'яті цього 
мікроконтролера. 
Існують два основних бренди мікроконтролерних друкованих плат: 
- Arduino; 
- Raspberry PI. 
Розберемося, у яких випадках краще вибрати Arduino. Це робиться, якщо 
основна задача - зчитувати дані сенсорів, змінювати значення на двигуні або 
інших пристроях. З огляду на вимоги Arduino до електроживлення і простоту 
обслуговування цієї системи, пристрій цілком можна експлуатувати не 
вимикаючи, при цьому майже не втручаючись в його роботу. 
Розглянемо застосування альтернативного варіанту реалізації проекту на 
мікроконтролерній платі Raspberry Pi. Цей варіант виправданий при вирішенні 
таких завдань, які було б логічно виконувати на персональному комп'ютері. 
Raspberry Pi спрощує управління потоком операцій в різних ситуаціях: якщо ви 
підключаєтеся до Інтернету для зчитування або запису даних, програваєте якусь 
медіа-інформацію або підключаєтеся до зовнішнього дисплею [14]. 
Для нашого проекту ідеально підходить апаратна обчислювальна 
платформа Arduino. Але їх існує велике різноманіття, огляд яких наведено в 
розділі 2. Порівнюючи функціональні можливості різних плат Arduino з 
врахуванням вимог технічного завдання зупинимо свій вибір на платі Arduino 
UNO. 
3.2.2 Вибір двигунів. Проектуючи автоматизований склад робта 
необхідно розуміти, що він передбачає в своїй конструкції двигуни (мотори), які 
будуть обертати і (або) пересувати частини конструкції або всю конструкцію. 
Двигун (мотор) – пристрій, що перетворює будь-який вид енергії в 
механічну. Двигуни поділяються на: 
а) електродвигуни; 
б) двигуни внутрішнього згоряння; 
в) парові двигуни. 
Різні конструкції автоматизованих систем або роботів віддають переваги 
різним видам двигунів. Технологічно доцільно розглядати електричні двигуни 
постійного струму, що перетворюють електричну енергію в механічне 
обертання, так як вони дозволяють спростити програмний контроль, схему і 
конструкцію автоматизованої системи. 
Електродвигуни постійного струму в свою чергу діляться на: 
а) колекторні двигуни постійного / змінного струму; 
б) безколекторні двигуни постійного / змінного струму; 
в) крокові двигуни; 
г) сервоприводи аналогові / цифрові. 
Колекторний електродвигун. 
Колекторний електродвигун - електрична машина, в якій датчиком 
положення ротора і перемикачем струму в обмотках є один і той же пристрій - 
щітково-колекторний вузол (рис. 3.2). 
 
Рисунок 3.2 – Колекторний електродвигун 
 
Основною перевагою колекторних двигунів постійного струму (ДПС) є 
можливість регулювання частоти обертання в широкому діапазоні, лінійність 
механічної і, в більшості випадків, регулювальної характеристики, великий 
пусковий момент, висока швидкодія, мала маса і об'єм на одиницю корисної 
потужності і більш високий ККД у порівнянні з двигунами змінного струму тієї 
ж потужності. Недоліком колекторних двигунів постійного струму є наявність 
щітково-колекторного вузла, що обмежує їх довговічність і є джерелом 
радіоперешкод. Внаслідок іскріння на змінному контакті ці двигуни не придатні 
для експлуатації у вибухонебезпечних середовищах [15]. 
За функціональним призначенням колекторні двигуни постійного струму 
підрозділяються на силові і керовані. В свою чергу, силові електродвигуни 
виконуються зі стабілізацією і без стабілізації частоти обертання. Двигуни з 
відцентрово-вібраційними регуляторами частоти обертання мають стабільність 
в межах ± (2-5)%. 
Точність стабілізації частоти обертання двигунів з електронними 
регуляторами залежить від прийнятої системи стабілізації. Статична система 
стабілізації забезпечує стабільність частоти обертання до ± 0,5%, а статична 
система - з точністю, яка визначається стабільністю частоти еталонного 
джерела. 
Центробіжний регулятор - механізм, який реалізує негативний зворотний 
зв'язок для регулювання швидкості обертання в машинах різноманітних 
принципів дії і призначення. 
Важливою функціональною властивістю двигунів є швидкодія, яка 
визначається в основному конструктивним виконанням і видом збудження. 
Двигуни із зубцевим якорем мають постійну часу 30-100 мс, з порожнистим 
якорем 15-20 мс, з гладким і друкованим якорями 5-10 мс. Для регулювання 
частоти обертання двигунів з паралельним збудженням і зі збудженням від 
постійних магнітів застосовується в основному якірне управління, тобто зміна 
напруги живлення якірного ланцюга, при цьому механічна характеристика, не 
змінюючи жорсткості, зміщується паралельно своєму положенню. Практичні 
межі регулювання частоти обертання двигунів постійного струму складають від 
1: 5 до 1:20 [15]. 
Безколекторні двигуни постійного струму. 
Конструктивно безколекторний двигун складається з ротора з постійними 
магнітами і статора з обмотками. Звернемо увагу на те, що в колекторному 
двигуні навпаки, обмотки знаходяться на роторі. Тому, далі в тексті ротор - 
магніти, статор - обмотки. Для управління двигуном застосовується 
електронний регулятор (рис. 3.3). 
Безколекторний двигун не має колектора, а його функції виконує 
електроніка. З конструкції двигуна видаляється досить складний, що вимагає 
обслуговування, важкий і такий що іскрить вузол - колектор. 
Конструкція двигуна істотно спрощується. Двигун виходить легше і 
компактніше. Значно зменшуються втрати на комутацію, оскільки контакти 
колектора і щітки замінюються електронними ключами. У підсумку отримуємо 
електродвигун з найкращими показниками ККД і показником потужності на 
кілограм власної ваги, з найбільш широким діапазоном зміни швидкості 
обертання [16]. 
 
Рисунок 3.3 – Конструкція колекторного і безколекторного двигунів 
 
На практиці безколекторні двигуни гріються менше, ніж їх колекторні 
аналоги. Переносять велике навантаження по моменту. 
Застосування потужних неодімових магнітів зробили безколекторні 
двигуни ще більш компактними. Конструкція безколекторного двигуна дозволяє 
експлуатувати його в воді і агресивних середовищах (зрозуміло, тільки двигун, 
піддавати регулятор впливу вологи не можна так як це призводить до короткого 
замикання, для профілактики короткого замикання регулятор потрібно буде 
герметизувати, що супроводжується великими витратами ресурсів). 
Безколекторні двигуни практично не створюють радіоперешкод. 
Єдиним недоліком двигунів такого типу вважають складний дорогий 
електронний блок управління (регулятор). Однак, якщо необхідно управляти 
оборотами двигуна, без електроніки ніяк не обійтися. Якщо вам не треба 
керувати обертами безколекторного двигуна, без електронного блоку 
управління все одно не обійтися. 
Крокові двигуни 
Кроковий електродвигун - це синхронний безщітковий електродвигун з 
декількома обмотками (рис. 3.4), в якому струм, подається в одну з обмоток 
статора, що викликає фіксацію ротора. 
Послідовна активація обмоток двигуна викликає дискретні кутові 
переміщення (кроки) ротора [17]. 
 
Рисунок 3.4 – Кроковий двигун. 1) статор, 2) обмотки збудження, 3) ротор 
 
Конструктивно крокові електродвигуни складаються зі статора 1, на якому 
розташовані обмотки збудження 2, і ротора 3, виконаного з магніто-м'якого або 
з магніто-твердого матеріалу. Крокові двигуни з магнітним ротором дозволяють 
отримувати більший крутний момент і забезпечують фіксацію ротора при 
знеструмлених обмотках. 
Крокові електродвигуни застосовуються в приводах машин і механізмів, 
що працюють в старт-стопному режимі, або в приводах безперервного руху, де 
керуючий вплив задається послідовністю електричних імпульсів, наприклад, в 
верстатах з ЧПУ. 
На відміну від сервоприводів, крокові приводи дозволяють отримувати 
точне позиціонування без використання зворотного зв'язку від датчиків 
кутового положення. Крокові двигуни з постійними магнітами можуть 
використовуватися в якості датчиків кута повороту завдяки виникненню ЕРС на 
обмотках при обертанні ротора. 
Сервоприводи. 
Сервопривод - це електромотор з редуктором, керований через негативний 
зворотний зв'язок, яка дозволяє точно керувати параметрами руху. (рис. 3.5) 
Сервоприводи розрізняються за розмірами. І хоча офіційної класифікації 
не існує, виробники давно дотримуються декількох розмірів з 
загальноприйнятим розташуванням кріпильних елементів. 
Бувають ще так звані сервоприводи «спеціального виду» з габаритами, які 
не потрапляють в дану класифікацію, проте відсоток таких сервоприводів дуже 
малий. 
 
Рисунок 3.4 – Сервопривод 
 
Сервоприводи бувають аналогові і цифрові. Зовні вони нічим не 
відрізняються: електромотори, редуктори, потенціометри у них однакові, 
розрізняються вони лише внутрішньої керуючою електронікою. Замість 
спеціальної мікросхеми аналогового сервоприводу у цифрового аналога можна 
помітити на платі мікропроцесор, який приймає імпульси, аналізує їх і керує 
мотором. Таким чином, у фізичному виконанні відмінність лише в способі 
обробки імпульсів і управлінні мотором [18]. 
Для переміщення захвату по трьох координатах обрано три крокових 
двигуна 17HS4401, який має такі характеристики:  
• Типорозмір: Nema 17 
• Позначення: 4401, 17hs4401, 17hs4401s 
• Фланець: 42мм 
• Довжина: 37 ... 40мм 
• Струм (номінальний): 1,7А 
• Крок (кут повороту): 1,8° ± 5% 
• Утримує момент: 40 Н × см 
• Діаметр валу: 5 мм 
• Підключення: роз'єм 4пін, 2 фази 
• Маса: 0.28 кг 
 
Рисунок 3.5 – Кроковий двигун NEMA17 (17HS4401) 
 
3.2.3 Вибір драйверів двигунів. Драйвер крокового двигуна повинен 
вирішувати дві основні задачі: це формування необхідних часових 
послідовностей сигналів і забезпечення необхідного струму в обмотках [20].  
Для підключення крокового двигуна 3 NEMA17 (17HS4401) до плати 
Arduino UNO використовується драйвер DRV8825, який може працювати з 
мікрокроком до 1/32, напругою до 45 В і струмом до 2.5 А [19]. 
Технічні характеристики: 
•  Напруга живлення: від 8,2 до 45 В 
•  Установка кроку: 1, 1/2, 1/4, 1/8, 1/16, 1/32 
•  Напруга логіки: 3.3 В 
•  Захист від перегріву: + 
•  Максимальний струм на фазу: 1.5 А без радіатора, 2.5 А з 
радіатором. 
•  Габарити модуля: 20 мм х 15 мм х 10 мм 
•  Габарити радіатора: 9 мм х 5 мм х 9 мм 
Основна мікросхема модуля це драйвер від TI (Texas Instruments Inc.) 
DRV8825, яка здатна управляти одним біполярним кроковим двигуном. Даний 
драйвер повністю взаємозамінний з драйвером A4988. Мікросхема DRV8825 
може працювати з вихідними напругами до 45 В і струмом до 1.5А на котушку 
без радіатора і до 2.5 А з радіатором (додатковим охолодженням). Так само, 
модуль має внутрішній стабілізатор напруги, який живить логічну частину 
модуля напругою 3.3 В від джерела живлення крокового двигуна. 
Драйвер дозволяє використовувати шість варіантів кроку: 1, 1/2, 1/4, 1/8, 
1/16, 1/32. На драйвері DRV8825 розташовано 16 контактів, призначення 
кожного можна подивитися на рис.3.6. 
 
Рисунок 3.6 – Призначення контактів драйвера DRV8825 
 
• EN - включення і вимкнення модуля (0 - включений, 5 В - вимкнений). 
• M0, M1 і M2 - вибір режиму мікрокроку (дивіться таблицю 3.1). 
• RST - скидання драйвера. 
• SLP - вивод включення сплячого режиму, якщо підтягнути його до 
низького стану драйвер перейде в сплячий режим. 
• STEP - керуючий вивод, при кожному позитивному імпульсі, двигун 
робить крок (в залежності від настройки мікрокроку), чим швидше 
імпульси, тим швидше обертається двигун. 
• DIR - керуючий вивод, якщо подати +5 В двигун буде обертається за 
годинниковою стрілкою, а якщо подати 0 В проти годинникової стрілки. 
• VMOT & GND MOT - живлення крокового двигуна від 8.2 до 45 В 
(обов'язкова наявність конденсатора на 100 мкФ).  
• B2, B1, A1, і A2 - підключення обмоток двигуна. 
• FAULT - Вихід включення захисту, якщо стан «0», значить польові 
транзистори H-моста відключені в результаті захисту від перевантаження 
по струму або був перегрів. 
• GND LOGIC - заземлення мікроконтролера. 
Драйвер DRV8825 може працювати в мікрокроковому режимі, тобто може 
подавати живлення на котушки з проміжними рівнями. Наприклад, якщо взяти 
двигун NEMA17 з кроком 1.8 або 200 обертів, в режимі 1/4, двигун видаватиме 
800 кроків за оберт 
Дня налаштування мікрокроків на драйвері DRV передбачені три виходи, 
а саме M0, M1 і M2. Встановивши відповідні логічні рівні для цих виводів, 
можна вибрати режим мікрокроку. 
Таблиця 3.1 
Вибір режиму мікрокроку 
M0 M1 M2 Мікрокрок 
low low low Повний крок 
high low low 1/2 
low high low 1/4 
high high low 1/8 
low low high 1/16 
high low high 1/32 
low high high 1/32 
high high high 1/32 
Виводи M0, M1 і M2 в мікросхемі DRV8825 підтягнуті резистором до 
землі, тому що, якщо не підключати їх, двигун буде працювати в режимі 
повного кроку. 
При інтенсивній роботі мікросхеми DRV8825 починає сильно грітися і 
якщо температура перевищить припустимі значення, може згоріти. За 
документацією DRV8825 може працювати зі струмом до 2.5 А на котушку, але 
на практиці мікросхема не гріється якщо струм не перевищує 1.2 А на котушку. 
Тому якщо струм вище 1.2 А необхідно встановлювати радіатор охолодження, 
який йде в комплекті. 
Перед використанням мотора потрібно зробити невелике налаштування, 
необхідно обмежити максимальну величину струму, що протікає через котушки 
крокового двигуна і обмежити його перевищення номінального струму двигуна, 
регулювання здійснюється за допомогою невеликого потенціометра. 
Для установки необхідно розрахувати значення напруги Vref. 
 
Vref = IL / 2 
 
де, IL - номінальний струм двигуна 
У нашому випадку, номінальний струм двигуна 17HS4401 дорівнює 1,7 А. 
 
Vref = 1,7 / 2 = 0,85 В 
 
Залишилося тільки налаштувати, беремо викрутку і вольтметр, плюсовий 
щуп вольтметра встановлюємо на потенціометр, а щуп заземлення на вивод 
GND і виставляємо потрібне значення. 
Розглянемо підключення драйвера крокового двигуна DRV8825 до 
Arduino UNO. Насамперед підключаємо GND LOGIC до GND на Arduino. 
Контакти DIR і STEP підключимо до цифрових контактам 2 і 3 на Arduino. 
Підключаємо кроковий двигун до контактів B2, B1, A2 і A1. 
Потім необхідно підключити контакт RST до сусіднього контакту SLP до 
5В на Arduino, щоб включити драйвер. Також контакти вибору мікрокроку 
необхідно залишити не підключеними, щоб працював режим повний мікрокрок. 
Тепер залишилося підключити живлення двигуна до контактів VMOT і GND 
MOT, головне не забути підключити електролітичний конденсатор на 100 мкФ, 
в іншому випадки при стрибку напруги, модуль може вийти з ладу. 
 
Рисунок 3.7 – Підключення драйвера DRV8825 до плати Arduino UNO і до 
крокового двигуна 
 
Тепер можна приступити до програмної частини і почати управляти 
кроковим двигуном за допомогою драйвера DRV8825, завантажуйте даний 
скетч в Arduino [19]. Для роботи даного скетчу не потрібно ніяких бібліотек. 
Програма починається з визначення виводів Arduino, до яких підключені виводи 
STEP і DIR. Так само вказуємо stepsPerRevolution кількість кроків на оборот. У 
функції void setup () вказуємо керуючі контакти як вихід. В основній функції 
void loop (), обертаємо двигун за годинниковою стрілкою потім проти з різною 
швидкістю.  
В роботі [8] відмічається, що можливою незручністю при використанні 
драйвера крокового двигуна DRV8825 може бути низька швидкість 
переміщення маніпулятора. Для подолання цього недоліку як альтернативу 
можна використовувати драйвер крокового двигуна TB6560 [21] або плату 
розширення Motor Shield [22] або комплект мікросхем L297 і L298 фірми 
SGS-Thomson. Мікросхема L297 містить логіку формування часових 
послідовностей, а L298 представляє собою потужний здвоєний H-міст [20]. 
 
 
 
 
const int dirPin = 2; 
const int stepPin = 3; 
const int stepsPerRevolution = 200; 
  
void setup() 
{ 
  pinMode(stepPin, OUTPUT); 
  pinMode(dirPin, OUTPUT); 
} 
void loop() 
{ 
  digitalWrite(dirPin, HIGH); // Установка обертання за годинниковою стрілкою  
   
  for(int x = 0; x > stepsPerRevolution; x++) 
  { 
    digitalWrite(stepPin, HIGH); 
    delayMicroseconds(2000); 
    digitalWrite(stepPin, LOW); 
    delayMicroseconds(2000); 
  } 
  delay(1000); 
   
  digitalWrite(dirPin, LOW); // Установка обертання проти годинникової стрілки  
  
  for(int x = 0; x < stepsPerRevolution; x++) 
  { 
    digitalWrite(stepPin, HIGH); 
    delayMicroseconds(1000); 
    digitalWrite(stepPin, LOW); 
    delayMicroseconds(1000); 
  } 
  delay(1000); 
} 
Рисунок 3.8 – Скетч для керування кроковим двигуном NEMA17 (17HS4401) 
 
3.2.4 Вибір клавіатури. У багатьох проектах з'являється необхідність 
створення можливості вводу даних користувачем. Якщо потрібно реалізувати 
велику кількість кнопок (відносно), то підключати їх окремо стає і довго, і 
нераціонально. Для цієї мети краще вибрати якусь клавіатуру, але як і до будь-
якого вибору, до нього потрібно підходити усвідомлено. Розглянемо, які ж 
бувають види клавіатур і способи взаємодії з ними [23]. 
Глобально, всі модулі даного типу можна поділити на дві великі категорії: 
матричні і аналогові. 
Матричні клавіатури – найпростіший, дешевий і популярний вид 
клавіатур. Він відносно простий у виготовленні і заповнює собою велику 
частину ринку модулів Ардуіно. Виглядає найчастіше так, як показано на 
рис.3.9. 
 
Рисунок 3.9 – Зовнішній вигляд матричної клавіатури 
 
Зрозуміти як влаштована ця клавіатура можна вивчивши схему, наведену 
на рис.3.10 
 
Рисунок 3.10 – Конструкція матричної клавіатури 
Щоб зрозуміти яка кнопка була натиснута, потрібно подавати сигнал на 
перші чотири контакти модуля і дивитися який сигнал повертається з другої. 
Але не варто лякатися того, що доведеться писати алгоритми обробки для 
восьми пінів вручну - в цьому допоможе готова бібліотека «keypad.h», завдяки 
якій не доведеться винаходити велосипед [23]. 
Розглянемо схему підключення клавіатури до плати Arduino UNO 
(рис.3.11). 
 
Рисунок 3.11 – Схема підключення матричної клавіатури до плати Arduino UNO 
 
В схемі, наведеній на рис.3.11, використовуються піни з другого по 
дев'ятий, пропустивши нульовий і перший. Справа в тому, що деякі модулі, 
використовують їх в якості каналів RX і TX для отримання і передачі даних 
відповідно. Наприклад, блютуз модуль. Тому з урахуванням можливого 
доповнення проекту іншими модулями, було вирішено залишити дані піни 
підключення вільними. 
Для початку, для того, щоб отримати можливість використовувати 
бібліотеку для підключення клавіатур в коді, потрібно встановити її на ваш 
пристрій. Це можна зробити наступним чином: в самій Arduino IDE натискаємо 
Скетч →  Підключити бібліотеку →  Керувати бібліотеками ... або 
використовуємо комбінацію гарячих клавіш «Ctrl + Shift + I». У пошуку 
вбиваємо «keypad.h» (без лапок) і натискаємо «Установка». Після установки 
приступаємо до написання скетчу (рис.3.12). 
#include <Keypad.h> // підключаємо бібліотеку для керування клавіатурою  
const byte ROWS = 4; //число строк у нашій клавіатурі  
const byte COLS = 4; //число столбцов у нашей клавиатуры  
char hexaKeys[ROWS][COLS] = {// тут ми маємо в своєму розпорядженні назви наших 
клавіш, як на клавіатурі, для зручності користування  
{'1','4','7','*'},  
{'2','5','8','0'},  
{'3','6','9','#'},  
{'A','B','C','D'}  
};  
 
byte rowPins[ROWS] = {5, 4, 3, 2}; //до яких виводів підключаємо управління строками  
byte colPins[COLS] = {9, 8, 7, 6}; // до яких виводів підключаємо управління стовбцями  
 
//передаємо всі ці дані бібліотеці:  
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, 
COLS);  
 
void setup(){ 
Serial.begin(9600);//запускаємо відладочний вивод в монітор порту  
}  
void loop(){  
char customKey = customKeypad.getKey();//записуємо натиснутий символ  
if (customKey){//якщо щось натиснуте  
Serial.println(customKey);//виводимо натиснутий символ в монітор порту  
}  
} 
Рисунок 3.12 – Скетч для керування матричною клавіатурою 
 
Розглянемо переваги і недоліки використання матричних клавіатур.  
Недоліком матричної клавіатури є використання занадто великого числа 
пінів для роботи. Це доволі велика проблема, оскільки в проекті може бути 
задіяно величезну кількість різних модулів - можливо їм просто не вистачить 
пінів. 
Також помітним недоліком є занадто низька якість виконання модуля: 
ніхто не гарантує постійний стабільний сигнал. Оригінальні клавіатури виконані 
не на дуже високому рівні, а якщо ви взагалі зробили замовлення на Aliexpress, 
то швидше за все, доведеться виправляти помилки китайських інженерів 
паяльником, щоб добитися стабільної роботи. 
І нарешті, використовується додаткова бібліотека, яка також буде займати 
пам'ять мікроконтролера, якої у нього і так не дуже багато. Якщо пишеться 
великий проект з великою кількістю функцій і обчислень і кожен байт на 
рахунку потрібно зчитувати дані з клавіатури вручну або використовувати 
аналогову клавіатуру. 
До переваг слід віднести низьку ціну і легко придбання. Крім того, є 
проекти для яких використання клавіатури є природнім і забезпечує зручність 
керування проектом, наприклад, кодовий замок. 
Розглянемо принцип роботи аналогових клавіатур [23].  
В аналогових клавіатурах для зміни рівня напруги використовуються 
резистори, а сигнал виходить по одному каналу, який підключається в 
аналоговий пін на платі. Як все влаштовано можна зрозуміти поглянувши на 
рис.3.13. 
 
Рисунок 3.13 – Принцип роботи аналогової клавіатури  
Підключення до плати виконується дуже просто, але може змінюватися в 
залежності від конкретної клавіатури. Отже: аналоговий вихід клавіатури 
з'єднуємо з будь-яким аналоговим піном на платі, контакт VCC на платі 
з'єднуємо з 3.3V (не дивіться на напис на самій клавіатурі, в якій мовиться про 
5V - це помилка), а GND на платі з GND на модулі. Можна скористатися 
схемою, наведеною на рис.3.14. 
 
 
Рисунок 3.14 – Схема підключення аналогової клавіатури до плати Arduino UNO 
 
 
Для написання скетчу тут не потрібно використовувати сторонні 
бібліотеки, тому що все гранично просто і зрозуміло. Код, який зчитує 
натиснуту кнопку і виводить її номер, від 1 до 16 (зліва на право, з верху в низ) 
або 0 якщо нічого не натиснуто, в монітор порту (рис.3.15). 
Перевагами використання аналогової клавіатури є: 
• дуже просте підключення; 
• займає лише один пін; 
• економить пам'ять, яка не витрачається під бібліотеку; 
• забезпечує стабільну роботу (за умови, якщо не будете натискати більше 
однієї кнопки одночасно). 
До недоліків слід віднести значно вищу вартість ніж у матричних 
клавіатур і, швидше за все, єдиним способом її покупки буде замовлення з 
Китаю, отже доставка займе якийсь час. 
 
unsigned const short int KEYPAD_PIN = 0;//аналоговий порт для клавіатури  
void setup() {  
Serial.begin(9600);  
analogReadResolution(10);//всі аналогові значення будуть в діапазоні 0...1023  
}  
 
void loop() {  
Serial.println(getPressedKeypadButton());//виводимо номер натиснутої кнопки в монітор 
порту  
}  
 
short int getPressedKeypadButton(){//зчитуємо натиснення keypad`a  
//повертає значення от 1 до 16 в залежності від натиснутої кнопки або 0 якщо нічого не 
натиснуто  
const int OCCURACY = 5;//помилка в точності визначення значень  
int sensorValue = analogRead(KEYPAD_PIN);//читаємо значення з датчика  
int keys[] = {1016, 937, 860, 794, 683, 641, 604, 571, 509, 485, 464, 444, 407, 328, 275, 
236};//масив зразкових значень для клавіш (0-15, где 0=1, 1=2 и т.д.)  
if(sensorValue > -OCCURACY && sensorValue < OCCURACY){return 0;}//якщо нічого не 
натиснуто, то відразу повертаємо 0  
for(short int i = 0; i < 16; i++){//перевіряємо в циклі з яким по номеру елементом масиву 
співпадає значення з датчика  
if(sensorValue > (keys[i] - OCCURACY) && sensorValue < (keys[i] + OCCURACY)){  
return i+1;//повертаємо на один більше, так як при перевірці у нас 0 вважається 
першою кнопкою, але для зручності 0 буде відсутністю сигналу  
}  
}  
} 
Рисунок 3.15 – Скетч для керування аналоговою клавіатурою 
 
Враховуючи поширеність і низьку ціну матричних клавіатур в даному 
проекті буде використовуватися саме цей тип обладнання. 
3.2.5 Вибір блоку живлення. Невід'ємною частиною кожного 
електричного пристрою є блок живлення. Він важливий так само, як і інші 
частини пристрою. При цьому можна заощадити на придбанні блоку живлення, 
скористашись блоком живлення морально застарілого комп’ютера.  
Основне призначення блоку живлення - формування напруги живлення, 
яке необхідно для функціонування всіх блоків автоматизованого складу. 
Основна напруга живлення комп’ютерного блоку живлення це: +12 В, +5 В, 
+3,3. Існують також додаткову напругу: 12В і -5В. Ще блок живлення здійснює 
гальванічну розв'язку між мережею 220В і компонентами схеми. Це необхідно 
для усунення струмів витоків, наприклад щоб корпус ПК не билася струмом, а 
також перешкоджає виникненню паразитних струмів при сполученні пристроїв 
[24]. 
Для цього проекту було використано джерело живлення ПК ATX, здатне 
забезпечити струм до 3А при напрузі 12В та принаймні 1А при напрузі 5В. 
3.2.6 Програма IDE Arduino. Програмний код для керування всіма 
блоками автоматизованої складської системи написано в IDE Arduino. 
У додатку А наведено програма керування автоматизованим складом. 
Мікроконтролерна плата Arduino повинна повинен керувати рухом 
маніпулятора (виделкового захвату) і зберігати координати різних комірок 
стелажу у пам’яті. 
Для управління рухом маніпулятора було вирішено скористатися 
кроковими двигунами, які здатні забезпечити  надзвичайно точне 
позиціонування маніпулятора відносно комірок стелажу. Подаючи імпульси 
керування на драйвери двигунів можна точно задавати траєкторію руху по 
відповідній осі. , який здійснює мотор. Знаючий, що  для обраних двигунів крок 
відповідає 1,8°, легко визначити кількість кроків, за яку моторний шків 
здійснить повний оберт 
 
360
N = = 200  
1,8
Знаючи це, обчислили кількість витків, необхідних для досягнення 
маніпулятором комірки стелажу, найближчої до платформи (початку відліку) 
вздовж осі зсуву. Експериментально установлено, що за 675 кроків маніпулятор 
доходить до першої комірки. 
Для вертикальної осі Оy виявилося, що для досягнення середньої комірки 
стелажу (другий ряд) потрібно 3050 кроків. 
Ці два розміри залишаються стандартними і множать відповідно до 
номеру потрібної комірки, з якою планується проводити маніпуляції 
(завантажити або вивантажити). Наприклад, якщо необхідно дістатися до 
комірки № 5 (що утворюється перетином 2 стовбця і першої строки) потрібно 
зробити наступні кроки: 
 
x = 675 2 =1350  
у = 3050 1= 3050  
 
Отже, маніпулятор переміститься спочатку на 1350 кроків по осі Оx, а 
потім 3050 кроків по осі Оy. 
Після здачі на зберігання або вилучення вантажу, або в початковій фазі 
включення складу, необхідно повернути маніпулятор у положення «нуль» або 
положення, з якого починається підрахунок кроків, які слід здійснити, для 
переміщення зплатформи. 
Тому функції zerox (), zeroy () і zeroz () мають завдання змусити всі 
механізми рухатися до тих пір поки вибрані кінцеві вимикачі не активовані. 
Функція zerox () переміщує маніпулятор у напрямку до платформи та 
зупиняється лише тоді, коли він натискає кінцевий вимикач, що обумовлено 
його поверненням. Функція  zeroy () рухає захват вниз, поки він не активує 
кінцевий вимикач, розташований внизу. Функція zeroz () виконує аналогічну 
процедуру, що встановлює маніпулятор у положення, коли захват виходить з 
простору комірки. 
Захват повинен виконувати різні рухи у двох різних ситуаціях: зберігання 
та вилучення вантажу. Ці рухи задані, і викликаються функціями, які ними 
керують у відповідний час. Наприклад, якщо потрібно взяти вантаж зі складу, то 
послідовність рухів буде така: 
• захват розміщується перед обраною коміркою, 
• захват рухається вперед по осі ОZ, 
• захват рухається вгору по осі ОY, щоб підняти вантаж, 
• захват іде назад по осі ОZ, 
• захват повертається в нульове положення, 
• захват рухається вперед до осі ОZ, 
• захват рухається вниз по осі ОY, щоб вивантажити пакет, 
• захват повертається назад по осі ОZ і розташовується в нульовому 
положенні. 
Кількість кроків, які повинні виконати двигуни для виконання найменших 
переміщень може бути виявлена експериментально після декількох випробувань 
та після вимірювання пройденої дистанції. 
Рухи для зберігання вантажів будуть подібними, але, очевидно, будуть іти 
в іншому порядку. 
Якщо деякі комірки заняті вантажем, або у разі зникнення напруги 
живлення, Arduino повинен пам’ятати стан складських комірок. Для цього 
використовується бібліотека EEPROM, яка доступна на офіційному веб-сайті 
Arduino [25]. 
На етапі ініціалізації за допомогою функції EEPROM.read () перевіряється 
стан комірки пам’яті від 0x01 до 0x09, кожна з яких зберігає статус однієї 
складської комірки. На етапі нескінченного циклу замість кожної операції 
зберігання та вилучення вантажу переходимо до зміни значень бітів матриці, які 
сигналізують про стан комірок, а потім зберігаємо її в EEPROM за допомогою 
функції EEPROM.write (). Таким чином, навіть після вимкнення живлення 
зберігається статус комірок. 
Дана бібліотека дозволяє читати і писати ці байти. Має функції: read () і 
write (). byte EEPROM.read (address) читає дані з EEPROM, де address: номер 
комірки від 0 до 511 (int), повертає значення, що зберігається в цій комірці 
(byte). 
Приклад: 
#include <EEPROM.h> 
int a = 0; 
int value; 
void setup () 
{ 
Serial.begin (9600); 
} 
void loop () 
{ 
value = EEPROM.read (a); 
Serial.print (a); 
Serial.print ( "\ t»); 
Serial.print (value); 
Serial.println (); 
a = a + 1; 
if (a == 512) 
a = 0; 
delay (500); 
} 
Функція EEPROM.write (address, value) пише дані в EEPROM, де: address: 
номер комірки від 0 до 511 (int), value: значення комірок від 0 до 255 (byte). 
Даташіт на Atmega 168 вказує, що пам'ять EEPROM витримує 100000 
циклів читання / запису. Це той ліміт, що вказує як багато разів можна вносити 
інформацію в пам'ять даних.  
Даташіт також вказує, що запис даних відбувається за 3.3 мс. Інші 
операції читання / запису будуть з помилкою, якщо вони будуть виконуватися в 
цей час. Ця затримка інтегрована в бібліотеку EEPROM і кожен раз відбувається 
примусова затримка в 3,3мс. Тому не потрібно самостійно турбуватися про цю 
затримку. 
Приклад: 
#include <EEPROM.h> 
void setup () 
{ 
for (int i = 0; i <512; i ++) 
EEPROM.write (i, i); 
} 
void loop () 
{ 
} 
 
3.3 Розробка алгоритму та блок-схеми роботи автоматизованого 
складу 
 
Для кращого розуміння функціонування алгоритму розглянемо блок-
схему, наведену на рис.3.16 [11]. 
Ініціалізація  Ініціалізація 
   
Переміщення маніпулятора 
Переміщення маніпулятора 
до приймального пункту  
до комірки стелажу 
(платформи) 
   
Переміщення виделкового Переміщення виделкового 
 
захвату вперед захвату вперед 
   
Підйом виделкового Підйом виделкового 
 
захвату захвату 
   
Переміщення виделкового Переміщення виделкового 
 
захвату назад захвату назад 
   
Переміщення маніпулятора 
Переміщення маніпулятора 
 до приймального пункту 
до комірки стелажу 
(платформи) 
   
Підйом виделкового Підйом виделкового 
 
захвату захвату 
   
Переміщення виделкового Переміщення виделкового 
 
захвату вперед захвату вперед 
   
Опускання виделкового Опускання виделкового 
 
захвату захвату 
   
Переміщення виделкового Переміщення виделкового 
 
захвату назад захвату назад 
   
Ініціалізація    а)                             б) Ініціалізація 
Рисунок 3.16 – Блок-схема роботи автоматизованого складу для однієї операції: 
а) переміщення вантажу від платформи до комірки; б) від комірки до платформи 
Проте, схема, представлена на рис.3.16, описує роботу автоматизованого 
складу при виконанні однієї операції. При цьому вважається, що вантаж 
переміщується від приймального пункту до комірки, коли та знаходиться в 
незаповненому стані (пуста комірка). І навпаки, при вилученні вантажу з певної 
комірки вважається, що він там обов’язково є (заповнена комірка). Очевидно, 
що при реальній роботі складу така ситуація є лише частковим випадком, тому 
потрібно, щоб складська система автоматично відслідковувала і 
запам’ятовувала статус наповненості (або ненаповненості) комірки. Блок-схема 
роботи автоматизованого складу стелажного типу в повному (нескінченому) 
циклі наведена на рис.3.17. 
На початку роботи автоматизованого складу відбувається ініціалізація 
портів плати Arduino, це необхідно для того, щоб налаштувати виходи 
мікроконтролера на прийом або передачу сигналу. На платі Arduino зробити це 
можна двома способами [26]. Розглянемо один з них.   
Відомо, що Arduino програмується на C++ з деякою адаптацією і 
спрощеннями для новачків. Він називається Wiring. Спочатку все порти Ардуіно 
визначаються як входи, і немає потреби ставити це в коді. 
Порти зазвичай прописуються в функції ініціалізації змінних: 
void setup () 
{ 
// код 
} 
Для цього використовується команда pinMode, у неї досить простий 
синтаксис, спочатку вказується номер порту, потім його роль через кому. 
pinMode (nomer_porta, naznachenie) 
За допомогою цієї команди внутрішня схема мікроконтролера 
конфігурується певним чином. 
Є три режими в яких може працювати порт:  
INPUT - вхід, в цьому режимі відбувається зчитування даних з датчиків, 
стану кнопок, аналогового і цифрового сигналу. Порт знаходиться в т.зв. 
високоімпедансному стані, простими словами - біля входу високий опір. 
Встановлюється це значення, на прикладі 13 Піна плати, при необхідності так: 
pinMode (13, INPUT); 
OUTPUT - вихід, залежно від команди прописаної в коді порт приймає 
значення одиниці або нуля. Вихід стає свого роду керованим джерелом 
живлення і видає максимальний струм (в нашому випадку 20 мА і 40 мА в піку) 
в навантаження, що до нього підключене. Щоб призначити порт як вихід на 
Arduino потрібно ввести: 
pinMode (13, OUTPUT); 
INPUT_PULLUP - порт працює як вхід, але до нього підключається т.зв. 
підтягаючий резистор в 20 кОм. 
Особливістю цього входу є те, що вхідний сигнал сприймається як 
проінвертований («одиниця» на вході сприймається мікроконтролером як 
«нуль»). У такому режимі можна не використовувати зовнішні підтягуючі 
резистори при роботі з кнопками. 
pinMode (13, INPUT_PULLUP); 
Дані приймаються з портів і передають на них командами: 
digitalWrite (пін, значення) - переводить вихідний пін в логічну 1 або 0, 
відповідно на виході з'являється або зникає напруга 5В, наприклад digitalWrite 
(13, HIGH) - подає 5 вольт (логічну одиницю) на 13 пін, а digitalWrite (13, low ) - 
переводить 13 пін в стан логічного нуля (0 вольт); 
digitalRead (пін) - зчитує значення з входу, приклад digitalRead (10), зчитує 
сигнал з 10 Піна; 
analogRead (пін) - зчитує аналоговий сигнал з аналогового порту, ви 
отримуєте значення в діапазоні від 0 до 1023 (в межах 10-бітного АЦП), 
приклад analogRead (3). 
Головною перевагою такого управління є простота, тому в даній роботі 
зупинимося на цьому варіанті. 
На початку роботи маніпулятор знаходиться в нульовому положенні. Для 
контролю статусу завантаженості комірок підключається стандартна бібліотека 
Arduino – EEPROM, яка виконує роль жорсткого диску. На цьому підготовчий 
етап завершується і схема далі працює в нескінченому циклі. Користувач має 
можливість ввести номер комірки, в яку він бажає помістити вантаж або 
навпаки його вилучити. Після натиснення кнопки автоматизована система 
визначає як їй діяти. Якщо за цією кнопкою в бібліотеці EEPROM закріплений 
статус «комірка порожня», то ця інформація дозволить виконувати операцію 
переміщення вантажу від платформи до комірки (прийом вантажу на склад). 
Після чого маніпулятор повернеться в нульове положення.  
Якщо ж за натиснутою кнопкою в бібліотеці EEPROM закріплений статус 
«комірка заповнена», то автоматизована система може виконувати операцію 
переміщення вантажу від комірки до платформи (видача вантажу зі складу). 
Після чого маніпулятор також повертається в нульове положення. 
Таким чином оператору складу не потрібно знати і контролювати 
інформацію про заповнення комірок стелажу, за нього це робить 
автоматизована система, постійно оновлюючи статус наповненості комірок. 
Інформація про статус комірок актуалізується як після натисканні кнопок 
користувачем так і після проведення складських операцій (видача/прийом 
вантажу). 
Закінчення роботи автоматизованої складської системи наступає лише за 
умови припинення подачі живлення, але статус наповненості комірок 
зберігається і після включення стенду, система має повну інформацію про те які 
комірки заповнені, а які пусті. 
 
 
 
 
 
 
 
Початок 
 
Ініціалізація портів Arduino 
 
Маніпулятор у  
нульовому положенні 
 
Перевірка стану комірок за  
допомогою бібліотеки EEPROM 
 
 
 
Нескінченний цикл 
 
 
так                              ні 
Живлення є? 
 
 
Ввод номера комірки  
стелажу користувачем 
 
 
 
ні              Вибрана комірка           так 
порожня? 
 
Запам’ятовується                           Запам’ятовується  
стан як заповнений                          стан як порожній 
 
З комірки                                           В комірку  
достається вантаж                          вставляється вантаж 
 
Маніпулятор у                               Маніпулятор у  
нульовому положенні                      нульовому положенні 
 
Вантаж поміщається 
на платформу 
 
Зберігання стану комірок  
в бібліотеці EEPROM 
 
 
Кінець 
 
Рисунок 3.17 –Блок-схема роботи автоматизованого складу
3.4 Технічна та програмна реалізація макета автоматизованого складу 
 
Для реалізації проекту знадобитися реалізувати механічну конструкцію 
(стелаж, рухому платформу для переміщення маніпулятора у вигляді 
виделкового захвату), апаратну частину системи управління, написати скетч, 
реалізувати управління системи. Опис розробка механічної частини проекту 
виходить за рамки вимог для даної бакалаврської роботи, тому обмежимося 
загальними відомостями про особливості механічної конструкції. 
Щоб реалізувати апаратну частину системи управління необхідно 
визначити мінімальний набір модулів та двигунів (див. підрозділи 3.1 і 3.2). 
Потім під'єднуємо до необхідних пінів в мікроконтролері всі виходи і входи 
(рис.3.18). 
Кроковий двигун 1 Кроковий двигун 2 Кроковий двигун 3 
  
17HS4401 17HS4401 17HS4401 
   
  
Драйвер двигуна 1 Драйвер двигуна 2 Драйвер двигуна 3 
DVR8825   
DVR8825 DVR8825 
  
   
 Система управління  
  
Arduino UNO 
  
   
Блок живлення Клавіатура 
 12-кнопочна мембрана   
АТХ 
клавіатура 
 
Рисунок 3.18 – Структурна схема вертикального автоматизованого складу з 
врахуванням визначених типів модулів 
 
Для реалізації скетчу всього проекту необхідно об’єднати скетчі для 
структурних складових проекту (див. підрозділ 3.2), використовувати необхідні 
бібліотеки і реалізувати алгоритм (рис.3.17). 
Управлятися весь механізм буде за допомогою клавіатури. 
Вся конструкція може бути побудована на дерев’яній основі розміром 
70х50 см2, на якій розміщується як сам стелаж, так і вся апаратна частина 
проекту (тобто драйвери для крокових двигунів, плата Arduino UNO, блок 
живлення, аварійна кнопка та дроти). 
Для усунення непорозумінь щодо нумерації комірок стелажу, на рис.3.19 
наведено зовнішній вигляд складської шафи. Технічна комірка необхідна для 
того, щоб нижні комірки були розташовані на висоті, яка обумовлена 
конструкцією пересувної платформи, що обумовлює обмеження по мінімальній 
висоті, на якій захват може опрацьовувати вантажі.  
 1 2 3 
 4 5 6 
7 8 9 
Приймальний 
пункт (платформа) 
Технічна комірка 
 
Рисунок 3.19 – Зовнішній вигляд конструкції стелажу і нумерація комірок 
 
Пересувна платформа може переміщуватися по трьох різних осях (Оx, Оy 
і Оz) і реалізована наступним чином. 
Вісь Ох. Для руху в горизонтальній площині вздовж стелажу розроблена 
пересувна платформа, яка представляє собою базу з фанери 15х20см2, що 
розміщується на 4 підшипниках, які в свою чергу ковзають по алюмінієвих 
прутках завдовжки 60 см, підтримувані чотирма тримачами. 
Під платформою підключений ремінь, який з одного боку під’єднується до 
одного з трьох двигунів, а з іншого боку до шківа, який вільно обертається, 
пересуваючи маніпулятор. 
Вісь Оz. Аналогічна система використовується для руху, необхідного для 
видачі/прийому вантажів з комірок стелажу. Тобто на пересувній базі, що 
рухається по осі Ох, створено пересувна система з тим же принципом роботи, 
що і перша, але рух здійснюється у взаємно перпендикулярному напрямі. 
Конструкцію пересувного механізму запозичено з пристрою-прототипу [7]. 
Пересувна система, що забезпечує рух маніпулятора по осі Оz,  розміщується на 
двох гладких штангах завдовжки 10 см, які також підтримуються 4 тримачами, 
які забезпечують рух у напрямку до/від стелажу.  
Візок буксирується ременем, з'єднаним на одному кінці з двигуном, а на 
іншому – зі шківом, який вільно обертається (та сама операція, що й по осі Оx). 
Вісь Оу. Третій вид руху, що дозволяє маніпулятору рухатись у висоту, 
повністю відрізняється від перших двох: ремінь більше не використовується, а 
застосовується різьбова планка довжина 40 см. Це обумовлено тим, що, що з 
вантажем певної ваги можуть виникнути проблеми при вертикальному підйомі, 
через низький опір ременя. 
Створено виделку з фанери 12х5 см2, в яку вставляється різьбовий і 
гладкий стрижні (рис.3.20). Все це підтримується алюмінієвою конструкцією 
(висотою 40 см), закріпленою в передній частині двигуна (як показано на рис. 
3.20), який у свою чергу буде закріплений на рухомій платформі для руху по осі 
ОZ. 
Кінцеві вимикачі встановлені на початку та в кінці кожної осі руху, які 
дозволяють програмі визначати довжину кожного руху вздовж трьох осей і тим 
самим дозволяють автоматизованій системі знаходити нульове положення, 
тобто орієнтуватися в просторі. 
 
Рисунок 3.20 – Конструкція для переміщення виделкового захвату по 
вертикальній осі [8] 
4. ОХОРОНА ПРАЦІ 
 
4.1 Аналіз небезпек та шкідливостей, що впливають на  
       працівників при  роботі в  приміщенні технічного відділу 
 
В даній роботі проводиться розробка автоматизованої системи для 
зберігання та пошуку вантажів. Ці роботи проводяться в приміщенні технічного 
відділу. При дослідженні цих проблем необхідно опрацювати значну кількість 
теоретичного матеріалу, розробити необхідну документацію, побудувати плани 
і графіки.  Виконання цих робіт можливе лише при застосуванні сучасної 
комп’ютерної техніки. Результати, які отримані під час моделювання 
різноманітних процесів роботи системи теж підлягають подальшій обробці 
програмним забезпеченням за допомогою сучасної комп’ютерної техніки. Тому 
виникає потреба в забезпеченні безпечної та продуктивної організації праці  
робітника відділу при роботі за комп’ютером. 
За рівнем фізичного навантаження таку роботу необхідно віднести до 
категорії І а, тобто робота яка виконується сидячі та не потребує фізичного 
навантаження. 
Технічний відділ має наступні  геометричні розміри: довжина – 8 м, 
ширина – 5,5 м, висота стелі – 3 м. Відповідно площа всього приміщення 
складає 44 м2, а об’єм становить 132 м3. Тому на одного працюючого 
припадає 11 м2, що відповідає вимогам ДБН В.2.2.28-2010 та ДСанПін 
5.5.6.009-98, відповідно до яких площа, яка припадає на одне робоче місце яке 
обладнане ПК, повинна складати не менше 6 м2, а об’єм - не меншим ніж 20 
м3.  
Робоче приміщення технічного відділу згідно з нормами проектування 
ДБН В.2.5-28-2018  «Природне та штучне освітлення» має природне та штучне 
освітлення. Природне освітлення приміщення здійснюється через три вікна, які 
зорієнтовані на захід. Розміри кожного вікна складають 1,32 м. Робоче місце 
розташоване таким чином, що усі три вікна знаходяться ліворуч від 
робочого місця працюючого. За рахунок цього забезпечене мінімальне 
потрапляння прямих сонячних промінів на екран монітора, які б спричиняли 
би відбиття світла від екрану. При цьому у полі зору працюючого  
забезпечується оптимальне співвідношення яскравості робочих та навколишніх 
поверхонь. 
Під час роботи працівник в більшості випадків працює з даними  які 
виводяться програмним забезпеченням (з розрахунками на екрані монітора). 
Тобто найменшим об’єктом розрізнення виступає «крапка»  на екрані монітора 
(в текстових редакторах та математичних прикладних інженерних програмах це 
текст чорного кольору на білому фоні). Найменший об’єкт розрізнення – 0,25 
мм, що відповідає дуже високому ступеню точності зорової праці. Розряд 
зорової праці – II, підрозряд – Г. Контраст об’єкту розрізнення з фоном - 
великий.  Для даного типу зорової праці нормативне значення КПО згідно норм 
освітлення ДБН В.2.5-28-2018 дорівнює 1,8%. Робочі місця розташовані на 
відстані 2 м від вікна і на цій відстані значення КПО складає 24-26%, що 
задовольняє нормам. Тому рівень природного освітлення можна вважати 
достатнім. 
Для темного часу доби в приміщенні передбачене штучне освітлення. 
Приміщення обладнане дванадцятьма світильниками денного світла типу 
ЛСП02-2х58-001, які розташовані симетрично та рівновіддалено від стін. 
Відповідно до ДБН В.2.5-28-2018 для даного типу зорової праці необхідна 
величина штучного загального освітлення складає 400 лк. Фактичне значення 
даного параметра складає понад 420 Лк. Отже, рівень штучного освітлення на 
робочому місці є достатнім. 
Важливе значення має мікроклімат робочого приміщення, так як він 
безпосередньо впливає на здоров’я та самопочуття працівника. До важливих 
мікрокліматичних умов можна віднести такі параметри, як температура, 
відносна вологість, швидкість руху повітря в робочій зоні. Згідно з ДСН 
3.3.6.042-99 «Повітря робочої зони», що регламентує параметри мікроклімату 
виробничих приміщень, нормативні значення основних факторів мікроклімату 
наступні: 
1. Температура повітря: в холодний період року – 22 - 24 °С (допустима – 
21 - 25 °С); в теплий період року – 23 - 25 °С (допустима – 22 - 28 °С). 
2. Вологість повітря:  в холодний період року – 40 - 60 %; в теплий період 
року – 40 -60 %. 
3. Швидкість руху повітря: в холодний період року –  0,1 м/с (допустима –  
не більша ніж 0,1 м/с); в теплий період року – 0,1 м/с (допустима – 0,1...0,2 м/с). 
Фактичні значення параметрів мікроклімату становлять: 
1. Температура повітря: в холодний період року – 16-17 °С; в теплий 
період року – 23-24 °С. 
2. Вологість повітря:  в холодний період року – 45-47 %; в теплий період 
року – 50-52 %. 
3. Швидкість руху повітря: в холодний період року –  0,06-0,1 м/с;  в 
теплий період року – 0,07-0,12 м/с. 
З наведених даних видно, що фактичне значення вологості повітря та 
швидкості руху повітря відповідає нормативним значенням параметрів. 
Значення температури повітря в холодний період року є нижчим за нормативне 
значення, отже, необхідно провести модернізацію системи опалення в 
приміщенні відділу. 
Шум також являється одним з важливих факторів виробничого 
середовища, який може негативно впливати на працівника. Шум може 
послаблювати увагу, посилювати розвиток втоми, сповільнює реакцію людини 
на небезпеку. Внаслідок цього знижується працездатність та підвищується 
імовірність нещасних випадків. 
В даному приміщенні головним джерелом шуму є вентилятор 
охолодження джерела живлення системного блоку та вентилятори встановленні 
для охолодження процесора, вінчестера та відеокарти. Так як всі вентилятори 
розташовані всередині системного блоку, то шум, який видає системний блок не 
перевищує нормативне значення еквівалентного рівня шуму, яке згідно вимог 
ДСН 3.3.6.037-99 «Санітарні норми рівнів шуму на робочих місцях» 
становить 50дБА. 
Головним джерелом електромагнітного випромінювання в приміщенні є 
монітор та системний блок. Рівні електромагнітного випромінювання на 
робочому місці повністю відповідають вимогам ДСН 3.3.6.096-2002. 
В даному приміщенні використовується електропроводка прихованого 
типу, яка виконана мідним дротом 3*2,5 мм. кв. Таке виконання проводки 
запобігає виникненню та поширенню пожежі внаслідок можливого короткого 
замкнення в проводці, та можливому враженню працівника струмом. 
Обладнання, а саме системні блоки та монітори, встановлене в кабінеті 
живиться напругою 220 В і споживає потужність менше ніж 2500 Вт. Оскільки 
системний блок ПК має металевий корпус, то згідно ДСТУ Б В.2.5-82:2016 в 
приміщенні передбачена магістраль захисного заземлення, яка забезпечує 
захист працівника від ураження електричним струмом. 
За категорією пожежонебезпеки згідно ДСТУ Б В.1.1-36:2016, дане 
приміщення відноситься до типу В (горючі та важкогорючі рідини, тверді 
горючі та важкогорючі речовини і матеріали, речовини та матеріали, здатні при 
взаємодії з водою, киснем повітря або одне з одним лише горіти, за умови, що 
приміщення, в яких вони знаходяться не належать до категорій А чи Б). Стіни 
приміщення виготовлені з цегли, оштукатурені та пофарбовані 
водоемульсійною фарбою, підлога покрита лінолеумом. Всі матеріали 
застосовані для будівництва приміщення повністю дозволені для оздоблення 
приміщень органами державного санітарно-епідеміологічного нагляду.  
Приміщення оснащено системою автоматичної пожежної сигналізації 
відповідно до вимог ДБН В.2.5-56-2014. Також в приміщенні знаходиться три 
переносних вуглекислотних вогнегасника ВВК-5, які використовуються для 
гасіння легкозаймистих та горючих рідин, твердих горючих речовин та 
матеріалів, електропроводок, що знаходяться під напругою до 1000 В, що 
відповідає Правилам експлуатації вогнегасників. 
Для забезпечення проведення швидкої та організованої евакуації 
персоналу на випадок виникнення пожежі в будівлі передбачений план 
евакуації,  розміщений на стіні з вільним доступом до нього. 
На працездатність дослідника окрім зовнішніх факторів виробничого 
середовища також впливає безпосередня організація робочого місця. Отже, 
робочий стіл має такі розміри: висота – 710 мм, ширина – 510 мм, довжина – 
1100 мм. Відповідно стілець має такі розміри: висота – 400 мм, ширина – 400 
мм. Відстань від екрана до ока складає 700 мм при розмірі екрану по діагоналі 
22", а клавіатура розміщена на поверхні столу на відстані 200 мм від 
працюючого. Конструкція   робочого   місця   робітника  забезпечує  
підтримання оптимальної  робочої  пози працівника. 
Отже, організація робочого місця повністю задовольняє ергономічним 
вимогам відповідно до ДСТУ 8604:2015. 
Важливим фактором для підвищення продуктивності праці та запобіганню 
виснаження організму являється правильна організація її режиму. Отже при 
організації праці, яка пов’язана з роботою за комп’ютером та іншими 
приладами, для збереження здоров’я працюючого, запобігання виникненню 
професійних захворювань та підтримки працездатності на належному рівні 
повинні бути передбаченні перерви для відпочинку. 
Після проведення детального аналізу приміщення та безпосередньо 
робочого місця можна зробити висновок, що всі фактори робочого середовища, 
окрім температури приміщення в холодний період року, відповідають своїм 
нормативним значенням. Тому необхідно провести модернізацію системи 
централізованого водяного опалення, щоб забезпечити відповідність значення 
температури повітря в холодний період року нормативному значенням цього 
параметра, а саме на рівні 20-22 °С. 
 
 
4.2 Модернізація системи водяного опалення відділу 
 
Системи опалення являють собою комплекс елементів, необхідних для 
нагрівання приміщень в холодний період року. До основних елементів системи 
опалення належать: джерела тепла, теплопроводи та нагрівальні прилади. 
Теплоносіями можуть бути нагріта вода, пара чи повітря. Системи опалення 
повинні компенсувати втрати тепла через огороджуючі зовнішні будівельні 
конструкції та підігрівати холодне повітря, яке надходить ззовні через вікна, 
двері, ворота та ін. Для підприємств та організацій проектується, як правило, 
центральна водяна система опалення низького тиску або система повітряного 
опалення. При проектуванні системи опалення необхідно визначити категорію 
вибухопожежної небезпеки виробництва; внутрішню температуру повітря в 
приміщенні, залежно від категорії роботи (легка, середньої важкості, важка); 
розрахункову зовнішню температуру повітря для даного кліматичного району; 
орієнтовні втрати тепла будинком; тепловиділення від людей, електродвигунів, 
нагрітих поверхонь котлів, сушильних установок, світильників, та іншого 
обладнання; необхідну систему опалення, вид теплоносія, тип опалювальних 
приладів; кількість тепла на опалення приміщень; поверхню нагрівальних 
приладів; кількість елементів секцій в одному нагрівальному приладі, загальну 
кількість секцій; годинні витрати води (повітря) на опалення; необхідну 
поверхню нагріву.  
Але основною метою системи опалення є створення комфортної 
температури у приміщенні, де перебуває та працює людина. Система опалення 
повинна підтримувати температуру повітря в приміщенні на рівні 20-22 °C . В 
залежності від того, який теплоносій використовується в опалювальній системі, 
вона може поділятися на декілька типів: водяна, парова, низького тиску, 
високого тиску. Водяна та парова системи опалення в залежності від тиску пари 
чи температури води можуть бути низького тиску (тиск пари до 70 кПа чи 
температура води до 100 °С), та високого тиску (тиск пари більше 70 кПа чи 
температура води понад 100 °С). 
Найчастіше використовується водяне опалення низького тиску, яке має 
ряд переваг в порівнянні з паровим опаленням та відповідає основним 
санітарно-гігієнічним вимогам. До основних переваг цієї системи можна 
віднести рівномірне нагрівання приміщення; можливість централізованого 
регулювання температури води; підтримання відносної вологості повітря в 
приміщенні  на відповідному рівні; виключення можливості опіків від 
нагрівальних приладів; високий рівень пожежної безпеки. Основний недолік 
системи водяного опалення – можливість її замерзання при аварійному 
відключенні в зимовий період, а також повільне нагрівання великих приміщень 
після тривалої перерви в опаленні.  
Парове опалення має низку санітарно-гігієнічних недоліків, тому 
застосовується рідко. Зокрема, внаслідок перегрівання повітря знижується його 
відносна вологість, а органічний пил, що осідає на нагрівальних приладах, 
підгоряє і створює запах гару. Окрім того, існує небезпека пожеж та опіків. 
Враховуючи вищевказані недоліки не допускається застосування парового 
опалення в пожежонебезпечних приміщеннях та приміщеннях зі значним 
виділенням пилу. 
До опалювальних приладів висувають ряд вимог, за якими їх кла-
сифікують, аналізують ступінь досконалості та проводять порівняння. 
Санітарно-гігієнічні вимоги. Опалювальні прилади повинні мати за 
можливістю більш низьку температуру корпуса для забезпечення непригорання 
пилу та неможливості опіків при доторканні до корпусу, зменшення 
нейтралізації нестійких іонів з негативним зарядом, зниження швидкості руху 
повітря і відповідно швидкості руху пиловидних частинок; мати найменшу 
площу для зменшення відкладання пилу; мати вільний доступ для видалення 
пилу з корпуса та з огороджуючих конструкцій за ним. 
Економічні. Опалювальні прилади повинні мати найменші приведені 
витрати на виготовлення, монтаж та експлуатацію. Найменшу витрату металу, 
найменшу питому вартість, віднесену до 1 м2 площі поверхні або до 1 кВт 
теплового потоку. 
Архітектурно-будівельні. Зовнішній вигляд (форма, розміри, фарбування) 
опалювальних приладів повинен відповідати інтер'єру приміщення, а їх об'єм, 
віднесений до одиниці теплового потоку, бути якнайменшим. 
Виробничо-монтажні. Повинна забезпечуватись максимальна механізація 
робіт при виробництві та монтажу опалювальних приладів. Опалювальні 
прилади повинні мати достатню механічну міцність. 
Експлуатаційні. Опалювальні прилади повинні пропорційно реагувати на 
автоматичну керованість їх тепловіддачею; забезпечувати пріоритет теплоти у 
приміщенні; бути довговічними, температуростійкими. 
Теплотехнічні. Опалювальні прилади повинні забезпечити найбільшу 
щільність питомого теплового потоку, віднесену на одиницю площі. 
Побутові. Опалювальні прилади можуть мати додаткове обладнання для 
задоволення потреб споживача – дзеркала, вішалки, зволожувачі повітря тощо. 
За переважним видом тепловіддачі всі опалювальні прилади розділяють 
на три групи, а саме: радіаційні, що передають випромінюванням не менше 50% 
сумарного теплового потоку (до них відносять сталеві бетонні опалювальні 
панелі та випромінювачі); конвентивно-радіаційні, що передають конвекцією 
від 50% до 75%  сумарного теплового потоку (в цю групу включають секційні та 
панельні радіатори, підлогові та стінові опалювальні панелі, гладкотрубні 
опалювальні прилади); конвективні, передають конвекцією понад 75% 
загального теплового потоку (до цієї групи відносять  конвектори та ребристі 
труби). 
За матеріалом опалювальні прилади розділяють на металеві (чавунні, 
сталеві, алюмінієві, мідні тощо), біметалеві (сталево-алюмінієві, мідно-
алюмінієві), неметалеві (керамічні, пластмасово-бетонні) та комбіновані 
(металево-керамічні, металево-бетонні тощо). 
Чавунні секційні батареї – теплові прилади, які відносяться до застарілих 
систем опалення. Мають малу поверхню віддачі тепла й низьку 
теплопровідність металу, роблять нагрівання в основному випромінюванням і 
близько 20% тепла передають повітрю конвекцією. Рух теплоносія в системі 
відбувається гравітаційним шляхом, що сильно сповільнює передачу тепла. Для 
збільшення конвекційної віддачі тепла чавунними радіаторами, їх 
рекомендують розміщати тільки під вікнами, щоб холодне повітря, що 
опускається з поверхні скла, примусово проходило через радіатор.  
Панельні сталеві батареї являють собою дві сталеві пластини, між якими 
циркулює теплоносій. Пластини мають товщину 1,2 мм, з'єднані між собою 
точковим електрозварюванням, містять виштампувані канали, по яких протікає 
вода. Панель розмірами за звичайний чавунний радіатор має товщину 30 мм, але 
вдвічі меншу тепловіддачу. Для підвищення теплової потужності ставлять 
паралельно дві, навіть три панелі. При двох або трьох панелях радіатор передає 
тепло випромінюванням тільки зовнішніми площинами, тому до всіх внутрішніх 
площин радіатор приварюють ряди П-подібних пластин, які значно збільшують 
поверхню тепловіддачі, тобто внутрішні площини працюють як конвектор. 
Основний недолік такий же, як й в алюмінієвих радіаторах – прискорена 
корозія.  
Алюмінієві секційні батареї, більш досконала конструкція, у якій 
застосований матеріал з великим коефіцієнтом теплопередачі у вигляді 
алюмінієвого сплаву. Секції алюмінієвого радіатора мають глибину всього 80-
110 мм. Алюмінієві секційні радіатори більше половини тепла віддають 
випромінюванням, іншу половину – конвекцією. Деякі типи алюмінієвих 
радіаторів можуть  мати сильно розвинену поверхню у вигляді додаткових 
тонких ребер, розміщених усередині секції, при цьому зростає площа нагрівання 
однієї секції. Теплова потужність однієї секції декларується виготовлювачами 
до 180 Вт. Завдяки зменшеному обсягу води в секціях алюмінієві радіатори 
добре піддаються регулюванню за допомогою термозапірних клапанів і 
термочуттєвих головок. Теплорегулюючі елементи, якими необхідно постачати 
всі алюмінієві радіатори, дозволяють обмежувати протік гарячої води через 
радіатор при досягненні заданої температури в кімнаті. Основний і самий 
великий недолік – схильність до електрохімічної корозії. Біметалічні секційні 
радіатори,  найбільш досконала конструкція, що дозволяє використати всі 
переваги алюмінієвих радіаторів, уникаючи їхніх недоліків. Біметалічний 
радіатор складається з міцного й стійкого до електрохімічної корозії сталевого 
трубопровідного каркаса, зовнішні ребра виконані з високоякісного 
алюмінієвого сплаву методом лиття під високим тиском. При цьому утвориться 
монолітне з'єднання, що виключає можливість контакту алюмінію з водою, а 
значить і корозії. Ці радіатори не вимагають спеціальної підготовки води 
(очищення, зниження кислотності, лужності), на відміну від алюмінієвих 
радіаторів. Радіатори мають корпус без гострих кутів, температура на поверхні в 
2 рази нижче, ніж усередині, що дозволяє навіть по дуже строгих нормах 
застосовувати їх у дитячих і лікувальних установах. При роботі радіатор 
створює ефект повітряного теплового вентилятора й дуже добре перемішує 
шари повітря в приміщенні. 
Модернізація централізованого водяного опалення у виробничому 
приміщенні полягає в заміні гладкотрубних опалювальних приладів на сталеві 
панельні радіатори, для забезпечення достатнього рівня температури (t = 21 °C.) 
на робочому місці. Дані панельні радіатори призначені для опалення 
виробничих та житлових приміщень (з робочим тиском у системі до 12 атм). 
Основними перевагами цих радіаторів є надійність, антикорозійна обробка 
зовнішніх та внутрішніх поверхонь методом фосфатування (тому вони не 
потребують спеціальної підготовки води), невисока ціна. 
В приміщенні застосовується схема периметральної двотрубної тупикової 
вітки системи опалення з рухом теплоносія в середині системи за схемою 
«зверху-донизу». Кількість тепла, що втрачається будівельною конструкцією QK 
залежить від різниці температур, величини їх значень, площі та виду матеріалу 
та може бути підрахована для плоских поверхонь за формулою: 
 
Q = k  F (t
                              K k вн − tзовн ) , ккал/год                      (4.1) 
 
де: k – коефіцієнт теплопередачі конструкції огорожі (стін), k = 0,97ккал / год ; Fк 
– поверхня огороджувальної конструкції, Fк = 24 м2; 
tвн – розрахункова температура повітря в приміщенні, t = 22 °C;  
tзовн – розрахункова температура зовнішнього повітря (приймається за 
кліматичними даними для даного міста), t = -20 °C. 
 
QK = k  Fk (tвн − t зовн ) = 0,97  24  (22 − (−20)) = 978  ккал/год 
 
Відносні витрати води розраховуються за формулою: 
 
7,98  (t −10)
q = (ккал / год),  
Tприл L
                                                                    (4.2)
 
де: Δt – різниця температур між середньою температурою теплоносія в 
нагрівальному приладі та температурою в приміщенні, °С;  
ΔTприл – перепад температур теплоносія в нагрівальному приладі, °С;  
L – кількість води, що подається зверху донизу, L = 21,3кг / м2  год.  
Температурний перепад в даній системі складає 85 – 50 °C. 
85+ 50
7,98  (( − 22) −10)
7,98  (t −10)
q = = 2 = 0,39  м3/год 
Tприл  L (85− 50) 21,3
Значення е. к. м. можна розрахувати за формулою: 
 
q = 7,98  (t −10) 
                            е.к.м. ккал/год                          (4.3) 
 
де: α = 0,89 – поправочний коефіцієнт, що залежить від відносної витрати води, 
який згідно довідникової літератури дорівнює  
 
85+ 50
qе.к.м. = 7,98  (t −10)  = 7,98  (( − 22) −10) 0,89 = 252  ккал/год 
2
 
Необхідну поверхню приладів е. к. м. Fпр можна визначити за формулою: 
Qк 978
F 2
прил. = = = 3,88м .  
                                    qе.к.м. 252                                 (4.4)
 
Необхідна кількість секцій радіаторів визначається за формулою: 
 
Fприл
n = ,  
f
                                                 е.к.м.                                                 (4.5)
 
де f 2
е.к.м. = 0,8 м  – площа поверхні однієї секції радіатора. 
 
Fприл 3,88
n = = = 3,1 4.  
fе.к.м. 0,8
 
Отже, в даному приміщенні необхідно встановити 4 сталевих панельних 
радіатори Termopan TYPE33 H600 (рис.4.1).  
Перевагами сталевих радіаторів є висока тепловіддача, сучасний 
привабливий дизайн, невелика вага, великий вибір розмірів, а також можливість 
вибору потужності. Особливою гідністю сталевих батарей можна назвати 
доступну вартість і тривалий термін експлуатації (25 років). Серед недоліків цих 
приладів варто відзначити: схильність корозії і непереносимість гідравлічних 
ударів. 
За формою конструкції батареї зі сталі випускають двох видів: сталеві 
панельні радіатори і трубчасті радіатори. Сталеві радіатори по-різному 
підключаються до розводці труб. Залежно від типу підключення розрізняють 
три типи сталевих радіаторів: 
1. Радіатори з нижнім підключенням; 
2. Радіатори з боковим підключенням; 
3. Універсальні радіатори. 
В Україні на даний момент виробляється більше 10 марок панельних 
радіаторів. Більшість з них має у супровідних документах посилання на 
стандарт EN 442. Даний стандарт пред'являє вимоги до панельних та інших 
видів радіаторів, в ньому описуються методи вимірювання теплової потужності 
радіаторів, але відсутній контроль якості їх виготовлення. 
Тільки знак якості RAL (німецький інститут забезпечення якості Deutsches 
Institut fur Gutesicherung und Kennzeichnung eV) присвоює товару відповідний 
критерій загальної якості. Критерії якості, розроблені для сталевих радіаторів, 
повністю враховують такі стандарти: EN 442-1, 442-2, 442-3, EN ISO 2409, EN 
ISO 9002, EN 10131, EN 10204, ISO 2768-1 і DIN 55900-1, 55900-2. 
Знак якості RAL для сталевих радіаторів означає, що: 
- при виготовленні використовувався матеріал (сталевий лист), що 
відповідає стандарту EN 442-1, а його якість підтверджено свідоцтвом 
виробника, що означає надійність, безпеку і тривалий термін служби виробу; 
- при виробництві виробів належним чином перевіряється справність 
зварювальних ліній, а сам процес зварювання повністю відповідає технології 
виробництва; 
- фарбування виконане відповідно до стандарту DIN 55900-1,2, що 
забезпечує оптимальний захист виробу, привабливий зовнішній вигляд на 
тривалий термін; 
- здійснюється контроль на всіх стадіях виробничого процесу; 
- опалювальні прилади піддаються випробуванням під надлишковим 
тиском, що в 1,3 рази перевищує робочий тиск, заявлений виробником. 
Для панельних сталевих радіаторів існує близько 1000 типорозмірів. 
Більшість виробів випускається з однаковою висотою 300 - 900 мм, довжина 
може бути в широкому діапазоні від 300 мм до 3 м. Сталеві панельні радіатори 
мають невелику теплову інерцію. Використовуючи ці прилади в системі 
опалення, легко регулювати температуру в приміщенні. Їх робочий тиск 
знаходиться в межах 10 атм. Завдяки величезному модельному ряду панельних 
радіаторів неважко підібрати прилад з оптимальними параметрами для будь-
якого приміщення. У провідних виробників опалювальних приладів асортимент 
продукції складається з сотень моделей сталевих батарей різної висоти, 
глибини, ширини. 
Зовнішній вигляд панельного радіатора являє собою прямокутну панель, 
як правило, білого кольору. Конструкція приладу складається з двох зварених 
між собою листів сталі (товщиною - 1,25 мм), що мають вертикальні канали, по 
яких циркулює теплоносій. Щоб збільшити поверхню, що нагрівається, і, 
відповідно, підвищити тепловіддачу, до панелей з тильного боку приварюються 
П-подібні сталеві ребра. 
Недоліками сталевих панельних батарей є схильність корозії, чутливість 
до гідравлічних ударів, неможливість їх застосування при високому тиску - ці 
всі властивості необхідно враховувати, якщо радіатори встановлювати в системі 
центрального опалення. У центральних опалених системах використовуються 
теплоносії сумнівної якості, що істотно впливає на стан сталевих батарей, не 
рідкість там і сильні скачки тиску.  
Перевагою панельних батарей, в порівнянні з секційними, можна вважати 
цілісність їх конструкції, а також відсутність ніпельних сполук з прокладками. 
Ця особливість конструкції панельних радіаторів забезпечує можливість їх 
виготовлення різної довжини і ширини. 
 
Рисунок 4.1 - Сталевий панельний радіатор Termopan TYPE33 H600 
 
 
 
Основні характеристики радіатора Termopan TYPE33 H600: 
- висота – 600 мм; 
- ширина – 400 мм; 
- глибина – 160 мм; 
- тип – 33; 
- теплова потужність - 1174,8 Вт; 
- робочий тиск – 10 бар; 
- випробувальний тиск – 13 бар; 
- тип підключення - нижнє  
  підключення; 
- об'єм води в радіаторі - 3,8 л; 
- вага - 18,6 кг; 
- товщина стінки - 1,25 мм. 
 
Висновки 
 
На сучасних підприємствах організація складського господарства на 
високому рівні є одним з першочергових завдань. Зберігання різної продукції на 
автоматизованих складах допоможе економно використовувати площу 
приміщення та мінімізує помилки в обліку, економити час та оптимізувати 
кількість задіяного персоналу. В даній роботі розроблено автоматизований склад 
стелажного типу, який призначено для зберігання в спеціальних комірках 
одиничних міні-вантажів. На практиці такий склад знайде застосування в аптеках, 
бібліотеках, поштових відділеннях тощо. Автоматизована система складається з 
механічної конструкції, що забезпечує переміщення вантажів по трьох різних осях 
руху, трьох крокових двигунів та драйверів для них, плати Arduino UNO, блоку 
живлення та аварійної кнопки. Склад працює в автоматичному режимі. Введення 
інформації про об'єкти зберігання здійснюється вручну за допомогою клавіатури, 
а в подальшому планується зробити шляхом сканування штрих-коду. Система 
оснащена кнопкою аварійної зупинки, що дозволяє миттєво блокувати 
механічний рух. Робот-штабелер встановлює або вилучає предмет з будь-якої 
комірки вертикального стелажу. Конструкція рухається по трьох координатах і 
керується мікроконтролером Arduino.  
При розробці автоматизованої системи велика увага приділялася вибору 
апаратної платформи. Було проведено порівняльний аналіз існуючих 
мікропроцесорних платформ. Вибір припав на мікропроцесорну платформу 
Arduino UNO. Основними критеріями вибору були: висока функціональність, 
низька вартість, просте і зрозуміле середовище програмування. Було здійснено 
вибір апаратних засобів (типи крокових двигунів і драйверів до них, тип 
клавіатури тощо) і розглянуто особливості з’єднання один з іншим. Також значну 
увагу приділено написанню скетчів (програм мікроконтролера) для взаємодії 
блоків між собою і функціонуванню автоматизованої системи в цілому. 
Арк. 
ТК65.020028.248 ПЗ 
5 
Змін. Арк. № докум. Підпис Дата 
 
Список використаної літератури 
 
1. Автоматизированные транспортно-складские системы ГПС. – Режим доступу: 
https://studfile.net/preview/3580564/page:29/ 
2. Автоматизированные складские системы. – Режим доступу: 
https://studme.org/133827/tehnika/avtomatizirovannye_skladskie_sistemy 
3. Автоматизированный склад для хранения готовой продукции. – Режим доступу: 
https://www.metiz.com.tw/upakov_housing.htm 
4. Автоматизированные склады стелажного типа. – Режим доступу: 
http://tvagonm.com.ua/about/articles/avtomatizirovannye_sklady/ 
5. Козырев Ю.Г. Применение промышленных роботов : учебное пособие / Ю.Г. 
Козырев. — М. : КНОРУС, 2016. — 494 с. 
6. Манипулятор для склада – Режим доступу: http://arduino-
tv.ru/catalog/id/manipulyator-dlya-sklada 
7. Arduino Automatic Warehouse – Режим доступу: 
https://www.youtube.com/watch?list=RDWX57MOyQo7I&v=WX57MOyQo7I 
8. Casella Matteo, Daidone Luca, Mastropasqua Nicola, Zoja Filippo 0RELAZIONE 
PROGETTO A2W, ITT Carlo Zuccante 4 giugno 2017, edizione 1.– Режим 
доступу: https://drive.google.com/file/d/0B23elXOMmqN1UkpuRmMzQUd4TEli 
YmphbHlGMEk3X0RERTQ0/view?pageId=103328494515971275365 
9. Автоматический склад (тестирование). – Режим доступу: 
https://www.youtube.com/watch?v=p8L3sunFGr0 
10. ROBO TX Автоматические роботы. – Режим доступу:  http://pacpac.ru/ft/ab/pdf-
bak/ROBO%20TX%20Automation%20Robots%20RUS%20511933.pdf 
11. Рабочая тетрадь для ROBO TX Автоматические роботы. – Режим доступу: 
http://pacpac.ru/ft/ab/pdf-bak/ROBO%20TX%20Automation%20Robots%20RUS% 
20511933.pdf 
12. Автоматизированный склад на arduino – Режим доступу: 
https://www.youtube.com/watch?v=DsoShhZ0zIs 
13. PharmBot - верное решение для оптимизации финансовых показателей 
аптечного бизнеса. – Режим доступу: http://pharmbot.biz/o-produkte 
 
Арк. 
ТК65.020028.248 ПЗ 
Змін.    6 
Арк. № докум. Підпис Дата 
 
14. Raspberry Pi. – Режим доступу: https://ru.wikipedia.org/wiki/Raspberry_Pi 
15. Щеточно-коллекторный узел. – Режим доступу: http://www.ngpedia.ru/ 
id536040p2.html 
16. Бесколлекторные двигатели постоянного тока. – Режим доступу: 
http://www.avislab.com/blog/brushless01/ 
17. Как работают шаговые двигатели. – Режим доступу: http://robotosha.ru/ 
electronics/how-stepper-motors-work.html 
18. Сервоприводы. – Режим доступу: http://wiki.amperka.ru/робототехника: 
сервоприводы 
19. Обзор драйвера шагового двигателя DRV8825 – Режим доступу: 
https://robotchip.ru/obzor-drayvera-shagovogo-dvigatelya-drv8825/ 
20. Контроллер шагового двигателя. – Режим доступу: 
http://kazus.ru/shemes/showpage/0/843/1.html 
21. Драйвер шагового двигателя TB6560 и Arduino. – Режим доступу: http://arduino-
diy.com/arduino-drayver-shagovogo-dvigatelya-TB6560 
22. Motor Shield. – Режим доступу: http://wiki.amperka.ru/%D0%BF%D1%80%D 
0%BE%D0%B4%D1%83%D0%BA%D1%82%D1%8B:arduino-motor-shield 
23. Ардуино и клавиатуры (полный гайд). – Режим доступу: 
https://habr.com/ru/post/460409/ 
24. Современные блоки питания ATX и их характеристики. – Режим доступу: 
https://ru.gecid.com/power/sovremennyee_bloki_pitaniya_atx_i_ih_harakteristiki/  
25. EEPROM Library.  – Режим доступу: http://arduino.net.ua/file_archive/ 
Arduino%20Library/Arduino%20EEPROM%20Library/ 
26. Способы чтения и управления портами ввода-вывода Arduino – Режим доступу: 
http://electrik.info/microcontroller/1503-sposoby-chteniya-i-upravleniya-portami-
vvoda-vyvoda-arduino.html 
27. Arduino. – Режим доступу: https://all-arduino.ru/ 
28. Обзор плат Arduino – Режим доступу: http://geekmatic.in.ua/the_different_ 
arduinos 
29. Что такое Arduino? – Режим доступу: http://arduino-diy.com/arduino-chto-eto-
takoye 
Арк. 
ТК65.020028.248 ПЗ 
Змін. 7 
Арк. № докум. Підпис Дата 
 
Додаток А 
ПРОГРАМА АРДУІНО 
Основна програма 
//*******************************БІБЛІОТЕКИ ********************************** 
#include <EEPROM.h> // бібліотека для управління EEPROM 
// ********************************Ініціалізація*********************************** 
//// визначаються різні порти Arduino 
#define cloch 7 
#define cw 2 
#define enx 4 
#define eny 3 
#define enz 5 
#define st 6 
#define dir A2 
#define ascii 0 
#define finecorsaxSX 8 
#define finecorsaxDX 9 
#define finecorsazIN 10 
#define finecorsazAV 11 
#define finecorsaySOT 12 
#define finecorsaySOP 13 
int vely = 650; // затримка, яка використовується для генерування часу для драйверів, тому 
розрізняється швидкість 
int velx = 800; // затримка, яка використовується для генерування часу для драйверів, тому 
розрізняється швидкість 
bool finecorsa = LOW; // змінна для перевірки стану кінцевих вимикачів 
int col, rig; // змінні для зберігання номерів стовпців та рядків, вибраних користувачем 
int state_compartments [3] [3]; // матриця для запам'ятовування стану комірок 
int compartments_eeprom [3] [3]; // матриця для остаточного зберігання стану комірок через 
EEPROM 
int scomparto; // змінна, що вказує, чи вибрана комірка повна чи порожня 
 
 
// ***************************** НАЛАШТУВАННЯ ****************************** 
void setup() 
{ 
pinMode (6, OUTPUT); // драйвер DVR 
pinMode (cloch, OUTPUT); // драйвер  
pinMode (cw, OUTPUT); // cw / ccw драйвер 
pinMode (A2, OUTPUT); // cw/ccw драйвер DVR 
pinMode (enx, OUTPUT); // увімкнути двигун осі x 
pinMode (eny, OUTPUT); // увімкнути двигун осі y 
pinMode (enz, OUTPUT); // увімкнути двигун осі z  
for (int i = 8; i <= 13; i ++) { 
pinMode (i, INPUT); // встановлюються всі порти як вхідні  
} 
Serial.begin (9600); // Починається серійний зв’язок Arduino 
digitalWrite (cw, LOW); // обертання 
digitalWrite (dir, HIGH); // обертання DVR 
digitalWrite (enx, LOW); // двигун зупинений по осі х 
digitalWrite (eny, LOW); // двигун зупинений по осі у 
Арк. 
ТК65.020028.248 ПЗ 
8 
Змін. Арк. № докум. Підпис Дата 
 
digitalWrite (enz, HIGH); // двигун зупинений по осі z 
zeroz(); // перемістити каретку в нульове положення вздовж осі z 
zeroy(); // перемістити каретку в нульове положення вздовж осі y 
zerox(); // перемістити каретку в нульове положення вздовж осі x 
eeprom(); // створіть масив, що містить числа від 1 до 9, що представляють комірки пам'яті 
EEPROM 
for (int j = 1; j <= 3; j ++) // поточний стан комірок, збережених у EEPROM, зберігається в 
матриці 
{ 
for (int i = 1; i <= 3; i ++) 
{ 
compartments_state [j] [i] = EEPROM.read (compartments_eeprom [j] [i]); 
} 
} 
} 
// ***************************************ЦИКЛ*********************************** 
void loop() 
{ 
scomparto = 0; 
for (int j = 1; j <= 3; j ++) // друкує стан комірок на послідовному моніторі 
{ 
for (int i = 1; i <= 3; i ++) 
{ 
Serial.print (stato_scomparti [I] [J]); 
Serial.print (""); 
} 
Serial.println ( ""); 
} 
while (Serial.available () == 0) {}; // починає чекати прийому даних на послідовний порт 
if (Serial.available ()! = 0) // отримав дані 
{ 
rig = (Serial.read () - ascii); // зберігається номер рядка у змінній RIG 
while (Serial.available () == 0) {}; // чекає отримання номера стовпця 
//Serial.println(opz); 
if (Serial.available ()! = 0) // отримав дані 
{ 
col = (Serial.read () - ascii); // зберігається номер стовпця у змінній COL 
} 
if (compartment_status [col] [rig] == 0) // якщо в матриці стану позиція, введена користувачем, 
порожня, 
{ 
compartment_state [col] [rig]= 1; // встановити його на заповнена 
scomparto = 1; // змінна стану, яка використовується у функції posiz () 
EEPROM.write (compartments_eeprom [col] [rig], 1); // збережіть зміну на EEPROM 
} 
else {compartment_state [col] [rig] = 0; // якщо введена користувачем позиція заповнена в матриці 
стану, 
scomparto = 0; // встановити його на заповнена 
EEPROM.write (compartments_eeprom [col] [rig], 0);} // збережіть зміни на EEPROM 
posiz (col, rig); // викликати функцію posiz(), ввівши номери стовпців та рядків, введені 
користувачем 
} 
Арк. 
ТК65.020028.248 ПЗ 
9 
Змін. Арк. № докум. Підпис Дата 
 
} 
Функція "Eeprom" 
void eeprom () {// через два об'єднані цикли вони зберігаються 
// у матриці цифри від 0 до 9, що представляють комірки пам'яті 
// EEPROM, на якій потрібно зберігати стан комірок 
int cont = 1; 
for (int j = 1; j <= 3; j ++) 
{ 
for (int i = 1; i <= 3; i ++) 
{ 
compartments_eeprom [j] [i] = cont; 
cont ++; 
} 
} 
} 
Функція " asse_x" 
void asse_x (int colonna) 
{ 
int passy = 675*colonna; // 675 представляє кроки до досягнення першого стовпця 
// тому множиться на стовпець, який потрібно досягти 
digitalWrite (CW, HIGH); // двигун повинен повертатися таким чином, щоб каретка рухалась 
праворуч 
digitalWrite (Enx, HIGH); // запускається двигун 
for (int i = 0; i <= passy; i ++) // стільки тактових циклів виконується, скільки є кроків, які 
потрібно виконати 
{ 
ск (Velx); 
} 
digitalWrite (enx, LOW); // відключити двигун 
} 
Функція "asse_y" 
void asse_y (int riga) 
{ 
int passy = 3050 * (3 riga); // 3050 представляє кроки для досягнення рядка 2 (рядок посередині 
складу) 
// оскільки рядок 1 є найвищим, якщо користувач вводить 1, кроки повинні бути 
//3050*2. Отже віднімаємо число, введене до 3. 
digitalWrite (CW, LOW); // двигун повинен повертатися таким чином, щоб каретка рухалася 
праворуч 
digitalWrite (eny, HIGH); // запускається двигун 
для (int i = 0; i <= passy; i ++) // стільки тактових циклів виконується, скільки є кроків, які 
потрібно виконати 
{ 
ск (Vely); 
} 
digitalWrite (eny, LOW); // відключити двигун 
} 
Функція DVR 
void dvr (void) // один тактовий імпульс здійснюється шляхом підвищення рівня і потім 
// низький рівень за замовчуванням як джерело синхронізації 
{ 
digitalWrite (st, HIGH); 
Арк. 
ТК65.020028.248 ПЗ 
10 
Змін. Арк. № докум. Підпис Дата 
 
delayMicroseconds (1100); // затримка представляє швидкість, оскільки вона розмежовує 
тактовий період 
// і тому частота. 
digitalWrite (st, LOW); 
delayMicroseconds (1100); 
} 
Функція “clock” 
void ck (int del) {// єдиний тактовий імпульс робиться шляхом підведення високих і потім 
// низьких сигналів портів за замовчуванням як джерело синхронізації 
digitalWrite (cloch, HIGH); 
delayMicroseconds (DEL); // затримка представляє швидкість, оскільки вона розмежовує 
тактовий період 
// і тому частота. 
digitalWrite (cloch, LOW); 
delayMicroseconds (DEL); 
} 
Функція “inserisci” 
void inserisci() 
{ 
//*********************ПЕРЕМІЩЕННЯ ВЗДОВЖ ОСІ У ВГОРУ******************** 
int passy = 410; // кількість кроків, необхідних для його виконання 
digitalWrite (CW, LOW); // зміщення близько 1,5см 
digitalWrite (eny, HIGH); // включити двигун 
for (int i = 0; i <= passy; i ++) // функція синхронізації виконує число 
{// разів, що дорівнює необхідним крокам, будуть тактові імпульси  
ск (Vely); // тому дорівнює кількості кроків 
} 
digitalWrite (eny, LOW); // відключити двигун 
//********************ПЕРЕМІЩЕННЯ ПО ОСІ Z ВПЕРЕД************************ 
digitalWrite (enz, LOW); // процедура аналогічна виконуваній 
digitalWrite (dir, LOW); // для функції zeroz (), але з іншим напрямком обертання двигуна 
finecorsa = digitalRead(finecorsazAV); 
while(finecorsa != HIGH) 
{ 
finecorsa = digitalRead(finecorsazAV); 
DVR(); 
} 
digitalWrite (enz, HIGH); 
// ****************** ПЕРЕМІЩЕННЯ ВЗДОВЖ ОСІ У ВНИЗ*************** ******* 
passy = 410; // процедура, аналогічна тому, що спостерігається в першому пункті, 
digitalWrite (CW, HIGH); // але з різним напрямком обертання двигуна 
digitalWrite (eny, HIGH); 
for (int i = 0; i <= passy; i ++) 
{ 
ск (Vely); 
} 
digitalWrite (eny, LOW); 
// ***************** ПЕРЕМІЩЕННЯ ПО ОСІ Z НАЗАД **************************** 
digitalWrite (enz, LOW); // процедура аналогічна виконуваній 
digitalWrite (dir, HIGH); // для функції zeroz () 
finecorsa = digitalRead(finecorsazIN); 
while(finecorsa != HIGH) 
Арк. 
ТК65.020028.248 ПЗ 
11 
Змін. Арк. № докум. Підпис Дата 
 
{ 
finecorsa = digitalRead(finecorsazIN); 
DVR(); 
} 
digitalWrite (enz, HIGH); 
} 
Функція “posiz”ії 
void posiz (int colonna, int riga) 
{ 
if(scomparto == 1){// якщо статус обраної комірки "ВІЛЬНА", вантаж повинен бути зданий на 
зберігання 
ritira(); // вивести вантаж з нульового положення 
asse_x(colonna); // розміщується у вибраному стовпчику 
asse_y(riga); // розміщується у вибраному рядку 
inserisci(); // покласти вантаж в комірку 
} 
else {// якщо статус обраної комірки "ЗАПОВНЕНА", вантаж повинен бути вилучений 
asse_x (colonna); // розміщується у вибраному стовпчику 
asse_y (riga); // розміщується у вибраному рядку 
ritira(); // вилучити вантаж з вибраної комірки 
zeroy (); // перемістити маніпулятор у нульове положення вздовж осі Y 
Zerox (); // перемістити маніпулятор в нульове положення вздовж осі X 
inserisci(); // вставити вантаж у нульове положення 
} 
ZEROZ (); // перемістити каретку в нульове положення вздовж осі z 
zeroy (); // перемістити каретку у нульове положення вздовж осі Y 
Zerox (); // перемістити каретку в нульове положення вздовж осі X 
} 
Функція “ritira” 
void ritira() 
{ 
Функція "Zerox" 
void zerox(void) 
{ 
digitalWrite (cw, LOW); // напрямок обертання двигуна такий, щоб каретка йшла ліворуч 
digitalWrite (enx, HIGH); // включити двигун 
finecorsa = digitalRead(finecorsaxSX);  // зчитувати стан кінцевого вимикача 
while(finecorsa != HIGH) // доки кінцевий вимикач не натиснений, двигун продовжує роботу 
{ 
finecorsa = digitalRead(finecorsaxSX); 
ск (Velx); // функція для синхронізації драйвера 
} 
digitalWrite (cw, HIGH); // при натисканні кінцевого вимикача напрямок обертання змінюється 
// можливий подальший рух  
digitalWrite (enx, LOW); // відключити двигун 
} 
Функція “zeroy” 
void zeroy(void) 
{ 
digitalWrite (cw, HIGH); // напрямок обертання двигуна такий, щоб каретка спускалася вниз 
digitalWrite (eny, HIGH); // включити двигун 
finecorsa = digitalRead(finecorsaySOT); // зчитувати стан кінцевого вимикача 
Арк. 
ТК65.020028.248 ПЗ 
12 
Змін. Арк. № докум. Підпис Дата 
 
while(finecorsa != HIGH)  // доки кінцевий вимикач не натиснений, двигун продовжує роботу 
{ 
finecorsa = digitalRead(finecorsaySOT); 
ск (Vely); // функція для синхронізації драйвера 
} 
digitalWrite (cw, HIGH); // при натисканні кінцевого вимикача напрямок обертання змінюється 
// можливий подальший рух  
digitalWrite (eny, LOW); // відключити двигун 
} 
Функція “zeroz” 
void zeroz(void) 
{ 
digitalWrite (cw, HIGH); // напрямок обертання двигуна такий, щоб каретка рухалася назад 
digitalWrite (enz, LOW); // включити двигун 
finecorsa = digitalRead(finecorsazIN); // зчитувати стан кінцевого вимикача 
while(finecorsa != HIGH) // доки кінцевий вимикач не натиснений, двигун продовжує працювати 
{ 
finecorsa = digitalRead(finecorsazIN); 
DVR(); // функція для синхронізації драйвера DVR 
} 
digitalWrite (enz, HIGH); // відключити двигун (драйвер DVR не активний) 
} 
 
Арк. 
ТК65.020028.248 ПЗ 
Змін. 13 
Арк. № докум. Підпис Дата