Подготовка к обновлению кода
Проверьте установку и настройку Arduino IDE

Например, если вы используете Arduino Uno с USB-последовательным адаптером на базе CH340 в Windows, и порт не отображается в IDE, вы можете загрузить драйверы CH340 с веб-сайта производителя. После установки перезагрузите компьютер, и порт должен быть обнаружен.
Аппаратные соединения

Выберите правильную плату и порт

Пошаговое руководство по обновлению кодекса совета директоров
Напишите или откройте свой эскиз
«Скетч» — это название, которое Arduino дает своим файлам кода. Начните с создания нового скетча (для этого нажмите кнопку «New» на панели инструментов, которая выглядит как чистая страница, или перейдите в меню File > New). Если у вас уже есть проект, над которым вы хотите работать, откройте существующий (нажмите кнопку «Открыть», похожую на значок папки, или перейдите в меню «Файл» > «Открыть»). Для тех, кто хочет использовать конкретный пример для понимания процесса загрузки кода, рассмотрите этот настраиваемый код мигания светодиода. При создании нового скетча вставьте следующее:

void setup() {
// put your setup code here, to run once:
pinMode(5, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(5, HIGH);
delay(300);
digitalWrite(5, LOW);
delay(300);
}
setup конфигурирует вывод 5 как выход, позволяя ему подавать ток. Функция loop Функция многократно устанавливает вывод 5 в HIGH (создавая напряжение 5 В и включая светодиод) на 300 миллисекунд, а затем на LOW (0 В, выключая светодиод) еще на 300 миллисекунд.setup() Функция запускается один раз при включении или сбросе платы, устанавливая подключенный к светодиоду вывод 5 в качестве выхода. loop() Функция выполняется непрерывно, создавая эффект мигания. Этот настраиваемый пример идеально подходит для проверки того, что ваша плата и подключенная схема реагируют на загрузку кода, предлагая персонализированный вариант традиционного примера Blink с конкретной конфигурацией на основе выводов для нужд вашего проекта.Скомпилировать эскиз (проверить)

Я помню, когда только начинал изучать Arduino, я допустил простую ошибку, не поставив точку с запятой в конце строки в своем коде. Когда я нажал кнопку «Проверить», IDE сразу же указала на ошибку, выделив строку, в которой возникла проблема. Мне понадобилось несколько минут, чтобы найти пропущенную точку с запятой, но после исправления компиляция прошла успешно.
Загрузите код на плату
Проверка функциональности
Общие проблемы и устранение неполадок
«Порт не найден» или ошибки последовательного порта
- Подключите USB-кабель заново и попробуйте другой порт. Иногда соединение может быть неплотным, или сам порт может иметь проблемы. Например, однажды я потратил час на устранение ошибки «порт не найден», только чтобы понять, что USB-кабель был не полностью вставлен. Простое повторное подключение решило проблему.
- Установите или обновите драйверы: используйте официальные драйверы Arduino или, для плат сторонних производителей, загрузите драйверы конкретного производителя (например, драйверы Silicon Labs CP2102 для ESP32). Если вы используете плату ESP32 с мостом Silicon Labs CP2102 USB-UART, и порт не обнаруживается, загрузка и установка последних драйверов CP2102 может решить проблему.
- В macOS/Linux убедитесь, что у вас есть разрешение на доступ к последовательным портам (запустите ls /dev/tty*, чтобы отобразить список портов и проверить разрешения). В некоторых случаях у пользователя может не быть необходимых разрешений для доступа к последовательному порту. Вы можете добавить своего пользователя в группу dialout (в Linux) или соответствующим образом настроить разрешения, чтобы получить доступ.
Ошибки компиляции: «неопределенная ссылка» или «ожидается ‘;’ перед…»
- Дважды проверьте наличие опечаток, отсутствующих скобок или неправильных включений библиотек. Простая опечатка, такая как написание int main() вместо void setup() в эскизе Arduino, может привести к ошибкам компиляции. Кроме того, убедитесь, что все скобки, квадратные скобки и фигурные скобки правильно сопоставлены.
- Убедитесь, что все используемые библиотеки установлены через Sketch > Include Library > Manage Libraries (для внешних библиотек) или являются частью основных библиотек Arduino. Если вы используете библиотеку, такую как библиотека DHT для датчиков температуры и влажности, и получаете ошибку «undefined reference», связанную с функциями в этой библиотеке, вероятно, библиотека установлена некорректно или не включена должным образом в ваш скетч.
Сбой в процессе загрузки (например, «Загрузка… 10%»)
- Нажмите кнопку сброса на плате сразу после того, как IDE начнет загрузку (в консоли появится надпись «Uploading»). Это переведет плату в режим загрузчика, который принимает новый код. Многие платы Arduino требуют, чтобы загрузчик находился в правильном состоянии для приема загрузки. Нажав кнопку сброса в нужное время, вы можете убедиться, что плата готова принять новый код.
- Временно отключите антивирусное программное обеспечение или брандмауэр, так как они могут мешать последовательной связи. Некоторые программы безопасности могут блокировать последовательную связь между IDE и платой Arduino, считая ее потенциальной угрозой безопасности. Временное отключение такого программного обеспечения часто может решить проблему загрузки.
- Для более старых плат, таких как Arduino Uno, убедитесь, что загрузчик не поврежден; перезапишите его с помощью Tools > Burn Bootloader (в некоторых случаях требуется внешний программатор). Если загрузчик на вашей плате Arduino Uno поврежден, вам может потребоваться его перезапись. В некоторых случаях для выполнения этой задачи потребуется внешний программатор, такой как AVRISP mkII.
Код запускается на короткое время, но не сохраняется
- Убедитесь, что во время загрузки были выбраны правильная плата и порт — случайный выбор неправильной платы (например, Uno вместо Mega) может вызвать эту проблему. Если у вас подключено несколько плат Arduino или вы недавно сменили плату, с которой работаете, легко выбрать неправильную плату в IDE. Дважды проверьте настройки платы и порта, чтобы убедиться, что вы загружаете на правильное устройство.
- Убедитесь, что ваш скетч сохранен и загружен правильно; иногда несохраненные изменения приводят к использованию устаревшего кода. Однажды я долго пытался понять, почему мой код не работал как ожидалось после перезагрузки, и только потом понял, что я внес изменения в код, но не сохранил их перед загрузкой. Всегда сохраняйте скетч перед попыткой загрузки.
Лучшие практики для эффективного обновления кода
Чтобы оптимизировать рабочий процесс и минимизировать ошибки, воспользуйтесь следующими проверенными стратегиями:
Используйте контроль версий для эскизов
Отслеживайте изменения кода с помощью таких инструментов, как Git, особенно для сложных проектов. Это позволит вам вернуться к рабочим версиям, если новая загрузка вызовет проблемы. Git — это распределенная система контроля версий, которая стала стандартом для разработчиков по всему миру. Инициализировав репозиторий Git в папке вашего проекта Arduino, вы сможете записывать каждое изменение, которое вносите в код.
Например, если вы работаете над сложным проектом домашней автоматизации с несколькими датчиками и исполнительными механизмами, управляемыми Arduino, и только что добавили новую функцию, которая приводит к сбоям в работе системы, вы можете легко вернуться к предыдущему рабочему состоянию кода. Вы можете просмотреть историю коммитов, которая показывает все внесенные изменения, кто их внес и когда. Это помогает не только в отладке, но и в сотрудничестве с другими разработчиками. Если вы работаете в команде, каждый член команды может вносить свой вклад в кодовую базу, а Git будет управлять всеми изменениями, гарантируя, что все работают с последней и правильной версией кода.
Обновляйте библиотеки и IDE
Аналогичным образом, библиотеки играют важную роль в проектах Arduino. Они предоставляют заранее написанный код для различных функций, таких как связь с датчиками или управление двигателями. Однако, если библиотека устарела, она может не работать правильно с последней версией платы Arduino или IDE. Например, если вы используете библиотеку DHT для считывания температуры и влажности с датчика DHT, старая версия библиотеки может быть несовместима с последними моделями датчиков DHT. Встроенный менеджер библиотек в Arduino IDE упрощает обновление библиотек. Вы можете просто перейти в Sketch > Include Library > Manage Libraries, найти библиотеку, которую хотите обновить, и нажать кнопку «Update».
Сначала протестируйте с минимальным кодом
Документируйте свою настройку
Обновление кода на сторонних форумах
Многие производители используют неофициальные платы Arduino (например, ESP8266, ESP32, STM32). Процесс немного отличается из-за дополнительных настроек:
Добавить пакеты поддержки платы
Для плат сторонних производителей необходимо добавить их пакеты поддержки в IDE. Для платы ESP8266 перейдите в меню «Файл» > «Настройки» в Arduino IDE. Здесь вы найдете поле с названием «Дополнительные URL-адреса диспетчера плат». Вставьте URL-адрес репозитория платы в это поле.
Для ESP8266 URL-адрес:
http://arduino.esp8266.com/stable/package_esp8266com_index.json.
Если вы работаете с платой ESP32, URL-адрес будет следующим:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
Если в этом поле уже есть другие URL-адреса (например, если вы используете несколько сторонних досок), разделите их запятыми.
После добавления URL-адреса перейдите в меню «Инструменты» > «Плата» > «Диспетчер плат». В диспетчере плат доступна строка поиска. Введите название используемой платы, например «esp8266» или «esp32». Найдя нужный пакет, нажмите «Установить», чтобы добавить необходимые файлы поддержки в Arduino IDE. Этот шаг очень важен, так как он позволяет IDE распознавать неофициальную плату и взаимодействовать с ней, предоставляя правильные настройки компиляции и библиотеки, специфичные для этой платы.



