Магазин у відпустці 23.05 - 28.05. Всі замовлення будуть оброблені в понеділок

Контроль виконання програми 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 размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Цифровий датчик температури та вологості DHT22 з підтягуючим резистором

Цифровий датчик температури та вологості DHT22 з підтягуючим резистором

Опитування даних з датчика виконується мікроконтролером за протоколом WIREМаркування AM2302Діапазон ..

116.95грн.

Регулятор обертів двигуна 3А 6-28В

Регулятор обертів двигуна 3А 6-28В

Регулятор швидкості обертання двигуна постійного струму. Швидкість задається змінним резистором.Прин..

73.06грн.

Перетворювач рівнів 5В на 3В двонапрямлений 4-канальний

Перетворювач рівнів 5В на 3В двонапрямлений 4-канальний

Перетворювач логічних рівнів з 5 В на 3,3 В та навпаки.Дозволяє перетворити 4 лінії комунікаціїДуже ..

20.46грн.

Міні вимикач 250 В 3 А

Міні вимикач 250 В 3 А

Прикольний маленький вимикач живлення, для врізання в монтажну панель або в корпус електронного прис..

8.71грн.

Термінальний модуль для Arduino UNO

Термінальний модуль для Arduino UNO

Терминальный шилд под плату контроллера Arduino UNO для удобного монтажа кабелей периферийных датчик..

124.96грн.

Нове

Модуль твердотільного реле 4-канальний

Модуль твердотільного реле 4-канальний

Модуль призначений для комутації 4-х навантажень зі змінною напругою живлення 75 ... 264 ВМаксимальн..

Оптопара EL817 SMD

Оптопара EL817 SMD

Оптопара з транзистором на виходіЗастосовується для гальванічної розв'язки дискретного сигналу, а та..

Стабілізатор напруги 5В 2А мікросхема L78S05CV

Стабілізатор напруги 5В 2А мікросхема L78S05CV

Мікросхема стабілізатор напруги L78S05CVЗастосовується для стабілізації пульсуючої напруги в блоках ..

Програматор AVR-контролерів USBASP

Програматор AVR-контролерів USBASP

Програматор для завантаження та відлагодження програм в мікроконтролери компанії ATMEL.Інтерфейс про..

Зсувний регістр 74HC595N

Зсувний регістр 74HC595N

Цю мікросхему використовують для керування світлодіодними гірляндами та символьними індикаторами.Вон..

Світлодіод ультраяскравий 3мм

Світлодіод ультраяскравий 3мм

Над-яскравий світлодіод діаметром 3 ммКорпус прозорий в світлодіодів різного кольору світіння. Тобто..

Вентилятор для Orange PI товщиною 10мм

Вентилятор для Orange PI товщиною 10мм

Вентилятор для охолодження процесора міні-комп'ютера Orange PI або Raspberry PIПрацює дуже тихоЖивле..

Термінальний роз'ємний конектор кутовий 4д

Термінальний роз'ємний конектор кутовий 4д

Роз'ємний 4-дротовий конектор для пайки на друковану платуДроти підводяться паралельно платі та з'єд..

Шестерня для зубчатого ременю на 20 зубців під вісь 5 мм

Шестерня для зубчатого ременю на 20 зубців під вісь 5 мм

Використовується для передачі та редукції обертаючого моменту від двигунаКількість зубців 20 шт.Діам..

Термінальний роз'ємний конектор кутовий 3д

Термінальний роз'ємний конектор кутовий 3д

Роз'ємний трьохдротовий конектор для пайки на друковану платуДроти підводяться паралельно платі та з..

Термінальний роз'ємний конектор кутовий 2д3.81mm

Термінальний роз'ємний конектор кутовий 2д3.81mm

Роз'ємний двохдротовий конектор для пайки на друковану платуДроти підводяться паралельно платі та з'..

Мікроконтролер ATTINY13A

Мікроконтролер ATTINY13A

Мініатюрний економічний AVR 8-бітний мікроконтролер, який можна програмувати як програматором, так і..

Логічний аналізатор 8 каналів

Логічний аналізатор 8 каналів

Надписи на корпусі можуть відрізнятись від наведених на картинці, але сутність приладу незмінна.Цифр..

Лінійний підшипник 8мм

Лінійний підшипник 8мм

Підшипник для лінійного ковзання робочого органу 3D-принтера або CNC за своїми осями.Одягається на ц..

Підшипник для зубчатого ременя GT2 без зубів

Підшипник для зубчатого ременя GT2 без зубів

Підшипник для натяжки зубчатого ременя GT2 6 мм на вісь 5 ммЗастосовується у 3D-принтерах та CNCШири..

Підшипник для зубчатого ременя GT2 20 зубів

Підшипник для зубчатого ременя GT2 20 зубів

Підшипник для натяжки зубчатого ременя GT2 6 мм на вісь 5 мм20 зубцівШирина 10 мм..