Контроль виконання програми 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) оновлюється й цикл продовжується до тих пір, поки останній символ не набуде значення "перевід рядка".
Датчик звуку
Датчик звуку (дискретний, з регулюванням чутливості)Інтелектуальний дискретний датчик звуку для сист..
49.61грн.
Шестерня для зубчатого ременю на 16 зубців під вісь 5 мм
Використовується для передачі та редукції обертаючого моменту від двигуна до вісі 5 ммКількість зубц..
38.58грн.
Розумний дім #1: Вступ до розумного дому на ESP32
Розумний дім #1: Вступ до розумного дому на ESP32 Сучасний розумний дім – це не лише дорогі..
Штекер Micro USB 2.0 розбірний
Розбірний штекер мікро-USB з виводами під пайкуКолір чорний..
12.78грн.
Arduino SIM800 GPRS HTTP GET запит
Привіт друзі! Ми з кожним разом знаємо все більш цікаві застосування GSM-модуля SIM800. На цей раз н..




