Как исправить проблемы Arduino в Windows 10

Исправление проблем с Arduino [1]

На загрузку программы на Arduino влияет сразу несколько вещей, и если хотя бы одна из них дает сбой, загрузка будет неуспешной. Вот некоторые из этих факторов: драйверы платы, плата и порт, выбранные в IDE Arduino, физическое подключение к плате, прошивка 8U2 (на Uno и Mega2560), загрузчик на главном микроконтроллере платы, фьюз-настройки микроконтроллера и т.д. Ниже – несколько решений каждой из этих проблем:

IDE Arduino

  • Убедитесь, что выбрали правильную плату в меню Инструменты > Плата (Tools > Board). То есть если вы работаете с Arduino Uno, то выбрать нужно именно ее. Кроме того, новые версии плат Arduino Duemilanove идут с процессором ATmega328, а старые – с ATmega168. Чтобы определить, каким именно процессором оснащена ваша плата, найдите ее микроконтроллер (самый большой чип на плате) и прочтите написанный на нем текст. Более подробно о меню «Плата» читайте в статье об IDE Arduino.
  • Теперь проверьте, правильный ли выбран порт в меню Инструменты > Порт (Tools > Serial Port). Если порт не отображается, попробуйте перезапустить IDE, но плата при этом должна быть подключена к компьютеру. На Mac последовательный порт должен выглядеть примерно так – /dev/tty.usbmodem621 (для Uno или Mega 2560) или /dev/tty.usbserial-A02f8e (для старых плат на базе FTDI). На Linux/dev/ttyACM0 или вроде того (для Uno или Mega2560) или /dev/ttyUSB0 или вроде того (для старых версий). На Windows это будет COM-порт, а какой именно – нужно будет посмотреть в «Менеджере устройств» (под секцией с портами). Если последовательного порта у Arduino не видно, читайте раздел ниже, посвященный драйверам.

Драйверы

Драйверы – это средства, с помощью которых ПО, установленное на вашем компьютере (т.е. IDE Arduino), «общается» с оборудованием, подключенным к вашему компьютеру (т.е. с платой Arduino). В случае Arduino драйверы отвечают за создание виртуального последовательного порта (или виртуального COM-порта). У плат Arduino Uno и Mega 2560 (у которых последовательная передача данных трансформируется в USB-сигнал при помощи контроллера ATmega8U2) для этого используются стандартные драйверы (USB CDC), идущие в комплекте с ОС. У других плат Arduino (где преобразование последовательного сигнала в USB-сигнал осуществляется при помощи FDTI-чипа) для этого используются FDTI-драйверы.

Самый простой способ проверить, правильные ли драйверы установлены для вашей платы – это открыть в IDE Arduino меню Инструменты > Порт (Tools > Serial Port). Причем это надо сделать два раза: первый – когда Arduino будет подключена к компьютеру, и второй – когда не будет. Затем нужно сравнить результаты. Когда Arduino не будет подключена к компьютеру, в меню «Порт» должны появиться дополнительные пункты, имеющие отношение к отключенной Arduino. Какое название будет присвоено последовательному порту Arduino – не важно.

  • Если вы используете Uno или Mega 2560, то на Windows (особенно на 64-битной версии) вам, возможно, придется зайти в «Менеджер устройств» и обновить драйверы. Просто кликните по девайсу правой кнопкой мыши (плата должна быть подключена к компьютеру), а затем снова укажите Windows соответствующий файл с расширением *.inf. Он должен находиться в директории IDE Arduino в папке drivers (но не в подпапке FTDI USB Drivers).
  • Если, устанавливая на Windows XP драйверы к Uno или Mega 2560, вы получаете ошибку The system cannot find the file specified («Система не может найти указанный файл»), попробуйте это решение (т.е. добавьте ключ RunOnce в «HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion»).
  • На Linux платы Uno и Mega 2560 отображаются как /dev/ttyACM0. Однако стандартной версией библиотеки RXTX, которую Arduino использует для последовательной передачи данных, это не поддерживается. Впрочем, Linux-версия IDE Arduino содержит пропатченную версию RXTX-библиотеки, которая умеет искать эти /dev/ttyACM* девайсы. Кроме того, есть еще пакет для Ubuntu (для 11.04), в котором тоже есть поддержка этих девайсов. Если же, однако, вы используете RXTX-пакет из своего дистрибутива, то для того, чтобы в IDE Arduino появился нужный последовательный порт, вам, возможно, придется сделать симлинк от /dev/ttyACM0 к /dev/ttyUSB0 (к примеру).

