Отже, найпростіший вид програми для мікроконтролера – це послідовне виконання інструкцій (або операторів), як правило, в тілі нескінченного циклу

Цикл в програмі Flowcode перенастроюваний, він має у своїх властивостях налаштування, що перетворюють його на будь-який з загальновживаних видів циклу Наприклад, ми можемо використовувати рахунковий цикл, який виконується задану кількість разів:

Рис 3511 Налаштування елемента Цикл для виконання рахункового циклу

Зверніть увагу, що ми знімаємо галочку з циклу while, Що елементи Початок і Кінець для рахункового циклу вже не потрібні Якби ми поставили галочку поруч з різновидом циклу Loop until, То цикл виконувався б до тих пір, поки не було б виконано умову Для циклу for (Рахункового циклу) умова задається кількістю проходів блоку програми, укладеного в цикл

Просте послідовне виконання інструкцій всередині нескінченного циклу дозволяє нам створити досить корисний пристрій У найпростішому вигляді воно виглядає, вірніше програма, як зображено на малюнку 356 Підключивши до висновку А0 реле (краще через транзистор), його контактами ми можемо включати і вимикати ялинкову гірлянду Погодьтеся, нехай і просте, але пристрій

Проте вже використання кнопок, а тим більше датчиків, зажадає від нас розгалужув програму Раніше я наводив приклади різних датчиків Є «пожежні датчики», які розмикають свої контакти при виникненні пожежі Якщо такий датчик підключити до входу мікроконтролера, то програма буде постійно відслідковувати стан датчика А коли датчик спрацює, ми повинні хоча б включити сигнал Нам знадобиться розгалуження програми

Ми подбали про завданні початкового значення змінної fire Мінлива обслуговує всі висновки порту В, маючи на увазі, що включено вісім датчиків (чи вісім ланцюжків датчиків) Мікроконтролер має вбудовані підтягує резистори, а датчики включені між землею і входом мікроконтролера

Умова говорить про те, що якщо змінна fire НЕ дорівнює нулю, тобто, хоча б один з датчиків розімкнений, то пора подавати сигнал, встановивши висновок А0 в стан логічної одиниці

І, звичайно, програма працює в нескінченному циклі (і добре, якщо там і залишиться назавжди)

Ріс3512 Галуження програми по умові

Якщо пожежний датчик (правильніше, напевно, протипожежний) призначений для домашнього використання, то можна обійтися і без мікроконтролера Але якщо датчиків багато, якщо вони використовуються, скажімо, на підприємстві, то сигнали приходять в підрозділ охорони Можна зробити пульт, на якому будуть встановлені світлодіоди, які запалюються при спрацьовуванні датчика, і звуковий сигналізатор, який приверне увагу до пульта

Досить часто сигнали тривоги виникають з інших причин, це і несправність датчика, і обриви проводів, і несправності пультів Тому охорона повинна перевірити, чи дійсно виникла небезпека пожежі

Для таких складніших операцій зручніше використовувати мікроконтролер Так, додавши до сигналу на виводі А0 паузу (визначувану умовами перевірки), можна дати час на відключення тривоги, а якщо тривога не відміняється, то включити сирену чи інше оповіщення для співробітників, які закликають їх покинути пожароопасное приміщення

Рис 3513 Розширення можливостей пристрою Тепер програма галузиться вже кілька разів

Крім скасування пожежної тривоги можна подбати і ще про одне – іноді мережу 220 В може короткочасно відключатися Таке буває А пожежні датчики можуть спрацювати при такому короткочасному відключенні Це помилкове спрацьовування Щоб уникнути його, можна додати невеликий фрагмент:

Рис 3514 Частковий захисту від збоїв по харчуванню

Після першого сигналу від датчика ми очікуємо ще 5 секунд і повторно перевіряємо датчик За умови, що датчик відновлюється за 5 секунд після збою з харчування, ми уникнемо помилкового спрацьовування

Іноді численних розгалужень програми по умові (if .. then ..) можна уникнути, використовуючи елемент Switch (Перемикач) Зручно розглянути використання цього елемента на прикладі з прапорами, про який говорилося вище

Рис 3515 Використання програмного елемента Switch

У даному випадку визначається значення змінної flags і виконується операція, яка відповідає цьому значенню Ви можете перевірити роботу програми, додавши лінійку світлодіодів, підключених до порту А

Чи можна цю програму виконати без елемента Switch Можна

Рис 3516 Програма без елемента Switch

Можна перевірити, що працює вона так само, але, погодьтеся, використовувати перемикач зручніше

І в багатьох випадках зручніше використовувати мікроконтролер У наступному розділі ми розглянемо задачу, яка обратна до тих, які були в попередніх розділах Ми розглянемо, як в простого завдання обійтися без мікроконтролера

Джерело: Гололобов ВН, – Самовчитель гри на паяльнику (Про електроніці для школярів і не тільки), – Москва 2012