[Документация] Полный список команд языка Ардуино

[Скопировать ссылку]
admin Опубликовано 20-12-2020 11:38:50 | Показать все сообщения |Режим чтения Печать Назад Вперед

Для просмотра нужна авторизация!

Для просмотра Вам необходимо авторизироваться.
Если Вы еще не зарегистрированы, перейдите по ссылке: Регистрация.

x
Приветствую на портале ArtAce.ru - творческий сектор. Так, как я занялся изучением команд для Arduino, возникла задача по автоматизации моей теплицы (изготовлением контроллера для умной теплицы AutoGrower). Буду публиковать на портале статьи из разных источников, может кому еще пригодится). В этом руководстве по Arduino  представлен список почти всех доступных на сегодняшний день  команд для Arduino с описанием, ну и конечно же примерами. Большая часть взята из Googl, это некоторые особенности языка, часть получена методом проб и ошибок юзеров среды Arduino. Справку о том, как  всем этим добром пользоваться, вы можете узнать из дополнительных уроков или официального reference. Советую посетить и этот онлайн справочник по C++, там представлена информация раскрывающая некоторые особенности использования операторов и типов данных.
Структура скетча
Синтаксис, структура кода
  1. /* */
  2. Многострочный комментарий
  3. /* этот код не
  4. компилируется */
Скопировать код
  1. //
  2. Однострочный комментарий
  3. // этот код
  4. // не компилируется
Скопировать код
  1. ;
  2. Ставится в конце каждого действия
Скопировать код
  1. void setup() {}
  2. Функция, содержимое которой выполняется один раз при запуске микроконтроллера. Подробнее – в этом уроке.
Скопировать код
  1. void loop() {}
  2. Функция, содержимое которой выполняется (или пытается выполняться) “по кругу” на протяжении всего времени работы МК. Подробнее – в этом уроке.
Скопировать код
  1. #include
  2. Директива, позволяющая подключать в проект дополнительные файлы с кодом.

  3. #include <Servo.h>  // подключает библиотеку Servo.h
  4. #include "Servo.h"  // подключает библиотеку Servo.h
  5. В чём отличие <> и “”? Когда указываем название “в кавычках”, компилятор сначала ищет файл в папке со скетчем, а затем в папке с библиотеками. При использовании <галочек> компилятор ищет файл только в папке с библиотеками
Скопировать код
  1. #define
  2. Директива, дающая команду препроцессору заменить указанное название на указанное значение. Чаще всего таким образом объявляют константы:

  3. #define MOTOR_PIN 10    // пин мотора 10
  4. #define LED_PIN 3       // пин светодиода 3
  5. После компиляции все встречающиеся в тексте программы слова MOTOR_PIN будут заменены на цифру 10, а LED_PIN – на цифру 3. Такой способ хранения констант не использует оперативную память микроконтроллера. Также define позволяет делать т.н. макро функции. Например Ардуиновская функция sq (квадрат) является макро, который при компиляции превращается в умножение:

  6. #define sq(x) ((x)*(x))
Скопировать код
  1. #if, #elif, #else, #endif
  2. Директивы препроцессору, позволяющие включать или исключать участки кода по условию

  3. #define TEST 1    // определяем TEST как 1
  4. #if (TEST == 1)   // если TEST 1
  5. #define VALUE 10  // определить VALUE как 10
  6. #elif (TEST == 0) // TEST 0
  7. #define VALUE 20  // определить VALUE как 20
  8. #else             // если нет
  9. #define VALUE 30  // определить VALUE как 30
  10. #endif            // конец условия
Скопировать код
При помощи условной компиляции очень удобно собирать и настраивать сложные проекты с кучей настроек и библиотек, подключаемых “по условию”. Например:
  1. #define DEBUG 1
  2. void setup() {
  3. #if (DEBUG == 1)
  4.   Serial.begin(9600);
  5.   Serial.println("Hello!");
  6. #endif
  7. }
  8. Если параметру DEBUG установить 1, то будет подключена библиотека Serial, если 0 – то нет. Таким образом получаем универсальный оптимизированный проект с отладкой. Подробнее – в этом уроке.
Скопировать код
  1. #ifdef, #ifndef
  2. Условные директивы препроцессору, позволяют включать или исключать участки кода по условию: ifdef – определено ли? ifndef – не определено ли? Подробнее – в этом уроке.

  3. #define TEST      // определяем TEST
  4. #ifdef TEST       // если TEST определено
  5. #define VALUE 10  // определить VALUE как 10
  6. #else             // если закоммент. #define TEST
  7. #define VALUE 20  // определить VALUE как 20
  8. #endif            // конец условия
Скопировать код
  1. goto
  2. Оператор перехода в другую часть кода по метке. Не рекомендуется к использованию, всегда можно обойтись без него. Как пример использования – выход из кучи условий

  3.   for (byte r = 0; r < 255; r++) {
  4.     for (byte g = 255; g > -1; g--) {
  5.       for (byte b = 0; b < 255; b++) {
  6.         if (analogRead(0) > 250) {
  7.           // уйти из сравнений
  8.           goto bailout;
  9.         }
  10.         // еще код
  11.       }
  12.     }
  13.   }
  14. bailout:
  15.   // перенеслись сюда
Скопировать код
  1. return
  2. Оператор прерывания функции, он же оператор возврата значения из функции. Подробнее – в этом уроке
Скопировать код

Ответить

Магия Жалоба

Чтобы ответить, вам надо авторизироваться в системе Вход | Регистрация

Правила начислений  Разрешить ответные письма, чтобы напомнить автору

просм.1

подписок0

постов124

Опубликовать
Рейтинг за неделю за 24 часа
Последние публикации
Сектор творческих людей
Горячая линия

638638758

С понедельника по воскресенье с 9:00 до 23:00

Обратной связь

admin@artace.ru Онлайн

QR-код

Powered by Discuz! X3.4© 2001-2018 Comsenz Inc.