Чтобы изменения вступили в силу, разлогиньтесь и снова залогиньтесь.

Доступ к последовательному порту

  • Если, когда вы работаете на Windows, IDE Arduino не запускается или тормозит, или если у нее медленно открывается меню «Инструменты», то вам, возможно, надо будет отключить в «Менеджере устройств» последовательные Bluetooth-порты или другие сетевые порты. Дело в том, что IDE Arduino при запуске и открытии меню «Инструменты» сканирует все последовательные (COM) порты на вашем компьютере, и это иногда влечет за собой большие задержки и даже вылеты программы.
  • Убедитесь, что у вас не запущены другие программы для сканирования последовательных портов – вроде ПО для мобильных USB-модемов, синхронизирующих приложений для КПК, драйверов Bluetooth-USB, виртуальных эмуляторов и т.д.
  • Убедитесь, что ваш фаервол не блокирует доступ к последовательному порту. Среди таких фаерволов числится, например, ZoneAlarm.
  • Вам нужно будет выйти из Processing, vvvv и т.д., если вы используете их для чтения данных при USB— или последовательной передаче данных на плату Arduino.
  • На Linux можно попробовать запустить IDE Arduino через root – хотя бы временно, чтобы посмотреть, доступны ли для загрузки какие-нибудь обновления с фиксами.

Физическое соединение

  • Во-первых, убедитесь, что плата включена (если горит зеленый светодиод – значит, включена) и подсоединена к компьютеру.
  • На Arduino Uno и Mega 2560 могут быть проблемы с подключением к Mac через USB-хаб. Если в меню Инструменты > Порт (Tools > Serial Port) ничего не появляется, попробуйте подключить плату к компьютеру напрямую и перезапустить IDE Arduino.
  • Во время загрузки отключите 0-ой и 1-ый цифровой контакты, т.к. они тоже используются для последовательной коммуникации с компьютером (их можно будет снова включить, когда код будет загружен).
  • Попробуйте загрузить код на плату, когда к ней не подключено вообще ничего (кроме USB-кабеля, разумеется).
  • Убедитесь, что плата не касается ничего металлического или токопроводящего.
  • Попробуйте другой USB-кабель. Иногда они не работают.

Автоматический сброс

  • Если ваша плата не поддерживает автоматический сброс, то его необходимо делать вручную за пару секунд до загрузки кода (автоматический сброс поддерживают модели Diecimila, Duemilanove и Nano, а также LilyPad, Pro и Pro Mini с 6-контактной гребенкой).
  • Впрочем, имейте в виду, что на некоторые Diecimila был случайно записан неправильный загрузчик, и вам перед загрузкой придется нажимать на кнопку сброса вручную (см. вопрос о долгой загрузке Diecimila ниже).
  • Кроме того, на некоторых компьютерах кнопку сброса, возможно нужно будет нажать после того, как вы нажмете кнопку загрузки в IDE Arduino. Попробуйте разные интервалы – до 10 секунд и более.
  • Если вы получили ошибку [VP 1] Device is not responding correctly, попробуйте загрузиться снова, т.е. сбросьте плату и еще раз нажмите в IDE Arduino кнопку загрузки.

Загрузчик

  • Убедитесь, что на вашу Arduino записан загрузчик. Чтобы проверить это, сбросьте плату. В ответ на это действие должен заморгать L-светодиод (тот, который подключен к 13-ому контакту). Если не заморгал, то загрузчика на вашей плате может не быть.

Если ничего из вышеописанного не помогает, попробуйте спросить совета на форуме. Перед публикацией поста убедитесь, что ответили в нем на следующие вопросы:

  • Какая у вас операционная система?
  • Какая у вас модель Arduino? Если это Mini, LilyPad или другая плата, требующая дополнительной проводки, если возможно, приложите фото всей этой системы.
  • Проблемы с загрузкой были всегда? Или появились спустя какое-то время после нормальной работы? Если да, то что вы делали с платой перед тем, когда она перестала работать? Какое ПО вы недавно устанавливали или удаляли с компьютера?
  • Какие сообщения отображаются, когда вы пытаетесь загрузить код с включенным «подробным выводом»? Чтобы увидеть их, кликая на кнопку загрузки, зажмите клавишу ⇧ Shift.

