Arduino система програмування. Arduino та сумісні мови програмування

Ardublock - це графічна мова програмування для Ардуїно, призначена для початківців. Це середовище досить просте у використанні, його легко встановити, воно практично повністю перекладено російською мовою. Візуально сконструйовану програму, що нагадує блоки...

Переривання - дуже важливий механізм Arduino, що дозволяє зовнішнім пристроям взаємодіяти з контролером у разі різних подій. Встановивши обробник апаратних переривань у скетчі, ми зможемо реагувати на увімкнення або вимкнення кнопки, натискання клавіатури,...

Serial.print() і Serial.println() – це основні функції Arduino передачі інформації від плати ардуино до комп'ютера через послідовний порт. На найпопулярніших платах Arduino Uno, Mega, Nano немає вбудованого дисплея, тому...

Чи можна займатися ардуїно проектами без плати Arduino? Виявляється, цілком. Завдяки численним онлайн сервісамта програм, які мають свою назву: емулятор або симулятор Arduino. Найпопулярнішими представниками таких програм є...

Serial begin - вкрай важлива інструкція Arduino, вона дозволяє встановити контролеру з'єднання із зовнішніми пристроями. Найчастіше таким « зовнішнім пристроєм» Виявляється комп'ютер, до якого ми підключаємо Arduino. Тому Serial begin інтенсивніше...

Глобальна змінна Arduino – це змінна, область видимості якої поширюється на всю програму, її видно у всіх модулях і функціях. У цій статті ми розглянемо кілька прикладів використання глобальних змінних,...

Масиви Arduino – це елемент мови, який активно використовується програмістами для роботи з наборами однотипних даних. Масиви є практично у всіх мовах програмування, не винятком є ​​й Arduino, синтаксис якого дуже схожий.

Дана стаття допоможе вам почати роботу з Arduino і включає опис різних типів Arduino, як завантажити середовище розробки програмного забезпечення Arduino, і описує різні плати та приладдя, доступні для Arduino, і які знадобляться вам для розробки проектів на Arduino.

Arduino - це одноплатний контролер з відкритими вихідними кодами, який можна використовувати в багатьох додатках. Це можливо найпростіший і найдешевший варіант із мікроконтролерів для любителів, студентів та професіоналів для розробки проектів на основі мікроконтролерів. Плати Arduino використовують або мікроконтролер Atmel AVR, або мікроконтролер Atmel ARM, і в деяких версіях має інтерфейс USB. Вони також мають шість або більше висновків аналогових входів та чотирнадцять або більше висновків цифрових входів/виходів (I/O), які використовуються для підключення до мікроконтролера датчиків, приводів та інших периферійних схем. Ціна на плати Arduino в залежності від набору функцій складає від шести до сорока доларів.

Типи плат Arduino

Існує безліч різних типів плат Arduino, як показано в списку нижче, кожна з яких має власний набір функцій. Вони відрізняються за швидкістю обробки, пам'яті, портами вводу/виводу та підключенням, але основна складова їх функціоналу залишається незмінною.

  • Arduino Robot
  • Arduino Ethernet

На різноманітність плат Arduino та їх технічні описиможна переглянути в розділі « » розділу «Купити » даного сайту.

Програмне забезпечення (IDE)

Програмне забезпечення, що використовується для програмування Arduino, є інтегрованим середовищем розробки Arduino IDE. IDE є Java додаток, що працює на безлічі різних платформ, включаючи системи PC, Mac та Linux. Вона розроблена для початківців, які не знайомі із програмуванням. Вона включає редактор, компілятор і завантажувач. Також у IDE включені бібліотеки коду для використання периферії, наприклад, послідовних портів та різних типів дисплеїв. Програми для Arduino називаються «скетчами», і вони написані мовою дуже схожою на C або C++.

Більшість плат Arduino підключаються до комп'ютера за допомогою USB кабелю. Це з'єднання дозволяє завантажувати скетчі на плату Arduino, а також забезпечує плату харчуванням.

USB кабель для Arduino

Програмування

Програмування Arduino легко: спочатку ви використовуєте редактор коду IDE для написання програми, а потім компілюєте та завантажуєте її одним кліком.

Програма для Arduino включає дві основні функції:

  • setup()
  • loop()

Ви можете використовувати функцію setup() для ініціалізації налаштувань плати. Ця функція виконується лише один раз, при увімкненні плати.

