Professional Documents
Culture Documents
Структура програмного коду
Структура програмного коду
Задаємо цикл за виразом for (див. інформацію нижче) з константою 10. Після
виконання циклу він повинен обнулитися до початкового рівня.
Приклад:
Функція setup()
Приклад:
void setup()
{
pinMode (ledPin1 OUTPUT); // Виводиться сигнал управління на світлодіод 1
pinMode (ledPin1 OUTPUT); // Виводиться сигнал управління на світлодіод 2
pinMode (ledPin1 OUTPUT); // Виводиться сигнал управління на світлодіод 3
pinMode (ledPin1 OUTPUT); // Виводиться сигнал управління на світлодіод 4
}
Функція loop()
Функція loop()означає виконання програми, вона є основною частиною програми:
дозволяє виконувати взаємодію процесора із зовнішніми пристроями, проводити обробку
інформації тощо.
Приклад:
Індикація світлодіодами: Почергово з інтервалом 1000 мсек засвічуються додатковий, з
першого по четвертий, світлодіод, потім всі світлодіоди гаснуть і процес повторюється.
void loop()
{
digitalWrite(ledpin1, HIGH); // Виключити світлодіод 1
digitalWrite(ledpin2, HIGH); // Виключити світлодіод 2
digitalWrite(ledpin3, HIGH); // Виключити світлодіод 3
digitalWrite(ledpin4, HIGH); // Виключити світлодіод 4
digitalWrite(ledpin1, LOW); // Включити світлодіод 1
delay(1000); // Виконати паузу 1000 мсек
digitalWrite(ledpin1, LOW); // Включити світлодіод 2
delay(1000); // Виконати паузу 1000 мсек
digitalWrite(ledpin1, LOW); // Включити світлодіод 3
delay(1000); // Виконати паузу 1000 мсек
digitalWrite(ledpin1, LOW); // Включити світлодіод 4
delay(1000); // Виконати паузу 1000 мсек
}
Інші функції
Крім вище вказаних основних функцій, у програмі можуть використовуватися інші
функції, які вбудовуються в основну функцію void loop().
Така функція являє собою програмний блок, який виконує певну визначену задачу (певну
функцію). Функції використовуються у програмі для виконання задач, які повторюються.
Функції поділяються на два типи: int (така що повертає ціле (integer) значення) та функція
типу void , яка не повертає значення.
Фігурні дужки { }
Фігурні дужки визначають початок та кінець блоку вбудованої функції, блоку основної
функції for та if. Фігурні дужки повинні відкривати та закривати програмний блок.
Відсутність дужки унеможливить правильну компіляцію програми.
Крапка з комою ;
Крапка з комою повинна стояти в кінці виразу у програмному рядку, вона розділяє
елементи програми. Також вона використовується для розділення елементів циклу for .
Однорядковий коментар //
Однорядковий коментар є наступним після символу // і не повинен виходити за межі
програмного рядка. Такий коментар не читається компілятором.
Управління програмою
Для виконання етапів програми можуть використовуватися різні умови (рис. 1).
Вибір необхідної умови залежить від задч, які повинна виконувати програма. Оптимальний
вибір потрібної умови забезпечує надійну роботу програми.
Рис. 2. Алгоритм виконання етапу програми згідно з умовою та заданим виразом if.
Якщо потрібно робити вибір виконання, дії першої або дії другої, залежно від
здійснення умови тоді використовується вираз іf… else. Наприклад, при перевірці
умови – цифрового стану виводу кнопки (buttonPin ) виконати дію (включити
світлодіод 1), якщо цей вивід має високий рівень HIGH, або включити світлодіод 2, якщо
вивід кнопки має низький рівень LOW.
На рис. 3 показано алгоритм включення світлодіода 1 або світлодіода 2 залежно від
виконання умови – цифрового рівня (високий/низький) кнопки.
Рис. 3. Алгоритм виконання етапу програми згідно з умовою та заданим виразом if...else.
Приклад:
void loop()
{
digitalWrite(ledpin1, HIGH); // Виключити світлодіод 1
digitalWrite(ledpin1, HIGH); // Виключити світлодіод 2
{
if (inputPin == HIGH)
{
digitalWrite(ledpin1, LOW); // Включити світлодіод 1
}
else
{
digitalWrite(ledpin2, LOW); // Включити світлодіод 2
}
Вираз for
Вираз for використовується для циклічного виконання програмного блоку,
розміщеного у фігурних дужках. Програмний блок виконується задану кількість разів.
Підрахунок кількості повторно виконаних програмних блоків здійснюється лічильником.
Вміст лічильника нарощується на 1 при повторному виконаннню кожного разу
програмного блоку. Ініціалізація лічильника (локальної змінної) виконується одноразово
напочатку. Звіряння вмісту лічильники із заданим значенням необхідної кількості повторів
програмного блоку, відбувається при виконанні повторно програмного блоку. Якщо умова
істинна виконання повторів продовжується, у іншому випадку цикл завершується. На рис.
4 показано алгоритм виконання циклу.
Рис. 4. Алгоритм виконання програмного циклу згідно з умовами та заданим виразом for.
Програма циклу з виразом for, яка реалізує цей алгоритм приведена нижче.
Приклад:
void loop()
{
digitalWrite(ledpin1, HIGH); // Виключити світлодіод 1
{
for (int i=0; i<10; i++); // Декларує і, перевіряє чи і менше 10,
// збільшує і на 1
{
digitalWrite(ledpin1, LOW); // Включити світлодіод 1
delay(1000); // Виконати паузу 1000 мсек
digitalWrite(ledpin1, HIGH); // Виключити світлодіод 1
delay(2000); // Виконати паузу 2000 мсек
Вираз while
Вираз while ініціює виконання циклу, який може тривати нескінченну кількість
разів. Завершення циклу відбувається тільки при виконанні умови вказаної в дужках. Це
може бути числове значення – константа , або стан зовнішнього пристрою, наприклад,
сенсора. Звіряння значення одержуваної змінної із заданим значенням константи
відбувається напочатку при виконанні кожного повторного програмного блоку. Якщо
величина змінної менша від величини константи виконання циклу продовжується у іншому
випадку він завершується. На рис. 5 показано алгоритм виконання циклу.
Рис. 4. Алгоритм виконання програмного циклу згідно з умовами та заданим виразом while.
Програма – цикл з виразом while, яка реалізує цей алгоритм із умовою заданою
числовим значенням приведена нижче.
Приклад:
void loop()
{
digitalWrite(ledpin1, HIGH); // Виключити світлодіод 1
{
while (someVariable <50); // Перевіряє чи менша змінна від 50
{
digitalWrite(ledpin1, LOW); // Включити світлодіод 1
delay(1000); // Виконати паузу 1000 мсек
digitalWrite(ledpin1, HIGH); // Виключити світлодіод 1
delay(2000); // Виконати паузу 2000 мсек
someVariable++; // Збільшує змінну на 1
Приклад:
void loop()
{
digitalWrite(ledpin1, HIGH); // Виключити світлодіод 1
{
while (someVariable <50); // Перевіряє чи менша змінна від 50
{
digitalWrite(ledpin1, LOW); // Включити світлодіод 1
delay(1000); // Виконати паузу 1000 мсек
digitalWrite(ledpin1, HIGH); // Виключити світлодіод 1
delay(2000); // Виконати паузу 2000 мсек
someVariable++; // Збільшує змінну на 1
Вираз do…while
Рис. 4. Алгоритм виконання програмного циклу згідно з умовою та заданим виразом do…while.
Приклад:
void loop()
{
digitalWrite(ledpin1, HIGH); // Виключити світлодіод 1
do
{
X = readSensors(); // Присвоєння значення
digitalWrite(ledpin1, LOW); // Включити світлодіод 1