Працюємо з 09:00 до 19:00 Пн-Сб
Київ біля ТЦ Квадрат бул.Перова

Контроль виконання програми Arduino

Ця стаття присвячена опису структур, що використовуються для управління циклом виконання програми (логіка управління). Управління логікою Arduino таке ж як в мові C. І ми зупинимось на процедурах, що характерні тільки середовищу Arduino.

Пряма структура

Пряму структуру корисно поюзати, коли невідомо чи прийшли дані на ком-порт чи ні. Перед запуском вікна serial monitor ви повинні переконатися, що з'єднання налаштоване та працює. Пам'ятайте, що в Arduino нема операційної системи, яка вирішувала би проблеми використання ресурсів, а отже, ви можете успішно зкомпілювати та запустити скетч, з використанням послідовного зв'язку, але він може повести себе непередбачувано, якщо канал зв'язку не існує, але налаштований правильно. Повідомлення Serial.available () повертає true, якщо присутні символи, що очікують зчитування в послідовній лінії, та false в протилежному випадку. Для того щоб перевірити, чи є символи для читання з лінії, ви можете написати щось схоже на

Serial . begin (9600);

...

if ( Serial . available ()) {

char c = Serial . read ();

Serial . print (c);

}

...

З Serial.read (), ви можете зчитати тільки один символ.


Циклічна структура

Циклічна структура, не менш цікава для програмування Arduino. Такий метод, доволі часто використовується в стандартних скетчах Arduino, до них наприклад відноситься блок loop (). Цей блок повторює створену в собі програму безліч разів. Якщо вам не потрібно, щоб контролер після ініціалізації щось робив, вам необхідно залишити блок loop() порожнім:

while (1) {

// do nothing

}

Інше використання циклічної структури це очікування символів на послідовній шині та зчитування цих рядків в масив:

char ch = NULL ;

char str [255] = {0};

int i = 0;

while (ch != '\n ') {

if ( Serial . available ()) {

ch = Serial . read ();

str[i ++] = ch;

}

}

У наведеному вище коді, ми визначаємо масив символів, елементи якого встановлені в NULL. Потім ми починаємо читати символи з послідовної лінії, як тільки вони стають доступними (Serial.available ()). Після того, як символи зчитуються за допомогою Serial.read (), вони додаються до масиву. Індекс наступного елемента (i) оновлюється й цикл продовжується до тих пір, поки останній символ не набуде значення "перевід рядка".


Написати відгук

Примітка: HTML размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Кроковий двигун 28BYJ-48 з модулем драйвера

Кроковий двигун 28BYJ-48 з модулем драйвера

Кількість фаз 4Робоча напруга 5 ВКоефіцієнт зміни швидкості 1/64Кут повертання мінімальний 5.62..

70.10грн.

Блок живлення 9 В 2 А з роз'ємом 5,5мм x 2,1мм

Блок живлення 9 В 2 А з роз'ємом 5,5мм x 2,1мм

Вхідна напруга змінного струму 100...240 В 50/60 ГцВихідна стабілізована напруга 9 ВМаксимальний стр..

133.52грн.

Мініатюрний перемикач для пайки на плату

Мініатюрний перемикач для пайки на плату

Перемикач мініатюрний на два положення з однією групою контактівРозміри вказані на картинціЧас життя..

1.60грн.

Модуль I2C 4-х реле 5В

Модуль I2C 4-х реле 5В

Модуль 4-х реле з управлінням по шині I2C на основі мікросхеми PCF8574TНапруга котушок реле 5 ВДозво..

148.76грн.

Обмін інформацією між контролерами Arduino Nano по Ethernet

Обмін інформацією між контролерами Arduino Nano по Ethernet

Двохсторонній зв'язок модулями ENC28J60 між контролерами ArduinoЯ покажу тут рішення, здавалось би, ..