Ошибка компиляции Arduino Nano: примеры, решения
Одна из самых неприятных ошибок – это ошибка компиляции для платы Аrduino Nano, с которой вам придется столкнуться не раз.
Давайте сначала разберемся с тем, что происходит внутри ардуино, когда мы решаем изменить внутреннюю программу, управляющую им.
Что происходит, когда мы жмем кнопку «Загрузить»
Плата Ардуино – это микроконтроллер AVR (Atmega8/168/328 или Atmega1280/2560), который прошивается загрузчиком. В микроконтроллер записывается программа, называемая прошивкой, которая позволяет получать сигналы с датчиков, обрабатывать нажатия кнопок, общаться с различными устройствами через интерфейсы, управлять исполнительными процессами.
Обычно прошивка записывается в кристалл микроконтроллера при помощи специальных устройств, называемых программаторами. Для разных микроконтроллеров существуют различные программаторы – от специализированных до универсальных. Важным отличием Ардуино от других контроллеров является возможность залить прошивку через обычный USB кабель. Это достигается при помощи специальной программы – загрузчика (Bootloader). Для прошивки не требуются лишние провода, не нужно подключать дополнительные устройства или нажимать что-то на плате. Также при работе через загрузчик нельзя добраться до опасных настроек, которые выведут из строя Ардуино.
При подключении платы Ардуино к источнику питания, внутри него начинается активная деятельность микропрограмм. При запуске микроконтроллера управление получает загрузчик. Первые 2 секунды он проверяет, поступил ли новый код от пользователя. Кроме того загрузчик подает импульсы на пин, к которому подключен светодиод, и он начинает мигать. Это означает, что загрузчик установлен и работает исправно. Когда подается скетч, загрузчик записывает его во флеш-память микроконтроллера. Затем эта программа подается на выполнение. Если данные не поступили, загрузчик запускает предыдущую программу. Во время выполнения программы внутри Ардуино выполняется ряд операций по инициализации и настройке среды окружения, и только после этого начинается выполнение кода.
Вызов setup и loop при загрузке
В самом коде имеются несколько основных функций, на их примере можно рассмотреть работу микроконтроллера.
Команда void setup() – в ней записываются данные, которые микроконтроллер выполняет в момент загрузки, а после может про них забыть. В этой функции указываются номера пинов, к которым подключается устройство, подключаются и инициализируются библиотеки, устанавливается скорость работы с последовательным портом.
Функция void loop – в нее помещаются команды, которые должны выполняться, пока включена плата. Микроконтроллер начнет выполнять программы, начиная с первой, и когда дойдет до конца, сразу вернется в начало, чтобы повторить эту же последовательность бесконечное число раз.
Загрузка скетча в Arduino IDE
В Ардуино IDE компиляция скетча начинается при нажатии кнопки Verify, после этого скетч может быть загружен в память Ардуино через USB с помощью кнопки Upload. Перед загрузкой кода программы нужно установить все параметры в меню Tools. В этом меню выбираются порт, к которому подключена плата, и платформу. В окне Arduino IDE внизу будет отображен ход компиляции скетча. При успешной выгрузке скетча будет получено сообщение «Done uploading». Запуск скетча начинается сразу после окончания загрузки. Для расширения возможностей можно подключать дополнительные внешние библиотеки, разработанные командой Ардуино или сторонними авторами.
Обзор возможных вариантов загрузки скетча
Кратко весь алгоритм можно записать следующим образом: Написание кода >> компиляция >> загрузка в микроконтроллер. При загрузке скетча используется Bootloader (Загрузчик). Он представляет собой небольшую программу, которая загружается в микроконтроллер на Ардуино. С помощью этой программы можно загружать скетч, не используя дополнительные аппаратные средства. При работе загрузчика на плате будет мигать светодиод.
1. Загрузка в Arduino IDE. Самый простой и удобный вариант загрузки кода. Все, что нужно сделать – это написать или найти нужный скетч и загрузить его.
- Ускоренная загрузка скетча в Arduino IDE. С помощью этого метода можно увеличить скорость загрузки в микроконтроллер в два раза. Для этого нужно лишь зайти в Настройки и снять галочку с пункта Проверка кода. Пропуская шаг проверки, будет уменьшено количество байтов, которые передаются во время загрузки. При этом все равно некоторые из видов проверок будут осуществлены, но они не занимают долгого времени. Отключать проверку кода не рекомендуется, если Ардуино помещается в какой-либо ответственный проект (например, в спутник). Также можно провести проверку, если подключение производится через очень длинный USB кабель (порядка 10 метров).
Уменьшение времени загрузки при помощи отключения проверки работает с любой платой Ардуино, которая использует USB соединение. Все эти микроконтроллеры используют загрузчик avrdude. Платы, которые используют загрузчик Catarina, не нуждаются в отключении проверки кода, так как этот загрузчик работает быстрее.
- Загрузка скетча в Ардуино через Bluetooth. Этот способ используется, когда нужно обойтись без физического соединения Ардуино и компьютера – например, в силовых цепях или радиочастотных цепях. Для реализации загрузки потребуется Bluetooth-модуль, который оснащен платой-адаптером для Ардуино. Этот модуль нужно подключить к компьютеру через переходник USB-UART-TTL. Работа с модулем осуществляется с помощью AT-команд.
- Загрузка при помощи Андроид-устройства. Для осуществления такого типа загрузки кода понадобятся провода USB-A – USB-B и USB-Host (OTG-кабель), Ардуино и устройство на базе Андроид с поддержкой режима host. На Андроид-устройство нужно установить программу ArduinoDroid или ArduinoCommander из Google Play. Все устройства нужно соединить при помощи кабелей, после этого можно включать Ардуино и загружать на него код. Нужно запустить установленную программу. При включении начнется обновление IDE, на что понадобится некоторое время.
Сначала работа будет рассмотрена на примере программы ArduinoCommander. После ее запуска нужно нажать USB-Device. Затем нужно наддать Autodetect, чтобы Андроид-устройство выполнило поиск Ардуино и отобразило его на экране. Как только Ардуино появится на экране, нужно на него нажать. Чтобы перейти в меню, нужно щелкнуть в нижнем правом углу. В этом меню можно загрузить скетч с SD-карты.
ArduinoDroid представляет собой среду разработки, компилятор и загрузчик одновременно. Начать компиляцию скетча нужно нажав на кнопку Lightning-Button. После завершения компиляции нужно нажать на кнопку загрузки. Загрузка занимает несколько секунд. По окончании загрузки ардуино запустит на выполнение новый код.
- Программирование при помощи Raspberry Pi. Можно загружать скетчи двумя способами – при помощи Arduino IDE и при помощи пакета arduino-mk. Пакет позволяет собирать и загружать скетчи Ардуино из командной строки.
Re: Не видет arduino помогите
Администратор Регистрация 08.06.2007 Возраст 52 Сообщений 13,358 Вес репутации 10
Новичок Регистрация 13.05.2011 Сообщений 12 Вес репутации 139
Характеристики платы Arduino NANO
- Микроконтроллер: ATmega328
- Тактовая частота: 16 МГц
- Напряжение логических уровней: 5 В
- Входное напряжение питания: 7–12 В
- Портов ввода-вывода общего назначения: 22
- Максимальный ток с пина ввода-вывода: 40 мА
- Максимальный выходной ток пина 3.3V: 50 мА
- Максимальный выходной ток пина 5V: 800 мА
- Портов с поддержкой ШИМ: 6
- Портов, подключённых к АЦП: 8
- Разрядность АЦП: 10 бит
- Flash-память: 32 КБ : 1 КБ
- SRAM-память: 2 КБ
- Габариты (размер Arduino Nano): 18×45 мм
Arduino Nano v3.0 CH340G принципиальная схема
119 мыслей про “ Драйвер для arduino CH340G ”
Доброго времени суток. Пишет, что дополнительные атрибуты несовместимы между собой. Как исправить?
Спасибо огромное. Всё получилось.
Раскажите как установить доайвера на Linux
Произвел апгрейд компа. Установил проверенную ОС: win7, Arduino 1.8.8 и …засада. Драйвер CH340 — не работает. То нет подписи, то ошибка и блокируется. Перелопатил русскоязычные сайты — 0, нашел на каком-то англоязычном версию для win8.1:CH341SER Установка через обновление драйвера.
Большое спасибо!
У меня ОС почему-то начала ругаться на драйвер без подписи — но по названию в описании установленного драйвера на сайте производителя есть более свежий драйвер CH341, который с цифровой подписью и этот драйвер нормально встал.
Если не будет считаться спамом, то я скачивал обновленный драйвер здесь: http://wch.cn/downloads/CH341SER_EXE.html
Спасибо, у нас тоже получилось. Ваши рекомендации и драйвера сделали возможным работы с Ардуино.
Дякую Вам велике .
Андрей, а что вам мешает скачать драйвер по ссылке в статье.
Класс теперь остается где-нибудь скачать драйвер
Я имею ввиду те драйвера что скачаны вместе с программой ардуино
А почему программа обновления драйвера в упор не видит драйвер в папке ардуино?
Автору ОГРОМНОЕ СПАСИБО! Заказал Ардуинку, а на ней не тот контролер, что указано на видео в Ютюбе. А Ваши драйвера стали и все закрутилось-завертелось.
ЧТО СУКА ЕСЛИ У МЕНЯ ЕГО НЕТУ В ДИСПЕТЧЕРЕ УСТРОЙСТВ БЛЯТЬ.
Все бы хорошо, но указанный драйвер не проходит проверку на virustotal.com c сообщением «W32/Trojan.CTHP-3817» от антивируса Cylance.
спасибо большое, все сразу работает. ))
Огромное человеческое спасибо автору
Спасибо. Заработало с драйвером для win7 64. До этого выдавало код 54, драйвер то установился, но на СОМ4 в диспетчере ругался. А теперь все работает
спасибо тебе огромное .
Удивительно , но факт! Подключил нано и тут же в диспетчере устройств- «USB-serial CH340(COM14). Видимо китайцы заранее драйвер установили?
Оказалось всё просто, в программе по умолчанию в , инструменты> програматор> AVR ISP, переставил на USBasp, и всё заработало))) походу спасибо остаётся у меня! )))
Определился на 4com, и всё на этом, програма тоже 4сом в низу с права показывает, он не загружается в ардуино, может какие ещё настройки по портам нудны, буду очень блакадарен совету, спасидо!
Спасибо . Драйвер установился меньше чем за минуту .
Спасибо, заработало!! win 7 64 бит. До этого и на цифровую подпись ругался и на код 10.
Спасибо за помощь.
Спасибо все работает! +10 из 10
Спасибо! Скачал сдесь без вирусов. )
забыл сказать) спасибо
реально помогла на uno mega 328p. добавлю, что после установки нужно нажать в uno «инструменты» «порт» выбрать виртуальный порт
Спасибо, действительно помогло
Волшебник, спасибо! Win 7 64bit + Arduino uno теперь работает)
Спасибо, купил шнур ГБО (для Zenit Pro), но компьютер никак не мог увидеть контроллер TTL, вшитый в USB данного шнура, пока не поставил драйвера с этого сайта. ПО Windows7.
бля братан реально помог.
Пожалуйста, только этот драйвер ставится для чипа CH340, а сейчас китайцы стали лепить его везде где только можно
Спасибо! Подошел для нано 168.
Всегда, пожалуйста. Я рад, что данный сайт Вам действительно помог!
Долго сёрфил по сайтам в поисках решения проблемы установки драйвера для Uno 328. Все было не то. Вам Спасибо человеческое. ++;
В самом конце статьи есть драйвер с цифровой подписью. Вы не пробовали его ставить?
Винда определила что драйвер не имеет цифровой подписи и отказалась его нормально ставить https://yadi.sk/i/ii3UO1eO3BUpAr что делать?
Спасибо ! А то уж отчаиваться стал )))
Спасибо. А то из пришедших из Китая заработала сразу только leonardo, теперь и nano c mega.
На мой взгляд из Win, на данный момент самая адекватная ось это Win7. И ничего удивительного в том, что 99% юзеров, до сих пор пользуются этой осью нет Удобно, быстро и почти все понятно и привычно… Всех с наступившим НОВЫМ ГОДОМ!
ужас. 2017 год, а 99,99999999999999999999999% пиплов до сих пор сидит на хряке или w7.
прогресс -__-
Супер спасибо автору. пол дня читал на форумах решение проблемы поиска порта для адруино уно. решения перепрошивки перепайки и тп. нашел эту статью скачал драйвер СН-340 и порт нашелся плата в работе . Большой лайк
Владимир, спасибо за отзыв. Пишут, как правило те у кого, что-то не получается… А тут такой положительный результат! Рад, что у Вас всё получилось.
У меня Win7. Получил по ибею две платы — Mega и Uno. С Мегой всё нормально, а вот с Uno не получилось: порт при подключении платы Ардуино не виден. В Сети нашёл эту статью, сделал так, как в ней рекомендовано — и всё заработало!
Большое спасибо автору.
Добрый день. Какая версия windows?
Полистайте комментарии, тут выкладывали несколько вариантов драйверов под разные версии win…
Здравствуйте, пытался установить драйвер, как описано тут, но при попытке установки, вылазеет ошибка, что windows не может проверить цифровую подпись. И соответсвенно установка происходит с ошибкой и у порта горит восклицательный знак.
Добрый день! Спасибо за тему, очень надеюсь найти тут ответ. Есть много Ардуино про микро, и все с желтым воскл. знаком, раньше такого не было. Переживаю. Прошить не могу, как мне поступить. Буду очень признателен вашему совету!
Удачи. Рад, что смог отказаться полезным
Спасибо автору, весь день проконоёбился с той же проблемой, что и большинство народу здесь, а именно неактивный порт и кривые дрова офф. сайта. Думал что фитюлька китайская колом встала после транспортировки через полмира и придётся бодаться с китайцами за неисправность прибора, но всё обошлось. НАЧИНАЮ ИЗУЧАТЬ ПРОГРАММИРОВАНИЕ С НУЛЯ! Пожелайте мне удачи.
Подтверждаю, китайская Nano на Atmega328, драйвера стали и на Windows XP.
Спасибо.
Я тоже серега спасибо друг молодца !!
Спасибо Вам за совет !!
Спасибо вам! Информация очень пригодилась!
Крик душиииииииииии. Купил китайскую ардуино Uno с чипом CH340G при подключении загорается светодиод ON и 13-й пин мигает ,дрова не встают ,пробовал на XP и 7-ке. В дисп.устр. устройство не определенно
Автор- спасибо большое выручил!
Спасибо! Предложенный драйвер так же работает на Windows XP
Спасибо очень помог.
Подскажите после заливки программы должен ли гореть светодиод L? Загрузка прошпа нормально.
Всегда пожалуйста! Пользуйтесь.
Спасибо Сергей! Скачал и установил по твоей ссылке и все заработало! )
полазил по сайтам и скетч заливается с ардуино 1.0.5
а как ее устранить
Кажется проблема с java.
помогите пожалуйста. купил ардуину на али, подключаю комп не видит, установил все дрова на вин 7 64,открываю ардуино заморгал диод L, пытаюсь залить скетч но вылетает это
Скетч использует 450 байт (1%) памяти устройства. Всего доступно 32 256 байт.
Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2 039 байт для локальных переменных. Максимум: 2 048 байт.
java.io.IOException: Cannot run program «/bin/avrdude»: CreateProcess error=2, Не удается найти указанный файл
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at processing.app.helpers.ProcessUtils.exec(ProcessUtils.java:26)
at cc.arduino.packages.Uploader.executeUploadCommand(Uploader.java:123)
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:175)
at cc.arduino.UploaderUtils.upload(UploaderUtils.java:78)
at processing.app.Sketch.upload(Sketch.java:1186)
at processing.app.Sketch.exportApplet(Sketch.java:1160)
at processing.app.Sketch.exportApplet(Sketch.java:1132)
at processing.app.Editor$DefaultExportHandler.run(Editor.java:2381)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: CreateProcess error=2, Не удается найти указанный файл
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.(ProcessImpl.java:386)
at java.lang.ProcessImpl.start(ProcessImpl.java:137)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
… 9 more
Помогите пожалуйста! Не устанавливается драйвер! 100 штук разных пробовал! Пишет: «Возникла проблема при установке Система обнаружила драйвер, но при попытке установить возникла ошибка! Недопустимые данные» Я думаю из-за Windows8. Потому что у друга на планшете Windows10 установился драйвер сам автоматически! Что делать??
Cпасибо! У меня на Висте 32бит работает.Пявился СОМ3. Супер.
Спасибо! Помог драйвер.
Goodwin1982 «решил» проблему зажатием кнопки ресет при компиляции и сразу отпускаю ее перед заливкой программы не с первого раза наловчился, но работает хоть в таком режиме
Аналогичная ситуация. Качал драйвера с этого сайта и не только, не помогло. Система win7x64.
Установил драйвер и сколько ни тра…тил время и сил — так и не получилось загрузить в китайского Ан-Дрюшу скетч Blink. Горит светодиод питания, порт определяется (КОМ7), процессор выставлен верно, перепробовал все варианты программаторов в Arduino IDE. Ничего не вышло… Подскажите, что делать?
п.с. Возле СН340Ж (видимо) стоит кварц на 20 «чего-то там».
п.п.с. Все время выскакивает сообщение:
«Arduino: 1.6.4 (Windows 7), Плата»Arduino Nano, ATmega328″
Sketch uses 1 030 bytes (3%) of program storage space. Maximum is 30 720 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2 039 bytes for local variables. Maximum is 2 048 bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x8c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x8c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x8c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x8c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x8c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x8c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x8c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x8c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x8c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x8c»
Может, но я сомневаюсь, что китайцы так сильно ошиблись с деталькой. Можно фото этого кварца?
Здравствуйте! Недавно приобрел китайскую Arduino Uno с чипом CH340G и до сих пор не могу связать ее с компьютером, какие только не ставил драйвера, все бестолку. Windows 7 видет что, что то подключено к USB порту, но не видет как устройство, т.е нет других устройств USB2- serial. и устанавливать драйвера не куда. При детальном осмотре платы Ардуино обнаружил, что возле микросхемы CH340G стоит кварцевый резонатор на 41 Мгц. По датшиту на эту микросхему определен кварц в 12Мгц. Вопрос- может ли быть зто проблемой не опредиления компьютером платы. 2 красных светодиода на плате горят постаянно.
УРАА! Заработало! Спасибо Вам БОЛЬШООООООЕ!
Теперь Добрый Вад:
Спасибо за ссылку,дровишки встали. win 7 64
USB-SERIAL CH340 (COM10)
Спасибо.
Загрузка драйвера решила проблему.
Тоже самое. Win7 64bit. Пробовал с разными шнурами на разных компьютерах, в том числе и на тех, где уже работают с такими же платами. Пробовал и под Ubuntu — устройство в системе не видится (Ubuntu) или не опознается (Win7).
Предполагаю, что CH340G не прошит надлежащим способом. Симптомы очень уж похожи на описанные здесь, только там вместо CH340G используется Atmega16U2:
http://wiki.amperka.ru/arduino-%D0%B1%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D1%81%D1%82%D0%B0%D1%80%D1%82:%D1%87%D1%82%D0%BE-%D1%82%D0%BE-%D0%BF%D0%BE%D1%88%D0%BB%D0%BE-%D0%BD%D0%B5-%D1%82%D0%B0%D0%BA:%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80-%D0%BD%D0%B5-%D0%B2%D0%B8%D0%B4%D0%B8%D1%82-arduino
Как прошить загрузчик в CH340G? Где у него «кнопка»?
Проблема с подключением Arduino UNO к ПК.
У меня Arduino UNO, с USB переходником CH340G.
Все нормально работала. Попитался подключить LCD. Что то не так пошло, начали моргать встроенные светодиоды и ПК потерял связь с Arduino. Сообщение “usb device not recognized” пробовал на других компьютерах, на других системах, то же сообщение. Переустанавливал драйвера, тоже нечего.
Читал что нужно перепрошить микроконтроллер, но не знаю как, чем. И вообще поможет ли это или должен попрощаться с Arduino.
Помогите пожалуйста
Спасибо
РАБОТАЕТ. Спасибо. Почти 3 часа искал. Все время писал про цифровую подпись. Даже отключал ее проверку в винде. Переходил в тестовый режим. Ничего не помагало
Проверил на Win7x64. Спасибо работает нормально. До этого была ошибка код 52
Добрый день. К сожалению не имею в наличии win7 64 bit…
На этой странице в коментариях ниже есть ссылка на драйвер для данной операционки. Попробуйте установить его
(Теперь Добрый Вад:
04.07.2015 в 19:22
Вот дровишки для 7х64: http://www.winchiphead.com/download/CH341/CH341SER.ZIP)
driver okasyvaetsya ne ustanovlivaetsya:Не удается проверить цифровую подпись драйверов, необходимых для данного устройства. При последнем изменении оборудования или программного обеспечения могла быть произведена установка неправильно подписанного или поврежденного файла либо вредоносной программы неизвестного происхождения. (Код 52)
Chto delat?
1)Windows7 64 bit
2)da tochno
3)Da ne vidit
4)Proboval
knopka port ne aktivna, Driver ustanovil , napisano usb-serial ch349g(com25)