Примеры
Готовые схемы: кнопка и светодиод, дисплей, датчики, сервопривод — открываются в лаборатории.
C++
Переменные
Что помещается в переменную каждого типа — целое, дробное, символ, «да/нет», — и что бывает, когда значение в неё не влезает.
Arduino
Комбинированные примеры: датчик и исполнитель вместе — например, сервопривод, которым управляет потенциометр.
Кнопка и светодиод
Один вход и один выход: кнопка на D2 с подтяжкой 10 кОм к +5 В, светодиод на D13 через резистор 220 Ом. Отсюда видно, почему нажатая кнопка читается как LOW.
Потенциометр и сервопривод
Крутилка на A0 задаёт угол, сервопривод на D9 его отрабатывает. analogRead даёт 0…1023, map переводит в градусы, а длину импульса считает библиотека Servo.
Опрос датчиков
Как подключить датчик и прочитать его: температура, влажность, расстояние, время, RFID-карты.
Термометр DS18B20 (1-Wire)
Данные по одному проводу (D3) и обязательный резистор 4,7 кОм к +5 В — без него шина молчит. Температуру датчика крутят ползунком в инспекторе.
Датчик DHT-22: температура и влажность
Три провода, вывод DATA на D2 с подтяжкой 10 кОм. Датчик отвечает не чаще раза в две секунды, а без подключённого DATA возвращает NAN — это ловится через isnan().
Дальномер HC-SR04
TRIG на D9 и ECHO на D10 — оба обязательны. Расстояние меряется длиной импульса: pulseIn возвращает микросекунды, а путь звука двойной, отсюда деление на 58.
Часы реального времени DS3231
Та же шина I2C, что у дисплея: SDA на A4, SCL на A5, адрес 0x68. Время модуль держит сам, от батарейки, поэтому adjust() зовут один раз, а не в каждом setup().
Считыватель карт RFID MFRC522
Шина SPI: общие SCK, MOSI и MISO плюс личные SS (D10) и RST (D9). Питание только 3,3 В. Карты подносят кнопкой в инспекторе модуля.
Управление
Как управлять нагрузкой: светодиоды, дисплеи, моторы, реле.
Дисплей LCD 1602 по I2C
Четыре провода вместо шестнадцати: GND, +5 В, SDA на A4 и SCL на A5. Адрес 0x27 записан и в скетче, и в инспекторе модуля — не совпадут, экран останется пустым.
Адресная лента WS2812
Один провод данных на всю ленту (D6). Главное правило: setPixelColor только готовит цвет, а зажигает его show() — забыли show, лента не изменится.