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

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

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

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

244.11грн.

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

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

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

46.38грн.

Джойстик двохосьовий

Джойстик двохосьовий

Джойстик двохосьовий з кнопкою. Має два аналогових виходи для передачі даних про положення джой..

27.72грн.

Датчик для вимірювання напруги мережі 220В

Датчик для вимірювання напруги мережі 220В

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

157.52грн.

Гвинтовий конектор на два дроти

Гвинтовий конектор на два дроти

Монтується на друковану плату або макетну платуВідстань між виводами 5 мм..

3.23грн.

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

Нове

Модуль твердотільного реле 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 мм..