Віримо в перемогу ЗСУ!
Працюємо з 09:00 до 18:00 Пн-Сб

Arduino основи програмування

Тут ми навчимося писати елементарну програму, здатну зробити що-небудь цікаве для новачка. Тут ви дізнаєтесь, як написати найпростіший скетч для Arduino використовуючи стандартний IDE. Ми поки що пропустимо використання входів-виходів, але звернемо увагу на зв'язок через USB. Синтаксис мови Arduino точно повторює мову C, тому на ньому ми зупинятись не будемо. Ми зконцентруємося на конкретних аспектах мови Arduino, в якій ви можете використовувати усі принципи, притаманні мові C: змінні, оператори, стани, типи, константи та інше.



Перший скетч для Arduino

В мові Arduino не потрібно задавати відправну точку, як в мові Сі, де ви змушені визначити основну програму. Дійсно, під час запуску програми, вона завантажує те, що називається об'єкт в об'єктно-орієнтованому програмуванні ООП в пам'ять. Об'єкти в ООП належать класам. Для кожного об'єкта того ж класу стан визначається у вигляді набору атрибутів або елементів, котрі можна розглядати як змінні, представлені як набір даних різних типів в пам'яті. Стан об'єкта може управлятись методами: набір станів, призначених для виконання заданої операції по зміні або забезпеченню стану об'єкта. Якщо ви не знайомі з ООП, ви можете роз'яснити для себе, що стан це набір змінних та методи, це набір функцій.

Скетч Arduino складається з самостійного файла, в якому, на відміну від мови C, Ви повинні визначити принаймні, дві секції: перша називається setup(), а друга loop(). Змінні, доступні з обох секцій програми, повинні бути оголошені за їх межами, як глобальні змінні.

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

void setup () {

 ...

 }


void loop () {

 ...

 }

Обидва блоки setup() та loop() задекларовані як блоки void, тобто вони нічого не повертають. Ви можете використовувати стандартні директиви препроцесора, такі як #define, #ifdef, #ifndef, #endif, та інші. Зокрема, ми наполегливо рекомендуємо Вам визначати константи як символи препроцесора (не як змінні, так як вони їдять SRAM пам'ять).


Ввод-вивід даних з Arduino.

В Arduino нема портів для підключення до монітора чи клавіатури: хоча вони і не обов'язкові на таких типах пристроїв. Контакти вводу / виводу призначені для забезпечення обміну даними та сигналами вводу / виводу з зовнішнім світом. Однак це не самодостатні порти, до яких ми звикли, працюючи з комп'ютерами, а окремі сигнальні виводи. А в тих випадках, коли необхідно відобразити які-небудь значення внутрішніх даних  (наприклад під час налагодження) ви можете підключити плату контролера до комп'ютера за допомогою кабеля USB. Повідомлення, прийняті від контролера, відображаються у спеціальному вікні під назвою serial monitor. Такий інтерфейс не підходить для складних задач, та має дуже простий інтерфейс. Ви можете відкрити serial monitor, вибравши відповідний пункт в головному меню IDE. При запуску serial monitor може поводити себе дивно, показуючи (очевидно) випадкові символи. Це ті символи, які залишились в буфері COM-порта після попередніх передач даних. Це простий обмін текстовими повідомленнями та нема можливості щось зберегти у файл.

Якщо потрібно послати текстове повідомлення у вікно serial monitor з контролера, ви можете використати функцію Serial.print(), що має наступний синтаксис:

Serial . print (< повідомлення>}; 

де <повідомлення> це константа. Наприклад

int i = 67;

Serial . print (" the value of i is ");

Serial . print (i);

Serial . print ("\n");

у вікні serial monitor відобразить текст "the value of i is 67". Перше звернення до функції Serial.print  містить текстову константу як параметр. Друге містить цілочисленну змінну, значення якої зчитується з пам'яті. А останнє додасть символ переносу рядка Serial.print("\n"). Ви також можете виводити текстові повідомлення, що одразу містять символ переносу рядка, за допомогою функції Serial.println, яка автоматично додає символ переносу рядка вкінці текста:

int i = 67;

Serial . print (" the value of i is ");

Serial . println (i);

Для того, щоб змінити швидкість послідовного зв'язку, необхідно налаштувати параметри зв'язку перед початком використання каналу. Для цього використовується функція Serial.begin (9600), в якій 9600 - швидкість передачі в бодах (це одиниця швидкості в галузі телекомунікацій). Цю швидкість можна змінювати в межах, регламентованих документацією на сайті Arduino, в залежності від ваших потреб. Зазвичай швидкість 9600 нормально підходить для обміну з сучасним комп'ютером.

Операнд Serial.read() повертає перший байт, доступний в буфері вводу. Його використання дещо важче ніж write. 


Відображення даних

Не дивлячись на те, що в Arduino нема монітора, ви можете підключити до нього деякі дисплеї, що існують в продажу окремо. Існує декілька варіантів для цього: або ви використовуєте ЖК-дисплей, або TFT монітор. Прості ЖК-дисплеї можуть відображати до чотирьох рядків тексту або навіть більше, в тей час як з TFT екраном можна продивлятись дані з високою роздільною здатністю (зазвичай 160 × 128 пікселів та 240 × 320 пікселів). Вини випускаються як в чорно-білому так і в кольоровому варіантах, в деяких моделей є навіть сенсорне керування.


<< Проекти << Усі товари >> Статті, уроки >>

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

Примітка: HTML размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Термінальний роз'єм живлення папа 5,5 x 2,5мм

Термінальний роз'єм живлення папа 5,5 x 2,5мм

Роз'єм живлення, який використовується для переходу від стандартного роз'єму 5,5 x 2,5мм живлення ко..

30.29грн.

Сторожовий таймер та Arduino Uno

Сторожовий таймер та Arduino Uno

Навіщо потрібний watchdog (сторожовий таймер)? Сторожові таймери використовуються, щоб виключити ..

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

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

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

247.85грн.

Помпа для відсмоктування припою

Помпа для відсмоктування припою

Інструмент для відбору зайвого припою з друкованої плати.Необхідно попередньо розплавити припой за д..

78.93грн.

Набір резисторів 300 шт. 10 Ом ... 1 МОм

Набір резисторів 300 шт. 10 Ом ... 1 МОм

Потужність 0,250 ВтНомінали опорів 30 шт.Значення опорів: 10 Ом, 22 Ом, 47 Ом, 100 Ом, 150 Ом, ..

113.30грн.

Теги Ардуіно, Arduino