Действия по устранению проблем с Arduino в Windows 10

  1. Запустите IDE от имени администратора
  2. Установите драйвер вручную
  3. Изменить дату
  4. Подключите устройство к другому ПК
  5. Установите необходимые сертификаты
  6. Переустановите драйверы Arduino
  7. Проверьте, правильно ли выбрана доска
  8. Включить/выключить режим совместимости
  9. Завершить процесс LVPrcSrv.exe
  10. Запустить Arduino bat файл
  11. Не запускайте Cygwin
  12. Отключить определенные устройства
  13. Проверьте, правильно ли работает ваше устройство

В большинстве случаев вы можете быстро исправить ошибки Windows 10 Arduino, установив последние версии драйверов вручную. Если этот метод не может решить ваши проблемы, попробуйте использовать режим совместимости.

Теперь, если проблема не устранена, просто следуйте инструкциям, перечисленным ниже, и мы уверены, что одно из этих решений поможет вам устранить технические неполадки, с которыми вы столкнулись.

Установка драйвера для CH340

Китайские микросхемы CH340 используется довольно часто благодаря своей низкой стоимости и вполне приемлемому качеству.

В серию микросхем CH340 входят CH340T (мост USB – UART), CH340R (мост USB – IrDA) и CH340G (мост USB – UART). Последняя микросхема является наиболее распространенной и удобной с точки зрения корпуса с меньшим числом выводов.

Установка драйвера CH340

Если в вашей системе отсутствует драйвер, его можно легко установить. Процедура занимает 5 минут и практически никогда не вызывает проблем. Скачать драйвер для CH340 можно по этой ссылке.

Процесс установки драйвера разбивается на несколько шагов:

  • Загрузка драйвера.
  • Распаковка скачанного архива.
  • Найдите папку CH341ER.
  • Запуск исполнительного файла SETUP.EXE.
  • Нажать на кнопку Установить.
  • На этом установка драйвера на компьютер завершена.

CH340 Установка драйвера CH340 Установка драйвера CH340 Установка драйвераCH340 Установка драйвера

Характеристики CH340

Микросхема обладает следующими характеристиками и возможностями:

  • Не нужно большое количество внешних компонентов, требуются только кварцевый резонатор и 4 конденсатора.
  • Создание виртуального последовательного порта.
  • Возможность применения всех приложений для COM-портов.
  • Работает с сигналами уровней 5 и 3,3В.
  • Выполнена в удобном корпусе SO-16 с малым количеством выводов и небольшим числом внешних компонентов.
  • Поддержка полной скорости спецификации USB0.
  • Наличие встроенного буфера типа FIFO.
  • Поддержка всех стандартных режимов передачи данных.
  • Поддержка симплексного, полудуплексного, дуплексного асинхронных режимов обмена.
  • Поддержка интерфейсов RS23, RS422, RS485.
  • Рабочие температуры лежат в диапазоне от -40С до 85 С.

Распиновка микросхемы CH340G представлена на рисунке.

Распиновка

На плате обозначены следующие контакты:

2 – TXD сигнал UART.

3 – RXD сигнал UART.

4 – напряжение питания.

5 – UD+ сигнал USB.

6 – UD- сигнал USB.

7 – XI вход для кварцевого резонатора и конденсатора.

8 – XO выход для кварцевого резонатора и конденсатора.

9 – CTS сигнал UART.

10 – DSR сигнал UART.

11 – RI сигнал UART.

12 – DCD сигнал UART.

13 – DTR сигнал UART.

14 – RTS сигнал UART.

15 – Включение инверсии входа RXD.

Микросхема эмулирует работу последовательного порта. Все приложения работают с конвертером интерфейса CH340G без изменения кода.

Чип FTDI для Arduino

Шотландская фирма FTDI занимается разработкой аппаратных мостов “USB-UART” и “USB-FIFO”. Производство началось с запуска и продажи схем FT8U232 и FT8U245, которые в итоге стали очень популярными и востребованными на рынке устройств с USB. Эти виды микросхем имели всего лишь 1 режим работы и огромное количество дополнительных внешних элементов.

Следующим поколением аппаратных мостов были микросхемы FT232B и FT245B. В них добавился новый режим работы BitBang, также появилась возможность реализации восьми независимых линий ввода-вывода. Помимо этого была изменена схемотехника кристалла.

С 2006 года начался выпуск микросхем FT232R и FT245R, в которых были интегрированы на кристалл энергонезависимая память, тактовый генератор и другие компоненты. Основными преимуществами микросхемы FT232RL являются хорошая функциональность, легкость монтажа и минимальная обвязка. Распиновка модуля представлена на рисунке ниже.

Arduino USB UART чипы и драйвера CH340, CH340G, FTDI