Функція loop() виконується після завершення функції setup() , і на відміну функції setup() вона працює постійно.

Функції програм

Нижче наведено список найчастіше використовуваних функцій при програмуванні Arduino:

  • pinMode - встановлює виведення в режим входу чи виходу;
  • analogRead - зчитує аналогову напругу на аналоговому вхідному виводі;
  • analogWrite - записує аналогову напругу в аналоговий вихідний висновок;
  • digitalRead – зчитує значення цифрового вхідного виводу;
  • digitalWrite - задає значення цифрового вихідного виведення на високий чи низький рівень;
  • Serial.print - пише дані в послідовний порт у вигляді легкочитаного тексту ASCII.

Бібліотеки Arduino

Бібліотеки Arduino є колекцією функцій, які дозволять вам керувати пристроями. Ось деякі з найбільш широко використовуваних бібліотек:

  • EEPROM - читання та запис у «постійне» сховище;
  • Ethernet – для підключення до інтернету, використовуючи плату Arduino Ethernet Shield;
  • Firmata – для зв'язку з додатками на комп'ютері, використовуючи стандартний послідовний протокол;
  • GSM – для підключення до мережі GSM/GRPS за допомогою плати GSM;
  • LiquidCrystal - для керування рідкокристалічними дисплеями (LCD);
  • SD - для читання та запису SD карт;
  • Servo - для керування сервоприводами;
  • SPI – для зв'язку з пристроями, використовуючи шину SPI;
  • SoftwareSerial - для послідовного зв'язку через будь-які цифрові висновки;
  • Stepper - для керування кроковими двигунами;
  • TFT - для відтворення тексту, зображень та фігур Arduino TFT екранах;
  • WiFi – для підключення до інтернету, використовуючи плату Arduino WiFi shield;
  • Wire – двопровідний інтерфейс (TWI/I2C) для передачі та прийому даних через мережу пристроїв або датчиків.

Етапи налаштування Arduino


Увага: можливо, вам знадобиться встановити драйвера, якщо ваша система не виявить Arduino.

28 09.2016

Ви думали полегшити собі життя в побуті? Щоб були речі, які б вирішували за вас повсякденні, рутинні завдання. Розумний пристрій, яке б здійснювало корисну функціюнаприклад, поливало город, прибирало кімнату, переносило вантаж. Ці завдання може вирішувати. Але просто купити її буде замало. Будь-якому промисловому логічному контролеру чи мікросхемі потрібен “мозок”, щоб виконувати певну послідовність дій. Для здійснення операцій у нашому випадку підійде мова програмування ардуїно.

З цієї статті ви дізнаєтесь:

Вітаю вас, друзі! Для тих, хто мене не знає, мене звуть Гридін Семен. Ви можете прочитати про мене. Сьогоднішню статтю буде присвячено двом основним програмам, без яких не буде у нас подальшого руху та взаєморозуміння.

Загальний опис мов програмування

Як я й писав вище, розглядати ми з вами будемо два популярні середовища розробки. За аналогією з, можна розділити на графічний редакторта "розумний блокнот". Це програми Arduino IDE та FLprog.

Основою середовища розробки є Processing/Wiring - це звичайний C++, доповнений функціями та різними бібліотеками. Існує кілька версій для операційних систем windows, Mac OS та Linux.

У чому їхня принципова відмінність?? Arduino IDE – це середовище розробки, в якому описується код програми. А FLprog нагадує CFC CoDeSyS, що дозволяє малювати діаграми. Яке середовище краще? Обидві гарні та зручні за своїм, але якщо хочете займатися контролерами серйозно, найкраще вивчити мови, схожі на СІ. Їхній головний плюс у гнучкості та необмеженості алгоритму. Мені дуже подобається Arduino IDE.

Опис Arduino IDE

Дистрибутив можна завантажити на офіційному сайті. Завантажуємо архів, він займає трохи більше 100 мегабайт. Встановлення стандартне, як і всі програми для Windows. Драйвери для всіх типів плат мають бути встановлені у пакеті. І ось як виглядає робоче вікно програми.

Середовище розробки Arduino складається з:

  • редактора програмного коду;
  • області повідомлень;
  • вікна виведення тексту;
  • панелі інструментів з кнопками команд, що часто використовуються;
  • кількох меню

Налаштування Arduino IDE

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

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

Багато бібліотек надаються прикладами, розташованими в папціexample.Вибір бібліотеки в меню призведе до додавання до вихідний кодрядки:

