Функции и типы данных
Основные функции и типы данных
/* */
Многострочный комментарий
/* этот код не 
компилируется */

//
Однострочный комментарий
// этот код
// не компилируется

;
Ставится в конце каждого действия

void setup() {}
 Функция, содержимое которой выполняется один раз при запуске микроконтроллера

void loop() {}
 Функция, содержимое которой выполняется (или пытается выполняться) “по кругу” на протяжении всего времени работы МК

#include
 Директива, позволяющая подключать в проект дополнительные файлы с кодом.
#include <Servo.h>  // подключает библиотеку Servo.h

В чём отличие <> и “”? Когда указываем название “в кавычках”, компилятор сначала ищет файл в папке со скетчем, а затем в папке с библиотеками. При использовании <галочек> компилятор ищет файл только в папке с библиотеками

#define
 Директива, дающая команду препроцессору заменить указанное название на указанное значение. Чаще всего таким образом объявляют константы:

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

delay(time)
“Приостанавливает” выполнение кода на time миллисекунд. Дальше функции delay выполнение кода не идёт, за исключением прерываний. Использовать рекомендуется только в самых крайних или тех случаях, когда delay не влияет на скорость работы устройства. time принимает тип данных unsigned long и может приостановить выполнение на срок от 1 мс до ~50 суток (4 294 967 295 миллисекунд) с разрешением в 1 миллисекунду. Работает на системном таймере Timer 0
Serial.begin(speed)
Запустить связь по Serial на скорости speed (baud rate, бит в секунду). Список скоростей для монитора порта Arduino IDE:
9600 – для Arduino Uno
115200 – для ESP32 

Serial.print(val), Serial.print(val, format)
Отправляет в порт значение val – число или строку. В отличие от write выводит именно символы, т.е. отправив 88 вы получите 88: Serial.print(88); выведет 88.
Serial.print(78);        // выведет 78
Serial.print(1.23456);   // 1.23 (умолч. 2 знака)
Serial.print('N');       // выведет N
Serial.print("Hello world."); // Hello world. 
Serial.print("i have " + String(50) + " apples"); // выведет строку «i have 50 apples»

if, else if, else
Оператор сравнения и его друзья
// при выполнения одного действия {} необязательны
if (a > b) c = 10;  // если a больше b, то c = 10
else c = 20;        // если нет, то с = 20
Операторы
Арифметические
Арифметические операторы – самые простые и понятные из всех
"=" присваивание
"%" остаток от деления
"*" умножение
"/" деление
"+" сложение
"–" вычитание

Сравнение и логика
"==" равенство (a == b)
"'!='" неравенство (a != b)
">=" больше или равно
"<=" меньше или равно
">" больше
"<" меньше
Типы данных, переменные