Характеристики микросхемы FT232R:

  • Одночиповый переходник USB-UART.
  • Поддержка режимов передачи 7и 8 бит данных, 1 и 2 стоповых бита.
  • Бесплатные драйверы VCP и D2XX.
  • Скорость передачи 300 бод – 3 мегабод для RS422.
  • Наличие встроенного идентификационного номера.
  • Настраиваемые выходы CBUS.
  • Вывод состояния приема и передачи на внешние светодиоды.
  • Наличие буферов FIFO для высокоскоростного приема/передачи данных.
  • Усовершенствованный режим bit bang.
  • Встроенная память EEPROM на 1024 байт.
  • Наличие встроенного стабилизатора напряжения на 3.3 В и для внешних сигналов от 1,8 до 5В.
  • Высокая нагрузочная способность.
  • Малое потребление энергии.
  • Совместима с USB 2.0 Full Speed.
  • Температурный диапазон от -40С до 85С.

Микросхема предоставляется с заранее запрограммированной памятью EEPROM, поэтому дополнительное программирование энергонезависимой памяти перед началом работы не требуется.

Чип ATMEGA16U2/8U2 для ардуино

Чипы ATMEGA16U2/8U2 используются в качестве моста между USB-портом и последовательным портом. Версия платы ATmega8u2 использовалась для предыдущих плат Ардуино Uno и Mega.

Технические характеристики чипа ATMEGA16U2:

  • Процессор AVR.
  • Высокая производительность, низкая мощность.
  • Размер ядра 8-бит.
  • Подключение SPI, UART/USART, USB.
  • Количество контактов 32.
  • Скорость ЦПУ 16 МГц.
  • 512 б ОЗУ.
  • 512 б энергонезависимой памяти.
  • 22 программируемых линии ввода-вывода.
  • Интегрированный аналоговый компаратор.
  • Объем флеш-памяти 16 Кб.
  • Размер EEPROM 512х8.
  • Напряжение от 2,7В до 5,5В.
  • Рабочие температуры от -40С до 85С.

Контроллер ATmega8u2 в своей прошивке уже имеет установленные USB COM драйвера, поэтому установка дополнительных не требуется.

Характеристики ATmega8u2:

  • Диапазон напряжений от 2,7В до 5,5В.
  • 32 вывода.
  • Скорость ЦПУ 16 МГц.
  • Объем флеш-памяти 8Кб.
  • Поддержка встроенных интерфейсов I2C, SPI, UART, USART.
  • Размер ядра 8 бит.
  • Несколько режимов работы – холостой ход, энергосберегающий режим, режим ожидания, расширенный режим ожидания и выключение питания.
  • Возможность внешнего и внутреннего прерывания.
  • 22 программируемых линии ввода-вывода.
  • 512 б энергонезависимой памяти.
  • 512 б ОЗУ.
  • Рабочие температуры от -40С до 85С.

Ошибка: expected initializer before ‘>’ token / expected ‘;’ before ‘>’ token

Сообщение expected initializer before ‘>’ token говорит о том, что вы, наоборот где-то забыли открыть фигурную скобку. Arduino IDE даст вам подсказку, но если скетч довольно большой, то вам придется набраться терпения, чтобы найти неточность в коде. Ошибка при компиляции программы: expected ‘;’ before ‘>’ token говорит о том, что вы забыли поставить точку с запятой в конце командной строки.

Что за ошибка? Arduino IDE обнаружила в скетче слова, не являющиеся служебными или не были объявлены, как переменные. Например, вы забыли продекларировать переменную или задали переменную ‘DATA’, а затем по невнимательности используете ‘DAT’, которая не была продекларирована. Ошибка was not declared in this scope возникает при появлении в скетче случайных или лишних символов.

Ошибка Ардуино: was not declared in this scope

Ошибка Ардуино: was not declared in this scope

Например, на скриншоте выделено, что программист забыл продекларировать переменную ‘x’, а также неправильно написал функцию ‘analogRead’. Такая ошибка может возникнуть, если вы забудете поставить комментарий, написали функцию с ошибкой и т.д. Все ошибки также будут подсвечены, а при нескольких ошибках в скетче, сначала будет предложено исправить первую ошибку, расположенную выше.

Invalid Device Signature Error (ошибка подписи)

Ошибка подписи при работе с платой Arduino

Эта ошибка возникает при попытке загрузки кода программы в плату Arduino, тип которой отличается от той платы, которую вы выбрали в настройках Arduino IDE. Ошибка возникает из-за того, что подпись устройства (device signature) на используемой плате отличается от подписи того типа платы, которую вы выбрали в Arduino IDE.

Решение