Arduino

#include

#include

Це директива - якась інструкція, заголовний файлз описом об'єктів, функцій та констант бібліотеки. Багато функцій вже розроблено більшості типових завдань. Повірте, це полегшує життя програмісту.

Після під'єднання електронної плати до комп'ютера. Ми здійснюємо наступні налаштування - вибираємо плату Arduino і Com-порт за яким з'єднуватимемося.

Arduino

void setup() ( // initialize digital pin 13 as an output. pinMode(13, OUTPUT); ) void loop() ( digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000) );

void setup () (

// initialize digital pin 13 as an output.

pinMode (13, OUTPUT);

void loop () (

digitalWrite (13, HIGH);

delay (1000);

digitalWrite (13, LOW);

delay (1000);

Так, до речі, зручно перевіряти працездатність плати, що прийшла з магазину. Швидко та легко.

Є ще одна зручна річ. Називається вонаМонітор послідовного порту (Serial Monitor). Відображає дані, що надсилаються до платформиArduino.Я зазвичай дивлюся, які сигнали видають мені різні датчики, Підключені до плати.

Підключення бібліотек

Існують різні способидля додавання користувацьких функцій. Підключити бібліотеки можна трьома способами:

  1. За допомогою Library Manager
  2. За допомогою імпорту у вигляді файлу.zip
  3. Встановлення вручну.

1. За допомогою програми Library Manager.У робочому вікні програми вибираємо вкладку Скетч. Після цього натискаємо кнопку Підключити бібліотеку. Перед нами відкриється менеджер бібліотек. У вікні відображатимуться вже встановлені файлиз підписомinstalled,та ті, які можна встановити.

2.За допомогою імпорту як файла.zip.Часто в просторах інтернету можна зустріти запаковані в архіви бібліотеки з розширенням zip. Він містить заголовковий файл.h і файл коду.cpp. При встановленні не потрібно розпаковувати архів. Достатньо в меню Скетч — Підключити бібліотеку — Add .ZIP library

3.Установка вручну.Спочатку закриваємо програму Arduino IDE. Наш архів ми спочатку розпаковуємо. І файли з розширенням.h і.cpp переносимо до папки з тією ж назвою, як і архів. Закидаємо папку в кореневий каталог.

Мої документи\Arduino\libraries

Опис FLPprog

FLprog - це безкоштовний проектнезалежних розробників, що дозволяє працювати з функціональними блокамиабо з релейними діаграмами. Це середовище зручне для людей — не програмістів. Вона дозволяє візуально та наочно бачити алгоритм за допомогою діаграм та функціональних блоків. Завантажити дистрибутив можна на офіційному сайті.

Я спостерігаю за проектом досить давно. Хлопці розвиваються, постійно додають новий функціонал та змінюють старий. Я бачу у цьому середовищі перспективи. Оскільки вона виконує дві важливі функції:простоту та зручність використання.

Спробуймо з вами створити простенький проект. Перемикатимемо 13 вихід на світлодіод.

Створюємо новий проект. У верхньому вікні додаємо потрібну кількість входів та виходів, задаємо ім'я та привласнюємо фізичний вхід або вихід плати.

Витягуємо потрібні нам елементи з дерева об'єктів потрібні нам елементи на полотно редагування. У нашому випадку можна використовувати простий RS-тригер для увімкнення та вимкнення.

Після створення алгоритму, клацнемо на кнопочку компілювати, програма дає готовий скетч на IDE.

Ми з вами розглянули можливості та зручності програм для розробки алгоритмів на контролері серії Arduino. Є ще програми, які дозволяють створювати структурні діаграми та візуальні картинки. Але я рекомендую використовувати текстовий редактортому, що потім вам буде простіше. Скажіть, а яке середовище вам найзручніше і чому??

22 вересня я брав участь у Краснодарі на семінарі "Сенсорні панельні контролери ОВЕН СПК". Проводили конференцію у фешенебельному та красивому готелі “Брістоль”. Було дуже цікаво та круто.

У першій частині семінару нам розповідали про можливості та переваги продукції компанії ОВЕН. Після був кава-брейк із пончиками. Я набрав купу всього, і пончиків, і печива, і цукерок, тому що був дуже голодним.

У другій частині семінару по обіді нам презентували. Багато чого розповіли про Web - візуалізацію. Ця тенденція починає набирати обертів. Ну звісно, ​​керувати обладнанням через будь-який інтернет – браузер. Це реально круто. Ось до речі кажучи саме обладнання у валізці.

Я найближчим часом опублікую серію статей з CoDeSyS 3.5. Отже, якщо комусь цікаво підписуйтесь або просто заходьте в гості. Буду завжди радий!

До речі мало не забув, наступна стаття буде про електронну плату Arduino. Буде цікаво, не пропустіть.

До зустрічі, у наступних статтях.

З повагою, Гридін Семен.

Вступ

Freeduino/Arduino програмується спеціальною мовою програмування – він заснований на C/C++, і дозволяє використовувати будь-які його функції. Строго кажучи, окремої мови Arduino немає, як і немає компілятора Arduino – написані програми перетворюються (з мінімальними змінами) на програму мовою C/C++, і потім компілятором AVR-GCC. Так що фактично, використовується спеціалізований для мікроконтролерів AVRваріант C/C++.

Різниця полягає в тому, що Ви отримуєте просте середовище розробки, і набір базових бібліотек, що спрощують доступ до мікроконтролера периферії, що знаходиться «на борту».

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

Serial.begin(9600);

А при використанні «голого» C/C++ Вам довелося б розбиратися з документацією на мікроконтролер, і викликати щось подібне:

UBRR0H = ((F_CPU / 16 + 9600 / 2) / 9600 - 1) >> 8;
UBRR0L = ((F_CPU / 16 + 9600 / 2) / 9600 - 1);
sbi(UCSR0B, RXEN0);
sbi(UCSR0B, TXEN0);
sbi(UCSR0B, RXCIE0);

Тут коротко розглянуто основні функції та особливості програмування Arduino. Якщо Ви не знайомі з синтаксисом мов C/C++, радимо звернутися до будь-якої літератури з цього питання або Internet-джерел.

З іншого боку, всі приклади дуже прості, і швидше за все у Вас не виникне труднощів з розумінням вихідних текстів і написанням власних програм навіть без читання додаткової літератури.

Більш повна документація (на англійською мовою) представлена ​​на офіційному сайті проекту - http://www.arduino.cc. Там же є форум, посилання на додаткові бібліотеки та їх опис.

За аналогією з описом на офіційному сайті проекту Arduino, під портом розуміється контакт мікроконтролера, виведений на роз'єм під відповідним номером. З іншого боку, існує порт послідовної передачі (COM-порт).

Структура програми

У своїй програмі Ви повинні оголосити дві основні функції: setup() та loop().

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

Функція loop() послідовно щоразу виконує команди, які описані в її тілі. Тобто. після завершення функції знову відбудеться її дзвінок.

Розберемо простий приклад:

void setup() // Початкові установки
{
початкуSerial(9600); // Установка швидкості роботи серійного порту на 9600 біт/сек
pinMode(3, INPUT); // Установка 3-го порту на введення даних
}

// Програма перевіряє третій порт на наявність на ньому сигналу і посилає відповідь
// вигляді текстового повідомленняна послідовний порт комп'ютера
void loop() // Тіло програми
{
if (digitalRead(3) == HIGH) // Умова на опитування 3-го порту
serialWrite("H"); // Надсилання повідомлення у вигляді літери «Н» на COM-порт
else
serialWrite("L"); // Надсилання повідомлення у вигляді літери «L» на COM-порт
delay(1000); // Затримка 1 сек.
}

pinMode (порт, режим);

Опис:

Конфігурує вказаний порт для введення або виведення сигналу.

Параметри:

порт – номер порту, режим якого Ви бажаєте встановити (значення цілого типу від 0 до 13).

режим – або INPUT (введення) або OUTPUT (виведення).

pinMode(13, OUTPUT); //13й висновок буде виходом
pinMode(12, INPUT); //а 12й - входом

Примітка:

Аналогові входи можуть використовуватися як цифрові входи/виходи при зверненні до них за номерами з 14 (аналоговий вхід 0) по 19 (аналоговий вхід 5)

digitalWrite(порт, значення);

Опис:

Встановлює високий (HIGH) або низький (LOW) рівень напруги на вказаному порту.

Параметри:

порт: номер порту

значення: HIGH або LOW

digitalWrite(13, HIGH); // виставляємо 13-й висновок у «високий» стан

value = digitalRead (порт);

Опис:

Зчитує значення на вказаному порту

Параметри:

порт: номер опитуваного порту

Значення, що повертається: повертає поточне значення на порту (HIGH або LOW) типу int

int val;
val = digitalRead(12); // опитуємо 12-й висновок

Примітка:

Якщо до зчитуваного порту нічого не підключено, функція digitalRead () може безладно повертати значення HIGH або LOW.

Аналогове введення/виведення сигналу

value = analogRead(порт);

Опис:

Зчитує значення із зазначеного аналогового порту. Freeduino містить 6 каналів, аналого-цифрового перетворювача на 10 бітів кожен. Це означає, що вхідна напруга від 0 до 5В перетворюється на ціле значення від 0 до 1023. Роздільна здатність зчитування становить: 5 В/1024 значень = 0,004883 В/значення (4,883 мВ). Потрібно приблизно 100 нС (0.0001 С), щоб рахувати значення аналогового введення, так що максимальна швидкість зчитування - приблизно 10000 разів на секунду.

Параметри:

Значення, що повертається: повертає число типу int в діапазоні від 0 до 1023, лічене з зазначеного порту.

int val;
val = analogRead(0); // зчитуємо значення на 0м аналоговому вході

Примітка:

Аналогові стандартні порти визначені на введення сигналу і на відміну від цифрових портів їх не потрібно конфігурувати за допомогою виклику функції pinMode.

analogWrite(порт, значення);

Опис:

Виводить на порт аналогове значення. Ця функція працює на: 3, 5, 6, 9, 10 та 11 цифрових портах Freeduino.

Може застосовуватись для зміни яскравості світлодіода, для керування двигуном і т.д. Після виклику функції analogWrite, відповідний порт починає працювати в режимі широтно-імпульсного модулювання напруги доти, доки не буде наступного виклику функції analogWrite (або функцій digitalRead/digitalWrite на тому самому порту).

Параметри:

порт: номер опитуваного аналогового входу

значення: цілочисленне між 0 і 255. Значення 0 генерує 0 на зазначеному порті; значення 255 генерує +5 на зазначеному порту. Для значень між 0 і 255, порт починає швидко чергувати рівень напруги 0 і +5 - чим вище значення, тим, більш часто порт генерує рівень HIGH (5 В).

analogWrite(9, 128);// встановлюємо на 9 контакті значення еквівалентне 2,5В

Примітка:

Немає необхідності викликати функцію pinMode, щоб встановити порт на виведення сигналів перед викликом функції analogWrite.

Частота генерування сигналу – приблизно 490 Гц.

time = millis();

Опис:

Повертає число мілісекунд з моменту виконання Freeduino поточної програми. Лічильник переповниться та обнулиться приблизно через 9 годин.

Значення, що повертається: повертає значення типу unsigned long

unsigned long time; // оголошення змінної time типу unsigned long
time = millis(); // передача кількості мілісекунд

delay (час_мс);

Опис:

Зупиняє програму на задану кількість мілісекунд.

Параметри:

час_мс – час затримки програми у мілісекундах

delay(1000); //пауза 1 секунда

delayMicroseconds

delayMicroseconds(час_мкс);

Опис:

Зупиняє програму на задану кількість мікросекунд.

Параметри:

час_мкс – час затримки програми у мікросекундах

delayMicroseconds(500); //пауза 500 мікросекунд

pulseIn(порт, значення);

Опис:

Зчитує імпульс (високий або низький) з цифрового порту та повертає тривалість імпульсу в мікросекундах.

Наприклад, якщо параметр «значення» при виклику функції встановлений у HIGH, то pulseIn() очікує, коли на порт надійде високий рівень сигналу. З його надходження починається відлік часу до того часу, поки порт не надійде низький рівень сигналу. Функція повертає довжину імпульсу ( високого рівня) у мікросекундах. Працює з імпульсами від 10 мікросекунд до 3 хвилин. Зверніть увагу, що ця функція не повертатиме результат, доки імпульс не буде виявлено.

Параметри:

порт: номер порту, з якого зчитуємо імпульс

значення: тип імпульсу HIGH або LOW

Значення, що повертається: повертає тривалість імпульсу в мікросекундах (тип int)

int duration; // оголошення змінної duration типу int
duration = pulseIn(pin, HIGH); // Вимірюємо тривалість імпульсу

Послідовна передача даних

Freeduino має вбудований контролер для послідовної передачі даних, який може використовуватися як для зв'язку між Freeduino/Arduino пристроями, так зв'язку з комп'ютером. На комп'ютері відповідне з'єднання представлене USB COM-портом.

Зв'язок відбувається по цифрових портах 0 і 1, і тому Ви не зможете використовувати їх для цифрового введення/виводу, якщо використовуєте функції послідовної передачі даних.

Serial.begin(швидкість_передачі);

Опис:

Встановлює швидкість передачі інформації COM порту біти в секунду для послідовної передачі даних. Для того, щоб підтримувати зв'язок з комп'ютером, використовуйте одну з цих нормованих швидкостей: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, або інші 115200. портам 0 та 1.

Параметри:

швидкість_передачі: швидкість потоку даних у бітах за секунду.

Serial.begin(9600); //встановлюємо швидкість 9600 біт/сек

Serial.available

count = Serial.available();

Опис:

Байти, що приймаються по послідовному порту, потрапляють у буфер мікроконтролера, звідки Ваша програма може їх вважати. Функція повертає кількість накопичених у буфері байт. Послідовний буфер може зберігати до 128 байт.

Значення, що повертається:

Повертає значення типу int – кількість байт, доступних для читання, у послідовному буфері, або 0 якщо нічого не доступно.

if (Serial.available() > 0) ( // Якщо в буфері є дані
// тут має бути прийом та обробка даних
}

char = Serial.read();

Опис:

Зчитує наступний байт із буфера послідовного порту.

Значення, що повертається:

Перший доступний байт вхідних даних із послідовного порту, або -1 якщо немає вхідних даних.

incomingByte = Serial.read(); // читаємо байт

Опис:

Очищує вхідний буфер порту послідовного. Дані, що знаходяться в буфері, втрачаються, і подальші виклики Serial.read() або Serial.available() будуть мати сенс для даних, отриманих після виклику Serial.flush().

Serial.flush(); // Очищаємо буфер – починаємо прийом даних «з чистого листа»

Опис:

Виведення даних на послідовний порт.

Параметри:

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

Serial.print(b, DEC) виводить ASCII-рядок - десяткове уявлення числа b.

int b = 79;

Serial.print(b, HEX) виводить ASCII-рядок - шістнадцяткове уявлення числа b.

int b = 79;

Serial.print(b, OCT) виводить ASCII-рядок - вісімкове уявлення числа b.

int b = 79;
Serial.print(b, OCT); //видасть у порт рядок «117»

Serial.print(b, BIN) виводить ASCII-рядок - двійкове уявленнячисла b.

int b = 79;
Serial.print(b, BIN); //видасть у порт рядок «1001111»

Serial.print(b, BYTE) виводить молодший байт числа b.

int b = 79;
Serial.print(b, BYTE); //Виведе число 79 (один байт). У моніторі
//Послідовного порту отримаємо символ «O» - його
//код дорівнює 79

Serial.print(str) якщо str – рядок чи масив символів, побайтно передає str на COM-порт.

char bytes = (79, 80, 81); //масив із 3 байт зі значеннями 79,80,81
Serial.print("Here our bytes:"); //Виводить рядок «Here our bytes:»
Serial.print(bytes); //виводить 3 символи з кодами 79,80,81 -
// це символи "OPQ"

Serial.print(b) якщо b має тип byte чи char, виводить у порт саме число b.

char b = 79;
Serial.print(b); //видасть у порт символ «O»

Serial.print(b) якщо b має цілий тип, виводить у порт десяткове уявлення числа b.

int b = 79;
Serial.print(b); //видасть у порт рядок «79»

Опис:

Функція Serial.println аналогічна функції Serial.print і має такі ж варіанти виклику. Єдина відмінність полягає в тому, що після даних додатково виводяться два символи - символ повернення каретки (ASCII 13, або "r") і символ нової лінії (ASCII 10, або "n").

Приклад 1 і приклад 2 виведуть в порт те саме:

int b = 79;
Serial.print(b, DEC); //видасть у порт рядок «79»
Serial.print("r"); //виведе символи "\r\n" – переклад рядка
Serial.print(b, HEX); //видасть у порт рядок «4F»
Serial.print("\r\n"); // виведе символи "\r\n" – переклад рядка

int b = 79;
Serial.println(b, DEC); // видасть у порт рядок «79 n»
Serial.println(b, HEX); //видасть у порт рядок «4F\n»

У моніторі послідовного порту отримаємо.

Мова програмування Ардуїно ґрунтується на мові C/C++, яка широко поширена у світі програмування.

Цільовою аудиторією Ардуїно є непрофесійні користувачі у сфері роботобудування та найпростіших систем автоматики. Основною продукцією є набір плат, комбінуючи які, можливо створювати різні пристроїздатні виконувати широкий ряд завдань.

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

Крім друкованих плат, що випускаються під торговою маркою Arduino, у них є власна мова програмування Ардуїно, яка ґрунтується на широко відомій у колі програмістів мові C/C++. Давайте докладніше розберемося, що він собою представляє.

Мова програмування Ардуїно досить проста в освоєнні, оскільки основна цільовою аудиторієюЙого застосування є любителі. Однак вважається одним із самих кращих мовдля програмування мікроконтролерів.

Крапка з комою;

Точка з комою повинна йти за кожним виразом, написаним мовою програмування Arduino. Наприклад:

Int LEDpin = 9;

У цьому вся виразі ми присвоюємо значення змінної і зверніть увагу до точку з комою наприкінці. Це говорить компілятору, що ви закінчили шматок коду та переходите до наступного фрагменту. Крапка з комою в коді Ардуїно відокремлює одне вираз від іншого.

Подвійна зворотна коса характеристика для однорядкових коментарів //

// Все, що йде після подвійної косої риси, буде сірим і не зчитуватиметься програмою

Коментарі це те, що ви використовуєте для коментування коду. Хороший коддобре коментується. Коментарі призначені для того, щоб повідомляти вам і всім, хто міг би натрапити на ваш код, як ви думали, коли ви його написали. Хорошим коментарем було б щось на кшталт цього:

// До цього піну Arduino підключаємо світлодіод int LEDpin = 9;

Тепер, навіть через 3 місяці, коли я переглядаю цю програму, я знаю про те, куди підключався світлодіод.

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

/* Багаторядковий коментар відкривається одним зворотним слешем, за яким слідує зірочка. Все наступне буде виділено сірим кольором і ігноруватиметься компілятором, поки ви не закриєте коментар, використовуючи спочатку зірочку, а потім зворотну косу межу */

Коментарі схожі на виноски коду, але більш поширені, ніж ті, що ставлять у книгах внизу сторінок.

Фігурні дужки ( )

Фігурні дужки використовуються для того, щоб додати інструкції, які виконує функція (ми обговоримо функції далі). Завжди є відкрита фігурна дужка і фігурна дужка, що закриває. Якщо ви забудете закрити фігурну дужку, компілятор виведе код помилки.

Void loop() ( //ця фігурна дужка відкривається //крута програма тут )//ця фігурна дужка закривається

Пам'ятайте - ніяка фігурна дужка не може бути закрита!

Функції ()

Тепер настав час поговорити про функції. Функції - це фрагменти коду, які використовуються так часто, що вони інкапсульовані у певні ключові словащоб ви могли використовувати їх більш легко. Наприклад, функцією може бути наступний набір інструкцій, якщо вам потрібно помити собаку:

  1. Отримати відро
  2. Заповнити його водою
  3. Додати мило
  4. Знайти собаку
  5. Намилити собаку
  6. Помити собаку
  7. Сполоснути собаку
  8. Посушити собаку
  9. Відкласти відро

Цей набір простих інструкційможе бути інкапсульовано у функцію, яку ми можемо назвати WashDog. Щоразу, коли ми хочемо виконати всі ці інструкції, ми просто набираємо WashDog і вуаля – всі інструкції виконуються.

Ардуїно має певні функції, які часто використовуються в середовищі . Коли ви вводите їх, ім'я функції буде помаранчевим. Наприклад, функція pinMode() є загальною функцією, яка використовується для позначення режиму виведення Arduino.

А що із круглими дужками після функції pinMode? Для багатьох функцій потрібні аргументи. Аргумент - це інформація, яку функція використовує під час її запуску. Для нашої функції WashDog аргументами можуть бути ім'я собаки та тип мила, а також температура та розмір відра.

PinMode(13, OUTPUT); //Встановлює режим виводу Arduino

Аргумент 13 відноситься до висновку 13, а OUTPUT - режим, в якому ви хочете, щоб пін працював. Коли ви вводите ці аргументи, це термінологія називається передачею даних, ви передаєте необхідну інформацію в функції. Не всім функціям потрібні аргументи, але відкриття та закриття круглих дужок залишаються, хоч і порожніми.

Millis(); //Отримує час у мілісекундах за який Arduino запускається

Зверніть увагу, що слово OUTPUT зазвичай синього кольору. У мові програмування Ардуїно є певні ключові слова, які часто використовуються, а синій колір допомагає їх ідентифікувати. Arduino IDE автоматично перетворює їх на синій колір.

void setup()

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

Void setup() ( // код між фігурними фігурними дужками виконується лише один раз)

Можливо, вам цікаво, що означає void перед функцією setup(). Void означає, що функція не повертає інформацію.

Деякі функції повертають значення – наша функція DogWash може повернути кількість відер, необхідних для очищення собаки. Функція analogRead() повертає ціле значення від 0 до 1023. Якщо це зараз здається трохи дивним, не турбуйтеся, оскільки ми охоплюватимемо кожну загальну функцію Arduino у міру продовження курсу.

Давайте розглянемо пару речей, які ви повинні знати про setup():

  1. setup() запускається лише один раз;
  2. setup() має бути першою функцією в скетчі Ардуїно;
  3. setup() повинна мати фігурні дужки, що відкриваються і закривають.

void loop()

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

Як і у випадку з setup(), функція loop() не повертає жодних значень, тому перед ним передує слово void.

Void loop() ( //будь-який код, який ви тут задаєте, виконується знову і знову )

Вам здається дивним, що код працює в одному великому циклі? Це очевидна відсутність варіації – ілюзія. Більшість вашого коду буде мати певні умови очікування, які викличуть нові дії.

Чи існують ще програми з Ардуїно?

Крім офіційної Arduino IDE, існують програми сторонніх розробників, які пропонують свої продукти для роботи з мікроконтролерами на базі Ардуїно.

Аналогічний набір функцій може надати програма, яка називається Processing. Вона дуже схожа з Arduino IDE, тому що обидві зроблені на одному двигуні. Processing має великий набір функцій, який мало поступається оригінальній програмі. За допомогою завантажуваної бібліотеки Serial користувач може створити зв'язок між передачею даних, які передають один одному плату та Processing. При цьому ми можемо змусити плату виконувати програми прямо з нашого ПК.

Існує ще одна цікава версіявихідної програми. Називається вона B4R, і головною її відмінністю є використання як основи не мови сі, а інша мова програмування – Basic. Цей програмний продукт є безкоштовним. p align="justify"> Для роботи з ним існують хороші самовчителі, у тому числі і написані творцями даного продукту.

Є й платні варіанти Arduino IDE. Одним із таких є програма PROGROMINO. Головною її перевагою вважається можливість автодоповнення коду. При складанні програми вам більше не потрібно буде шукати інформацію у довідниках. Програма сама запропонує вам можливі варіантивикористання тієї чи іншої процедури. У її набір входить ще безліч цікавих функцій, які відсутні в оригінальній програмі і здатні полегшити вам роботу з платами.

Конкуренти Ардуїно

Даний ринок з виробництва мікроконтролерів для створення різних електронних схемі робототехніки має багато шанувальників по всій земній кулі. Ця ситуація сприяє появі ринку як конкурентів, які пропонують подібні продукти. Крім них випускається значна кількість підробок різної якості. Одні дуже важко відрізнити від оригіналів, адже вони мають ідентичну якість, інші мають дуже погані характеристики і можуть зовсім не працювати з оригінальними продуктами.

Існують навіть плати Arduino, що підтримують роботу мікропроцесорів з інтерпретаторами JavaScript. Актуальні вони насамперед для тих, хто бажає використовувати мова Javaзамість Сі. Адже він більш простий, і дозволяє досягати результатів із підвищеною швидкістю. Однак ці плати є дорожчими по відношенню до ардуїно, що є суттєвим мінусом.

Якщо ви шукаєте собі хобі і вам цікаво такий напрямок, як електротехніка, ви можете вибирати для цього Arduino. Плюсів таке хобі має багато. Ви розвиватиметеся в інтелектуальному плані, тому що це заняття вимагатиме від вас знань у різних галузях.

Окрім розваг, ваше хобі допоможе вам у створенні маси корисних виробів, які ви зможете використовувати для полегшення повсякденного життя. З кожним разом ви знаходитимете все нові та нові способи використання вашого захоплення.

Освоїти це заняття буде не так складно, завдяки наявності великої кількості підручників та самовчителів. Надалі ви знайдете безліч однодумців по всьому світу, які поділяться з вами своїми знаннями та дадуть вам стимул для здійснення нових експериментів!