Arduino
Arduino с нуля: плата и Arduino IDE, первая программа, светодиод и кнопка, датчики, сервоприводы и моторы, монитор порта и время без delay — на Arduino Uno и Nano.
Arduino — небольшие платы с микроконтроллером и бесплатная программа Arduino IDE, в которой для них пишут программы. Микроконтроллер — маленький компьютер в одной микросхеме: процессор, память и выводы, к которым подключают светодиоды, кнопки, датчики, моторы и дисплеи. Программа загружается в плату по USB и дальше работает сама, без компьютера, — пока на плату подано питание.
Схемы плат Arduino открыты, поэтому кроме оригинальных плат продаётся много совместимых — они программируются так же. Курс построен на самых распространённых платах Arduino Uno и Arduino Nano: обе на микроконтроллере ATmega328P, программы для одной почти всегда без изменений работают на другой.
Где применяется
- Обучение: школьные кружки робототехники, лабораторные работы, первые шаги в электронике и программировании.
- Самоделки: метеостанция, автополив, ночник с датчиком движения, часы, сигнализация на дверь, умная кормушка.
- Роботы и машинки: моторы, сервоприводы, датчики расстояния и линии.
- Макеты устройств: прежде чем заказывать свою плату, схему проверяют на Arduino.
Что нужно для начала
- Плата Arduino Uno или Nano (или совместимая) и USB-кабель к ней — именно для передачи данных, а не только для зарядки.
- Компьютер с Windows, macOS или Linux и программа Arduino IDE 2 — она бесплатна.
- Макетная плата, провода-перемычки, светодиоды, резисторы, кнопки — всё это есть в любом стартовом наборе.
Паяльник на старте не нужен: детали вставляются в макетную плату. Опыт программирования тоже не обязателен — скетчи (так называют программы для Arduino) в курсе короткие и разобраны построчно. Пишутся они на языке C++ с готовыми функциями Arduino: pinMode, digitalWrite, delay и другими. Когда захочется глубже разобраться в переменных, условиях и функциях, загляните в курс C++.
Безопасность
Плата работает от 5 В — это безопасно для человека. Опасны другие вещи: сеть 230 В, мощные аккумуляторы и моторы.
Не подключайте к Arduino сеть 230 В (розетку, лампу, обогреватель через реле), пока нет опыта и знаний по электробезопасности: ошибка в такой схеме может убить или вызвать пожар. Учитесь на низком напряжении — светодиодах, лентах на 5–12 В, маленьких моторах.
Моторы и всё, что потребляет заметный ток, подключаются только через драйвер или транзистор и с отдельным питанием — вывод платы рассчитан на ток в десятки миллиампер, а мотору нужны сотни.
Как пройти курс
Уроки идут по порядку: от того, что такое Arduino, до программ, которые делают несколько дел одновременно. Повторяйте каждый пример на своей плате: собранная своими руками схема запоминается лучше прочитанной. После урока — несколько вопросов, в конце курса — итоговый тест. В справочнике — короткие ответы на частые вопросы: плата не определяется, ошибка загрузки, какой резистор нужен светодиоду, как подключить дисплей или датчик.
Курс с нуля
- 1.Что такое Arduino и что купить для началаЧто такое микроконтроллер и плата Arduino, из чего состоит Arduino Uno, чем отличаются платы и какой набор деталей взять для первых опытов.
- 2.Arduino IDE — установка и первая загрузка скетчаКак скачать и установить Arduino IDE 2 в Windows, macOS и Linux, выбрать плату и порт, проверить и загрузить скетч, где искать примеры и сообщения об ошибках.
- 3.Первая программа Blink — мигание светодиодомРазбор скетча Blink строка за строкой: функции setup и loop, pinMode, digitalWrite, delay, комментарии и частые ошибки; свой скетч с сигналом SOS.
- 4.Электричество для начинающих — напряжение, ток, резисторНапряжение, ток и сопротивление на пальцах, закон Ома, расчёт резистора для светодиода с цифрами, цветовая маркировка, устройство макетной платы и первая схема со светодиодом.
- 5.Монитор порта — Serial.begin и Serial.printlnКак плата передаёт текст на компьютер и принимает команды: Serial.begin, print и println, скорость обмена, Serial.available и Serial.read, плоттер графиков и отладка скетча.
- 6.Кнопка — digitalRead и подтяжка INPUT_PULLUPКак подключить кнопку к Arduino и прочитать её digitalRead, зачем нужна подтяжка и как работает INPUT_PULLUP, как переключать светодиод нажатием и бороться с дребезгом контактов.
- 7.Аналоговые входы и ШИМ — analogRead и analogWriteКак Arduino измеряет напряжение на входах A0–A5 функцией analogRead, как подключить потенциометр, что такое ШИМ и как analogWrite плавно меняет яркость светодиода; функция map.
- 8.Датчики и библиотекиКакие бывают датчики для Arduino и как их подключать: датчик расстояния HC-SR04 без библиотек, установка библиотеки через Library Manager и датчик температуры DHT11 с библиотекой; что такое I2C.
- 9.Сервоприводы и моторыКак управлять сервоприводом библиотекой Servo, почему мотор нельзя подключать к выводу напрямую, как подключить мотор через драйвер и отдельное питание, что такое шаговый двигатель.
- 10.millis вместо delay — несколько дел одновременноПочему delay останавливает весь скетч, как по millis мигать без остановки, вести несколько дел сразу и читать кнопку без пропусков; переполнение millis и тип unsigned long.
Справочник
- Arduino не определяется компьютером — нет порта, драйвер CH340Что делать, если компьютер не видит Arduino и в Arduino IDE нет порта: кабель, драйвер CH340 в Windows, права и brltty в Linux, проверка в диспетчере устройств.
- Как питать Arduino — USB, VIN, гнездо, батарейкиЧем питать Arduino Uno и Nano без компьютера: USB и повербанк, гнездо и вывод VIN на 7–12 В, вывод 5V, батарейки и аккумуляторы; почему греется стабилизатор и как питать моторы.
- Как подключить датчик расстояния HC-SR04Подключение ультразвукового датчика расстояния HC-SR04 к Arduino, скетч с pulseIn и формулой расстояния, почему датчик показывает 0 или скачет и как с ним работать на платах 3,3 В.
- Как подключить датчик температуры DHT11, DHT22 или DS18B20Подключение и скетчи для датчиков температуры DHT11, DHT22 и DS18B20 к Arduino: какие библиотеки поставить, какой резистор нужен, что значат nan, -127 и 85 градусов.
- Как подключить дисплей LCD 1602 по I2C к ArduinoПодключение дисплея LCD 1602 с переходником I2C к Arduino Uno и Nano четырьмя проводами, библиотека LiquidCrystal I2C, поиск адреса 0x27 или 0x3F, контраст и частые проблемы.
- Как подключить кнопку к ArduinoСамая простая схема кнопки с INPUT_PULLUP без резисторов, вариант со стягивающим резистором 10 кОм, какие ножки тактовой кнопки использовать и почему кнопка срабатывает сама.
- Как подключить светодиод к ArduinoСхема подключения светодиода к Arduino через резистор, полярность ножек, скетч для включения и плавной яркости, что делать, если светодиод не горит.
- Как сделать задержку без delay — millisГотовый шаблон задержки на millis вместо delay для Arduino: действие раз в N миллисекунд без остановки скетча, однократная задержка после события и частые ошибки с типами.
- Как управлять сервоприводом с ArduinoПодключение сервопривода SG90 к Arduino, скетч с библиотекой Servo, поворот на заданный угол и с потенциометра, питание и почему серво дёргается или перезагружает плату.
- Как установить библиотеку в Arduino IDEУстановка библиотеки в Arduino IDE 2 через менеджер библиотек и из ZIP-архива, подключение через include, примеры библиотеки и ошибка No such file or directory.
- Какой резистор нужен для светодиодаФормула расчёта резистора для светодиода и готовые номиналы для Arduino на 5 В и 3,3 В: красный, жёлтый, зелёный, синий и белый, с проверкой тока и мощности.
- Непонятные символы в мониторе порта ArduinoПочему в Serial Monitor Arduino IDE вместо текста кракозябры, вопросительные знаки или пусто: скорость порта, русские буквы, выводы 0 и 1, перезагрузка платы и плохое питание.
- Ошибка avrdude stk500_recv() programmer is not respondingПочему Arduino Uno или Nano не загружается с ошибкой avrdude programmer is not responding или not in sync, и что проверить по порядку: порт, плата, Old Bootloader, выводы 0 и 1.
- Ошибка was not declared in this scope в Arduino IDEПочему при компиляции скетча Arduino пишет was not declared in this scope: регистр букв, забытая библиотека, переменная внутри другой функции, лишняя скобка и плата не того типа.
- Чем отличаются Arduino Uno и NanoСравнение Arduino Uno и Nano: одинаковый микроконтроллер ATmega328P, разные размеры, разъёмы, число аналоговых входов и питание; что выбрать для учёбы и для готового устройства.
- Что такое ШИМ (PWM) в ArduinoЧто такое ШИМ простыми словами, скважность и частота, какие выводы Arduino Uno и Nano умеют ШИМ, как работает analogWrite и где ШИМ подходит, а где нет.
Официальная документация
- Документация Arduino: платы, уроки, библиотеки — https://docs.arduino.cc/
- Справочник языка Arduino: функции, переменные, структура скетча — https://docs.arduino.cc/language-reference/
- Arduino IDE — официальная страница загрузки — https://www.arduino.cc/en/software