(для перехода на сайт с примерами использования нажмите на гиперссылку «Пример использования»)
Язык Arduino | Пример | Описание |
Операторы | ||
setup() | void setup() { pinMode(3, INPUT); } | Функция используется для инициализации переменных, определения режимов работы выводов на плате и т.д. Функция запускается только один раз, после каждой подачи питания на микроконтроллер. ► Пример использования |
loop() | void loop() { digitalWrite(3, HIGH); delay(1000); digitalWrite(3, LOW); delay(1000); } | Функция loop крутится в цикле, позволяя программе совершать вычисления и реагировать на них. Функции setup() и loop() должны присутствовать в каждом скетче, даже если эти операторы в программе не используются. ► Пример использования |
Управляющие операторы | ||
if | … if (x > 100) digitalWrite(3, HIGH); if (x < 100) digitalWrite(3, LOW); … | Оператор if используется в сочетании с операторами сравнения (==,!=, <, >) и проверяет, достигнута ли истинность условия. Например, если значение переменной x больше 100, то включается светодиод на выходе 13, если меньше — светодиод выключается. ► Пример использования |
if..else | … if (x > 100) digitalWrite(3, HIGH); else digitalWrite(3, LOW); … | Оператор else позволяет cделать проверку отличную от указанной в if, чтобы осуществлять несколько взаимо исключающих проверок. Если ни одна из проверок не получила результат ИСТИНА, то выполняется блок операторов в else. ► Пример использования |
switch…case | … switch (x) { case 1: digitalWrite(3, HIGH); case 2: digitalWrite(3, LOW); case 3: break; default: digitalWrite(4, HIGH); } … | Подобно if, оператор switch управляет программой, позволяя задавать действия, которые будут выполняться при разных условиях. Break является командой выхода из оператора, default выполняется, если не выбрана ни одна альтернатива. ► Пример использования |
for | void setup() { pinMode(3, OUTPUT); } void loop() { for (int i=0; i <= 255; i++){ analogWrite(3, i); delay(10); } } | Конструкция for используется для повторения операторов, заключенных в фигурные скобки. Например, плавное затемнение светодиода. Заголовок цикла for состоит из трех частей: for (initialization; condition; increment) — initialization выполняется один раз, далее проверяется условие condition, если условие верно, то выполняется приращение increment. Цикл повторяется пока не станет ложным condition. ► Пример использования |
while | void loop() { while (x < 10) { x = x + 1; Serial.println(x); delay(200); } } | Оператор while используется, как цикл, который будет выполняться, пока условие в круглых скобках является истиной. В примере оператор цикла while будет повторять код в скобках бесконечно до тех пор, пока x будет меньше 10. ► Пример использования |
do…while | void loop() { do { x = x + 1; delay(100); Serial.println(x); } while (x < 10); delay(900); } | Оператор цикла do…while работает так же, как и цикл while. Однако, при истинности выражения в круглых скобках происходит продолжение работы цикла, а не выход из цикла. В приведенном примере, при x больше 10 операция сложения будет продолжаться, но с паузой 1000 мс. ► Пример использования |
break continue | switch (x) { case 1: digitalWrite(3, HIGH); case 2: digitalWrite(3, LOW); case 3: break; case 4: continue; default: digitalWrite(4, HIGH); } | Break используется для принудительного выхода из циклов switch, do, for и while, не дожидаясь завершения цикла. Оператор continue пропускает оставшиеся операторы в текущем шаге цикла. ► Пример использования |
Синтаксис | ||
; (точка с запятой) | … digitalWrite(3, HIGH); … | Точка с запятой используется для обозначения конца оператора. Забытая в конце строки точка с запятой приводит к ошибке при компиляции. |
{} (фигурные скобки) | void setup() { pinMode(3, INPUT); } | Открывающая скобка “{” должна сопровождаться закрывающей скобкой “}”. Непарные скобки могут приводить к скрытым и непонятным ошибкам при компиляции скетча. |
// (комментарий) | x = 5; // комментарий | Комментарии используются для напоминания, как работает программа. Они игнорируются компилятором и не экспортируются в процессор, не занимая место в памяти микроконтроллера. |
#define | #define ledPin 3 | Директива #define позволяет дать имя константе. Директива служит исключительно для удобства и улучшения читаемости программы. ► Пример использования |
#include | // библиотека для серво #include <Servo.h> | Директива #include используется для включения сторонних библиотек в скетч. Помните, что директивы #include и #define, не требуют точки запятой. ► Пример использования |
Типы данных | ||
boolean | boolean val = false; | Переменная boolean может принимать значение — true или false. Каждая переменная типа boolean занимает один байт в памяти микроконтроллера. ► Пример использования |
char | // оба значения эквивалентны char val = ‘A’; char val = ’65’; | Тип данных char хранит символьное значение и занимает в памяти 1 байт. Символы пишутся в одинарных кавычках, например: ‘A’, но в памяти символы хранятся в виде чисел. ► Пример использования |
byte | byte val = 255; | byte — без знаковый тип данных для хранения чисел в диапазоне от 0 до 255. Переменная занимает в памяти 1 байт. ► Пример использования |
int | int val = 32767; | Тип данных для хранения целых чисел. Переменная типа int хранит целочисленные 16-битные значения в диапазоне от -32768 до 32767. ► Пример использования |
unsigned int | unsigned int val = 65535; | Переменная типа unsigned int также может хранить двухбайтовые значения. Но вместо отрицательных чисел хранит только положительные значения в большом диапазоне от 0 до 65535. ► Пример использования |
float | float val = 25.1547; | Переменная типа float служит для хранения чисел с десятичным разделителем. Числа с плавающей точкой позволяют более точно описать аналоговые величины, чем целые числа. Точность дробных чисел составляет 6-7 знаков — это общее количество цифр, а не количество цифр после запятой. ► Пример использования |