Выбрать правильный тип платы Arduino в настройках Arduino IDE. Если это не помогает, то можно попробовать прошить плату последней версией загрузчика Arduino (Arduino bootloader).

Ошибки компиляции

Возникает на этапе компиляции прошивки. Ошибки компиляции вызваны проблемами в коде прошивки.

  • В некоторых случаях ошибка возникает при наличии кириллицы (русских букв) в пути к папке со скетчем. Решение: завести для скетчей отдельную папочку в корне диска с английским названием.
  • В чёрном окошке в самом низу Arduino IDE можно прочитать полный текстошибки и понять, куда копать.
  • В скачанных с интернета готовых скетчах часто возникает ошибка с описанием название_файла.h no such file or directory. Это означает, что в скетче используется библиотека , и нужно положить её в Program Files/Arduino/libraries/. Ко всем моим проектам всегда идёт папочка с использованными библиотеками, которые нужно установить. Также библиотеки всегда можно поискать в гугле по название файла.
  • При использовании каких-то особых библиотек, методов или функций, ошибкой может стать неправильно выбранная плата в “Инструменты/плата“. Пример: прошивки с библиотекой Mouse.h или Keyboard.h компилируются только для Leonardo и Micro.
  • Если прошивку пишете вы, то любые синтаксические ошибки в коде будут подсвечены, а снизу в чёрном окошке можно прочитать более детальное описание, в чём собственно косяк. Обычно указывается строка, в которой сделана ошибка, также эта строка подсвечивается красным.
  • Иногда причиной ошибки бывает слишком старая, или слишком новая версия Arduino IDE. Читайте комментарии разработчика скетча
  • Ошибка недостаточно свободного места возникает по вполне понятным причинам. Возможно поможет урок по оптимизации кода.

Частые ошибки в коде, приводящие к ошибке компиляции

  • expected ‘,’ or ‘;’ – пропущена запятая или точка запятой на предыдущей строке
  • stray ‘320’ in program – русские символы в коде
  • expected unqualified-id before numeric constant – имя переменной не может начинаться с цифры
  • … was not declared in this scope – переменная или функция используется, но не объявлена. Компилятор не может её найти
  • redefinition of … – повторное объявление функции или переменной
  • storage size of … isn’t known – массив задан без указания размера

Запуск Arduino IDE:

При первом запуске программы может появиться сообщение Брандмауэра Windows о блокировке доступа для некоторых сетевых функций Java Arduino IDE:

Разрешите доступ нажав на кнопку «Разрешить доступ». После чего, данное окно появляться не будет.

Откроется окно программы Arduino IDE:

На следующем рисунке указано назначение областей и функциональных кнопок программы:

Теперь можно написать скетч (код) и загрузить (залить/прошить) его в Arduino. Но перед этим, надо подключить плату Arduino к компьютеру и указать программе Arduino IDE, какую именно плату Arduino Вы подключили, и к какому порту.

Подключение платы Arduino:

После того как Вы подключите плату Arduino через USB порт к компьютеру, программе Arduino IDE нужно указать, какую именно плату Arduino Вы подключили. Для этого выберите нужную плату из списка в разделе меню « Инструменты > Плата > Название Вашей платы », как это показано на следующем рисунке:

Теперь нужно выбрать Com-порт к которому подключена Ваша плата Arduino. Для этого выберите нужный Com-порт из списка доступных Com-портов в разделе меню « Инструменты > Порт > Номер доступного порта », как это показано на следующем рисунке:

Если USB контроллер Вашей платы Arduino реализован на чипе FTDI или ему аналогичных, то в списке доступных Com-портов Вы не увидите название платы Arduino в скобках напротив Com-порта. В нашем случае Вы бы увидели просто «COM1» и «COM7», тогда возникает вопрос, а к какому из этих портов подключена плата Arduino?

Решается данный вопрос очень просто. Отключите плату Arduino от компьютера и откройте меню « Инструменты > Порт » . В списке Com-портов Вы увидите только доступные Com-порты, то есть в нашем случае только «COM1». Теперь подключите плату Arduino к компьютеру и опять откройте меню « Инструменты > Порт » . Теперь Вы увидите что список Com-портов увеличился на один (в нашем случае к «COM1» добавился «COM7»), именно к появившемуся Com-порту и подключена Ваша плата Arduino.

Если при подключении платы Arduino Вы не увидели появление нового Com-порта, значит USB контроллер Вашей платы Arduino реализован на чипах сторонних производителей и для него требуется установить дополнительный драйвер. Как, например, драйвер для чипа CH340G.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector