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 пікселів). Вини випускаються як в чорно-білому так і в кольоровому варіантах, в деяких моделей є навіть сенсорне керування.
Двигун 12В з редуктором 150RPM
Двигун постійного струму з потужним редуктором для використання в різноманітній робототехніці, елект..
552.16грн.
Кінцевик з коліщатком для 3D принтера або CNC ramps 1.4
Кінцевий вимикач для встановлення на 3D-принтер або CNC-верстат системи ramps 1.4В комплекті кабель ..
50.19грн.
Світлодіод ультраяскравий 5мм
Над-яскравий світлодіод діаметром 5 мм Корпус прозорий в світлодіодів різного кольору світіння. Тоб..
5.52грн.
Подвійна шестерня для зубчатого ременю на 20 зубів під вісь 8 мм
Подвійна шестерня для передачі обертального моменту з одного валу на інший.Застосовується для розділ..
75.37грн.
Сторожовий таймер та Arduino Uno
Навіщо потрібний watchdog (сторожовий таймер)? Сторожові таймери використовуються, щоб виключити ..