Offline
Зарегистрирован: 18.04.2017
Подскажите пожалуйста, в чем может быть проблема? На arduino uno моргает красный диод «L».
Залить какой-либо скетч не получается, появляется это:
Скетч использует 940 байт (2%) памяти устройства. Всего доступно 32256 байт. Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт. avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x32 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x32 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x32 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x32 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x32 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x32 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x32 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x32 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x32 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x32 Проблема загрузки в плату. Помощь по загрузке: http://www.arduino.cc/en/Guide/Troubleshooting#upload .
В диспетчере устройств плата обозначается так

-
Приобрёл недавно Iskra Neo (arduino leonardo). Долгое время загружал скетчи, всё было нормально. В один момент плата перестала загружать любые скетчи и при этом на ней постоянно мигает светодиод L, как при включении или перезагрузке платы. В диспетчере устройств появляется только бутлоадер, затем пропадает, не оставляя COM-порта. Пытался восстанавливать загрузчик по этой статье. Blink загружает один раз, но потом всё опять слетает и беспрерывное мигание продолжается. В чём может быть проблема? Скетч проверял, он точно не виноват.
-
Это болезнь, из-за которой нужно успеть залить скетч за пару секунд после перезагрузки платы

-
Не понял, что восстанавливать, если:
???
К тому же это его штатная работа на леонарде. -
Это как?Бутлоадер не может появятся и пропадать.На это способен только СОМ порт устройства.
Нафига?поздравляю-вы его убили наповал.
-
При подключении леонардо, появляется один ком-порт на 8-10 сек, а потом пропадает и на его место появляется другой. Так и должно быть. Ничего не перепутали?
NikitOS, Max_dk и Airbus нравится это.
-
Попробуй USB шнурок поменять, не включай леонардо через USB хаб — включай напрямую в ПК.
-
Да. Но только леонарда. И там не ком порт, кстати.
-
Эмулятор.он же виртуальный СОМ порт.
Max_dk, Daniil и NikitOS нравится это.

Светлые умы выручайте и сильно не пинайте есть ардуино уно, наверное после случайной подачи 12в на пин(точно не знаю после чего) перестала работать, скетчи не грузятся и светодиод L постоянно горит. Если можно на пальцах объясните или ссылку киньте, в инете искал но ни чего похожего не нашел, а стандартные процедуры не помогают, кстати если rx и tx соединить то в монитор ответ приходит.

Ответ приходит т.к. сама атмега не учавствует в процессе.
Приходит ответ — значит жив конвертер.
Атмегу проверить можно только програмированием внутрисхемным через ISP.
Есть еще одна ардуина? тогда можно б было прошить внутрисхемно… какраз неделю назад делал такую фишку.
НО больше шансов что мега труп =(

да вот второй нет к сожалению((

Не факт, что умерла. Мог своим скетчем звесить.
Попробуй так:
1) подключи все как обычно к компу, как будто только из упаковки;
2) загрузи стандартный скетч «Blink»;
3) нажми и держи на ардуине кнопку «Reset»;
4) запусти «Вгрузить»;
5) держи ресет до тех пор, пока в статусной строке не появится сообщение «Вгружаем…». Сразу отпусти ресет.
6) Если пошла загрузка кода, ждем до финала.
7) Должен заморгать диодик на ардуине, что к 13му пину подключен.
8) если все получилось — все в порядке. Если нет — GOTO [3] несаколько раз. Если все-таки не завелась — попробовать через ISP. Но шансов мало.

спасибо попробую, кстати и возможен вариант что скетчем повесил, точно не понял после какой процедуры она повисла

Alex6280
Не факт, что умерла. Мог своим скетчем звесить.
Попробуй так:
1) подключи все как обычно к компу, как будто только из упаковки;
2) загрузи стандартный скетч «Blink»;
3) нажми и держи на ардуине кнопку «Reset»;
4) запусти «Вгрузить»;
5) держи ресет до тех пор, пока в статусной строке не появится сообщение «Вгружаем…». Сразу отпусти ресет.
6) Если пошла загрузка кода, ждем до финала.
7) Должен заморгать диодик на ардуине, что к 13му пину подключен.
8) если все получилось — все в порядке. Если нет — GOTO [3] несаколько раз. Если все-таки не завелась — попробовать через ISP. Но шансов мало.
К сожалению не помогло, спасибо за помощь

А реакция какая на действия пунктов 3-5?

ни какая светодиод на 13 ножке как горел так и горит

Т.е. горит постоянно? При нажатии на ресет гаснет? Если гаснет, значит ресет отрабатывается. Если не гаснет — что то не так с схемой сброса или питанием. Запитывается ардуина от чего?

даже при резете не гаснет, питаю от шнура усб, блока питания, автомобиля эфект один и тот же, вот я тоже думаю что не обрабатывается, может как еще можно резет сделать

Alex6280
Т.е. горит постоянно? При нажатии на ресет гаснет? Если гаснет, значит ресет отрабатывается. Если не гаснет — что то не так с схемой сброса или питанием. Запитывается ардуина от чего?
Здравствуйте. Я случайно соединил 5V и GND (землю). Комп перестал видеть ардуинку. Снес все драйвера и поставил заного. Та же проблема, L горит, но на Reset реагирует и сбрасывается. На пункты 3-5 пишет ошибка загрузки на плату.

Компьютером как порт определяется? Вынь контроллер из колодки. Если L продолжает гореть, возможно сдохла U5 (см. www.rlocman.ru/i/File/201…no_Uno_Rev3-schematic.pdf)
Конечно, в идеале надо потыкать осциллографом в разные точки. А потом сунуть мегу в программатор… Если это все есть в наличии.

Контролер не вынимается, китайская копия и схема другая вместо atmega16 стоит ch340g. Вот и плохо что ни чего нет в наличии, щас пробую через com прошить, пока безуспешно

Если кит, то тут могет быть все)
Начни последовательно:
1) попробуй снести дрова на порт. Полностью. Начисто. И поставить заново. Или на другом компе поставить эти дрова.
Если не завелось:
2) отпаяй ch от платы аккуратно. И попробуй подцепится переходником внешним.
Если не получится — выкинь эту китайскую подделку в дальний угол дальнего ящика стола, и купи новую. Когда полностью освоишь, откопаешь старую и поднимешь как пушинку (если сам чип не изжарился).
Удачи )

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

Я так и ответил просто через телефон сижу может глюкнул

Я езжу на Renault Duster (1G)
Народ только начал заниматься arduino поэтому прошу снисхождения и помощи специалистов. Собрал UNO+RC522 грузил скетчи для чтения данных с проездных билетов, но при загрузке в UNO пишет (‘setBitsForGood’ was not declared in this scope) я что-то не объявил. можете помочь советом?

Подскажите что с моей Ардуино нано случилось все загружалось хорошо а потом я решил загрузить с изменением за моргал постоянно светодиод L и выдал ошибку и с тех пор моргает L постоянно даже при подключении к зарядке телефонной
3 года
When I am working on arduino nano and i uploaded a file that will blink led at 13th pin but rather than at 13th pin l-led is blinking. I even tried resetting it and uploading an empty file and again uploading the 13th pin blinking code but still l-led is blinking. What is the problem?
asked Mar 29, 2020 at 12:32
1
The L LED and pin 13 are one and the same thing. That LED is connected directly to pin 13. If you blink pin 13 then that LED will blink.
answered Mar 29, 2020 at 12:36
Majenko♦Majenko
104k5 gold badges75 silver badges133 bronze badges
3
When I am working on arduino nano and i uploaded a file that will blink led at 13th pin but rather than at 13th pin l-led is blinking. I even tried resetting it and uploading an empty file and again uploading the 13th pin blinking code but still l-led is blinking. What is the problem?
asked Mar 29, 2020 at 12:32
1
The L LED and pin 13 are one and the same thing. That LED is connected directly to pin 13. If you blink pin 13 then that LED will blink.
answered Mar 29, 2020 at 12:36
Majenko♦Majenko
104k5 gold badges75 silver badges133 bronze badges
3
Arduino.ru
На arduino uno мигает красный диод L
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Подскажите пожалуйста, в чем может быть проблема? На arduino uno моргает красный диод «L».
Залить какой-либо скетч не получается, появляется это:
В диспетчере устройств плата обозначается так

- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

наверно надо драйвера установить, если китайская плата то ищите драйвера на ch340g
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

На arduino uno моргает красный диод «L».
Так и должно быть. Светодиод моргает потому что в плату изначально загружен скетч Blink.
Должен появиться виртуальный COM-порт в разделе Порты (COM и LPT)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Спасибо. Установил и всё работает.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
добавлю для опыта, что мигает светодиод на 13 пине ардуино
у меня такая же фигня бывает , но в случаях :
— на компе если вставить ардуинку на CH340 в USB 3.0 — комп и IDE постоянно ее сбрасывают, в итоге бесконечно мигает , ни один скетч так и не может сзапуститься. Поэтому пользую только порты USB 2.0
— на ноуте только на определенных USB портах и только с CP2102 (программер на CP2102 + ардуино мини ). Поэтому пользую только на CH340 , они как бы безпроблемные.
Источник
Arduino.ru
На Arduino nano (CH340) начал мигать красный светодиод
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Видел кучу подобных вопросов на форуме, но всё не мой случай. Прошил ардуинку своей программой, запустил — работает. Всё идёт как надо, но через несколько дней начал мигать красный светодиод L. В эти дни никто к контроллеру не прикасался. На 13 порту, если что, у меня висит кнопка с токовой подтяжкой через 10 кОм. Но это никак не должно влиять, т.к. несколько дней никаких миганий не было. В чем может быть проблема? Может быть это Ардуино сигнализирует о внутренних неисправностях?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

да это просто самоликвидатор, обратный отсчёт.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Такую функцию я не закладывал) А если серьезно?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

ну не знаю. мошт она перезагружаеца самопроизвольно.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Но L это ведь Blink и есть. мошт в программе говорится им мигать?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Конечно, ничего такого не говорится. Программа там моя, а не Blink. Программа просто запускает сервопривод по таймеру два раза в сутки. Есть кнопка настройки таймера, которая при нажатии мигает один раз этим самым светодиодном. Больше ничего нет
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
1) Ардуина сама ничего делать не умеет — только исполняет ваш код
2) Кода мы не видели
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
вангую, что автор перепутал две ардуины — в одной его код, а в другой блинк. Внешне они очень похожи, чтобы различить — нужна сильная лупа 🙂
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Сравните ваши boden фьюзы с напряжением питания.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Как можно перепутать две Ардуины, если она всего у меня одна) Боден фьюзы. В принципе, может быть проблема с питанием, т.к. контроллер от четырёх АА батареек питается, но по моим расчетам их должно на пол года точно хватить. Померяю напряжение. Как проверить эти фьюзы в Ардуино Нано?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
4 батарейки, сервопривод, полгода работы. я в параллельной реальности?
Да просто подключите к USB — если перестанет мигать, то в питании дело.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сервопривод работает пару секунд два раза в день. В остальное время он отключён
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
. перестал мигать. Т.е. просто так перестал. Не успел его даже к усб-питанию подключить. Что-то меня такая самодеятельность ещё больше настораживает.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

как разбрызгает куски байтов по обоям, так и не отмоешь.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Всё, доверие подорвано. Придется теперь контроль усилить, оставшийся заряд выводить, индикацию работоспособности, логи.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
В общем, всё сломалось. Мк включен (зеленая лампочка горит), на команды не отзывается. Кнопка перезагрузки не работает, отключение питания тоже ничего не дает. Что делать?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Где-то тут уже писал, что столкнулся с подобной проблемой. Нано вместо того, чтобы отрабатывать скетч (залит давненько, гонка по линии), внезапно при включении стала тоже часто-часто мигать светодиодом. При питании от USB где-то 0.3сек, включается нормально а потом почти сразу начинает подмигивать тоже. При этом плата компом определяется (CH340G — живой), скетч не перезаливался (стояло в машинке после соревнований) — дудка плату не видит. Reset не помогает, не заметно чтобы она перезагружалась, и если тыкать в момент перезаливки — то тоже «ноль реакции». Так и валяется, благо запас карман не тянет.
Источник
Arduino мигает красным
попала мне в руки Arduino Nano. Беда в том, что у меня не получается подключить её к компьютеру.
При подключении система говорит «неопознанное USB-устройство». Пытался ставить всякие-разные драйверы (для FT232RL, например, как рекомендовано) — ноль эмоций.
Код 10 и всё такое.
При этом, что интересно, после включения в питания на ардуинке начинает периодически мигать test LED, хотя бутлоадер по идее дергать его не должен.
Есть идеи?
| |
От: | Marty | https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg |
| Дата: | 03.12.16 18:10 | ||
| Оценка: |
Здравствуйте, 0x7be, Вы писали:
0>При этом, что интересно, после включения в питания на ардуинке начинает периодически мигать test LED, хотя бутлоадер по идее дергать его не должен.
0>Есть идеи?
У меня такое было. Решил, что мертвая. Может, не вся, а только USB-шный чип. Выкинул, благо заказал сразу пучек
| |
От: | 0x7be |
| Дата: | 03.12.16 20:12 | |
| Оценка: |
Здравствуйте, Marty, Вы писали:
M>У меня такое было. Решил, что мертвая. Может, не вся, а только USB-шный чип.
Я залез внутрь ISP-программатором — сам контроллер живой, отзывается.
Видимо, USB-чип и правда накрылся.
Тут ещё походу дела нашёл информацию о том, что FTDI выпускала драйвера, которые кирпичат китайские поддельные чипы.
Для такой дикости даже слов не нашёл.
M>Выкинул, благо заказал сразу пучек
А где брал?
| |
От: | Marty | https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg |
| Дата: | 03.12.16 23:47 | ||
| Оценка: |
Здравствуйте, 0x7be, Вы писали:
M>>Выкинул, благо заказал сразу пучек
0>А где брал?
Да на али где-то
| |
От: | Ops |
| Дата: | 04.12.16 10:56 | |
| Оценка: |
Здравствуйте, 0x7be, Вы писали:
0>При подключении система говорит «неопознанное USB-устройство». Пытался ставить всякие-разные драйверы (для FT232RL, например, как рекомендовано) — ноль эмоций.
FT232 бывают левые, попробуй поискать старые дрова, они более либерально к ним относятся.
| |
От: | 0x7be |
| Дата: | 04.12.16 17:46 | |
| Оценка: |
| |
От: | Ops |
| Дата: | 04.12.16 18:38 | |
| Оценка: |
| |
От: | pugv |
| Дата: | 05.12.16 07:36 | |
| Оценка: | +1 |
Здравствуйте, 0x7be, Вы писали:
0>Тут ещё походу дела нашёл информацию о том, что FTDI выпускала драйвера, которые кирпичат китайские поддельные чипы.
А там точно FTDI? В китайских ардуинах стоят чипы CH340/341.
| |
От: | koandrew | http://thingselectronic.blogspot.ca/ |
| Дата: | 05.12.16 13:52 | ||
| Оценка: | 1 (1) |
| |
От: | 0x7be |
| Дата: | 05.12.16 16:53 | |
| Оценка: |
| |
От: | 0x7be |
| Дата: | 05.12.16 16:53 | |
| Оценка: |
| |
От: | koandrew | http://thingselectronic.blogspot.ca/ |
| Дата: | 05.12.16 18:07 | ||
| Оценка: |
Здравствуйте, 0x7be, Вы писали:
0>Я знаю про эти чипы, их звать CH340G. Но у меня на ардуинке стоит именно FT232RL — по маркировке и количеству ног совпадает. Конечно, клон китайский, скорее всего.
Ну тогда хз. Я себе уже давно купил Atmel ICE, он умеет прошивать любые их чипы из IDE. Из «ардуины» я уже вырос, изредка использую Due (потому что она 3.3 В) только для прототипирования и первоначальных экспериментов с какими-нить чипами.
| |
От: | 0x7be |
| Дата: | 05.12.16 20:16 | |
| Оценка: |
| |
От: | koandrew | http://thingselectronic.blogspot.ca/ |
| Дата: | 05.12.16 20:39 | ||
| Оценка: | 3 (1) |
Здравствуйте, 0x7be, Вы писали:
0>Похоже, просто брак. Я забил и использую ISP-разъём + WizardProg87i. Сам контроллер работает без проблем.
0>Зато можно бутлоадер выкинуть и сэкономить 2.5 килобайта флеш-памяти 
А нафига тогда тебе остальная плата-то? Купи лучше чипы отдельно — они стоят намного меньше, а обязательной обвязки там нет — просто подключаешь питание и программатор к нужным пинам — и вперёд. Разве что подтяжку для сброса рекомендуют ставить, чтобы проц не ресетился от рандомных наводок на «плавающий» вывод. Если не хочется возиться с SMT, эти атмеги бывают и в «классическом» корпусе DIP, которые удобно в бредборд втыкать.
Я кстати так и сделал — накупил разных атмеловских чипов по 2-3 штуки каждого типа (несколько разных 8-битников AVR, несколько типов ARM Cortex M0+, и один Cortex M4), и припаял их на адаптеры. Очень удобно экспериментировать, и всегда можно поставить чип «потолще», если ресурсов не хватает, ну или если ног маловато стало.
| |
От: | 0x7be |
| Дата: | 10.12.16 08:19 | |
| Оценка: | 3 (1) |
Здравствуйте, koandrew, Вы писали:
K>А нафига тогда тебе остальная плата-то? Купи лучше чипы отдельно — они стоят намного меньше, а обязательной обвязки там нет — просто подключаешь питание и программатор к нужным пинам — и вперёд. Разве что подтяжку для сброса рекомендуют ставить, чтобы проц не ресетился от рандомных наводок на «плавающий» вывод. Если не хочется возиться с SMT, эти атмеги бывают и в «классическом» корпусе DIP, которые удобно в бредборд втыкать.
K>Я кстати так и сделал — накупил разных атмеловских чипов по 2-3 штуки каждого типа (несколько разных 8-битников AVR, несколько типов ARM Cortex M0+, и один Cortex M4), и припаял их на адаптеры. Очень удобно экспериментировать, и всегда можно поставить чип «потолще», если ресурсов не хватает, ну или если ног маловато стало.
Мне тоже больше нравится идея «голого» чипа и я прикупил себе так же несколько штук контроллеров в DIP-корпусах.
Но эта ардуинка — часть другого товара, контроллера для робота, который заточен именно под Arduino Nano, поэтому мне пришлось повозиться с ним. Я эту платку купил, чтобы с сыном заниматься, робота с ним делаем
(юный техник и творение). Ему и с этим пока сложновато 
| |
От: | Alexii |
| Дата: | 13.12.16 09:16 | |
| Оценка: |
| |
От: | 0x7be |
| Дата: | 13.12.16 09:50 | |
| Оценка: |
Здравствуйте, Alexii, Вы писали:
0>>Я знаю про эти чипы, их звать CH340G. Но у меня на ардуинке стоит именно FT232RL — по маркировке и количеству ног совпадает. Конечно, клон китайский, скорее всего.
A>У меня в ардуино нано был чип CH341. Пока драйвер не поставил, тоже был unknown device и мигал светодиод.
Да, я знаю про эти чипы, но у меня там FT232RL.
После всех мытарств понял, что луже иметь ардуино с этим китайским чипом, чем с (псевдо)FTDI, который может быть убит драйверами.
| |
От: | koandrew | http://thingselectronic.blogspot.ca/ |
| Дата: | 13.12.16 20:32 | ||
| Оценка: |
Здравствуйте, 0x7be, Вы писали:
0>После всех мытарств понял, что луже иметь ардуино с этим китайским чипом, чем с (псевдо)FTDI, который может быть убит драйверами.
Лучше иметь с легальным FTDI 
Источник
Эта инструкция для тех, у кого впервые появилась плата Arduino, и при этом нет знаний в его программировании. Первое знакомство начинается практически всегда с самых элементарных вещей. А самое простое в нашем случае, это мигание на Arduino (Ардуино) светодиодом L на плате.
![]()
Далее в меню опять открываем Инструменты > Порт > COM4 (или тот который у вас указан)
![]()
В меню выбираем: Файл > Примеры > Basics > Blink (и нажимаем на Blink)
![]()
В открывшемся окне прокручиваем код скетча в самый низ, и меняем значения delay (1000); на то которое вам нужно. Минимальное значение моргания светодиода которое заметно глазу, по крайней мере моему — это 20 миллисекунд.
![]()
Теперь загружаем скетч в ардуинку, нажав в верхнем левом углу стрелку и ждем окончания загрузки, после чего она сразу начнет исполнение скетча.
![]()
Я поставил резистор для примера на 100 ом, какой был под рукой ).
На этом уроке Вы научитесь программировать свою плату Arduino на примере мигания встроенным светодиодом.
Необходимые элементы
Для данного примера Вам понадобится плата Arduino (в данном случае – Arduino Uno R3, но Вы сможете проработать данный пример, имея в наличии и другую плату) и кабель USB (типа A (4х12 мм) – B (7х8 мм) – более подробно можно почитать на Вики).
Что такое ” L” светодиод

На Arduino Uno присутствуют ряды коннекторов типа мама по бокам платы, которые используются для подключения периферийных электронных устройств или “шилдов”.
Кроме того, на плате присутствует встроенный светодиод (англ. – LED), которым Вы можете управлять с помощью скетчей. Этот встроенный светодиод условно назовем “L” светодиод, как это принято на многих англоязычных ресурсах.
Расположение данного светодиода на плате отмечено на фото снизу.
Загрузка примера “Blink” (мигание) в Arduino IDE
При подключении новой платы к персональному компьютеру, обратите внимание, что светодиод начинает мигать, так как все платы от производителей поступают с уже “залитым” скетчем “Blink”.
На этом уроке мы перепрограммируем нашу плату, изменив частоту мигания светодиода. Не забудьте настроить оболочку Arduino IDE и выбрать нужный серийный порт, по которому Вы подключили Вашу плату.
Пришло время проверить Ваше подключение и запрограммировать плату.
В оболочке Arduino IDE существует большая коллекция скетчей, которые уже готовы к использованию. Среди них находится и пример, который заставляет мигать “L” светодиод.
Откройте пример “Blink”, который находится в пункте меню File – Examples – 01.Basics
После открытия, расширьте окно оболочки Arduino IDE, чтобы Вы могли весь скетч в одно окне.
Скетчи из примеров, включенные в Arduino IDE предусматривают режим “только чтение” (“read only”). То есть, загрузить их на плату Вы сможете, но после изменения кода, Вы не сможете их сохранить в том же файле.
Мы будем изменять скетч, так что в первую очередь Вам необходимо сохранить собственную копию, которую Вы сможете изменять.
Из меню “File” выберите опцию “Сохранить как” (“Save As..”) и сохраните скетч под подходящим Вам названием, например, “MyBlink”.
Вы сохранили копию скетча “Blink” в Вашей библиотеке. Теперь открыть этот файл Вы можете в любой момент, перейдя по вкладке File – Scetchbook.
Загрузка примера “Blink” (мигание) на плату
Подключите свою плату Arduino к компьютеру с помощью USB и проверьте тип платы (“Board type”) и серийный порт (“Serial Port”), по которому она подключена.
Текущие настройки отображаются внизу окна оболочки Arduino IDE
Кликните на кнопку “Загрузить” (“Upload”)
Во время загрузки в нижней части окна IDE появятся ползунок загрузки и сообщения. Вначале появляется фраза “Компилирование” (“Compiling scetch..”), что означает процесс конвертирования Вашего скетча в формат, подходящий для загрузки на плату Arduino.
Дальше статус сменится на “Загрузка” (“Uploading”). В этот момент светодиоды на плате начнут мигать, так как начнется перенос скетча в микропроцессор.
В конце статус сменится на ”Загрузка завершена” (“Done uploading”). В сообщении, которое появится в текстовой строке отобразится информация о том, что загруженный скетч занимает 1,084 байта из 32,256 доступных.
Иногда при компиляции у Вас может возникнуть подобная ошибка:
Причин может быть несколько: Вы не подключили плату к компьютеру; Вы не установили необходимые драйвера; Вы выбрали некорректный серийный порт.
Если же загрузка прошла корректно, плата Arduino перезагрузится и “L” светодиод начнет мигать.
Пояснения к скетчу “Blink”
Ниже представлен код скетча “Blink”.
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
// Pin 13 has an LED connected on most Arduino boards.
// the setup routine runs once when you press reset:
// initialize the digital pin as an output.
// the loop routine runs over and over again forever:
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
Первое, на что стоит обратить внимание: в данном скетче множество “комментариев”. Обратите внимание, что комментарии не являются инструкцией по работе программы. Это исключительно пояснения отдельных функций и задач, которые выполняются на определенном этапе кода. Это не обязательная часть кода. Все между символами /* и */ в верхней части скетча – это комментарии, в которых описаны задачи программы. Так же есть комментарии, которые ограничиваются одной строкой. Они начинаются с символов // и заканчиваются по умолчанию в конце строки. Первая важная, по сути, часть данного кода это строка:
В комментариях над строкой указано, что мы присваиваем имя пину, к которому подключен светодиод. На большинстве плат Arduino это будет 13 пин. Дальше используется функция “Setup”. Опять-таки, в комментариях указано, что функция срабатывает после нажатия кнопки “reset”. Также эта функция срабатывает, когда плата перезагрузится по каким-либо другим причинам. Например, подача питания или после загрузки скетча.
// the setup routine runs once when you press reset:
// initialize the digital pin as an output.
Каждый скетч Arduino обязан включать в себя функцию “setup” и часть, в которую вы можете добавлять собственные инструкции, заключенные между < >. В нашем примере в функции присутствует только одна команда, в которой указано, что пин, который мы используем, настраивается на “вывод” (“Output”). Также обязательным для любого скетча является функция цикла “Loop”. В отличие от функции “Setup ”, которая отрабатывает один раз после перезагрузки, функция “Loop” после окончания работы команд, вновь запустится.
// the loop routine runs over and over again forever:
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
В теле функции “Loop” светодиод включается (HIGH), данное значение задерживается на 1000 миллисекунд (1 секунда), светодиод отключается (LOW) и остается выключенным на 1 секунду, после чего цикл повторится.
Изменение частоты мигания светодиода
Для того, чтобы обеспечить более частое мигание светодиода, необходимо изменить параметр, указываемый в скобках ( ) в команде “delay”.
Как уже было указано, период задержки указывается в миллисекундах. То есть, для того, чтобы заставить светодиод мигать в два раза чаще, необходимо изменить значение с 1000 на 500. В результате, пауза между включением/выключением светодиода составит половину секунды и светодиод будет мигать быстрее.
Для проверки, не забудьте загрузить измененный скетч на плату Arduino.
На этом уроке Вы научитесь программировать свою плату Arduino на примере мигания встроенным светодиодом.
Необходимые элементы
Для данного примера Вам понадобится плата Arduino (в данном случае – Arduino Uno R3, но Вы сможете проработать данный пример, имея в наличии и другую плату) и кабель USB (типа A (4х12 мм) – B (7х8 мм) – более подробно можно почитать на Вики).
Что такое ” L” светодиод

На Arduino Uno присутствуют ряды коннекторов типа мама по бокам платы, которые используются для подключения периферийных электронных устройств или “шилдов”.
Кроме того, на плате присутствует встроенный светодиод (англ. – LED), которым Вы можете управлять с помощью скетчей. Этот встроенный светодиод условно назовем “L” светодиод, как это принято на многих англоязычных ресурсах.
Расположение данного светодиода на плате отмечено на фото снизу.
Загрузка примера “Blink” (мигание) в Arduino IDE
При подключении новой платы к персональному компьютеру, обратите внимание, что светодиод начинает мигать, так как все платы от производителей поступают с уже “залитым” скетчем “Blink”.
На этом уроке мы перепрограммируем нашу плату, изменив частоту мигания светодиода. Не забудьте настроить оболочку Arduino IDE и выбрать нужный серийный порт, по которому Вы подключили Вашу плату.
Пришло время проверить Ваше подключение и запрограммировать плату.
В оболочке Arduino IDE существует большая коллекция скетчей, которые уже готовы к использованию. Среди них находится и пример, который заставляет мигать “L” светодиод.
Откройте пример “Blink”, который находится в пункте меню File – Examples – 01.Basics
После открытия, расширьте окно оболочки Arduino IDE, чтобы Вы могли весь скетч в одно окне.
Скетчи из примеров, включенные в Arduino IDE предусматривают режим “только чтение” (“read only”). То есть, загрузить их на плату Вы сможете, но после изменения кода, Вы не сможете их сохранить в том же файле.
Мы будем изменять скетч, так что в первую очередь Вам необходимо сохранить собственную копию, которую Вы сможете изменять.
Из меню “File” выберите опцию “Сохранить как” (“Save As..”) и сохраните скетч под подходящим Вам названием, например, “MyBlink”.
Вы сохранили копию скетча “Blink” в Вашей библиотеке. Теперь открыть этот файл Вы можете в любой момент, перейдя по вкладке File – Scetchbook.
Загрузка примера “Blink” (мигание) на плату
Подключите свою плату Arduino к компьютеру с помощью USB и проверьте тип платы (“Board type”) и серийный порт (“Serial Port”), по которому она подключена.
Текущие настройки отображаются внизу окна оболочки Arduino IDE
Кликните на кнопку “Загрузить” (“Upload”)
Во время загрузки в нижней части окна IDE появятся ползунок загрузки и сообщения. Вначале появляется фраза “Компилирование” (“Compiling scetch..”), что означает процесс конвертирования Вашего скетча в формат, подходящий для загрузки на плату Arduino.
Дальше статус сменится на “Загрузка” (“Uploading”). В этот момент светодиоды на плате начнут мигать, так как начнется перенос скетча в микропроцессор.
В конце статус сменится на ”Загрузка завершена” (“Done uploading”). В сообщении, которое появится в текстовой строке отобразится информация о том, что загруженный скетч занимает 1,084 байта из 32,256 доступных.
Иногда при компиляции у Вас может возникнуть подобная ошибка:
Причин может быть несколько: Вы не подключили плату к компьютеру; Вы не установили необходимые драйвера; Вы выбрали некорректный серийный порт.
Если же загрузка прошла корректно, плата Arduino перезагрузится и “L” светодиод начнет мигать.
Пояснения к скетчу “Blink”
Ниже представлен код скетча “Blink”.
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
// Pin 13 has an LED connected on most Arduino boards.
// the setup routine runs once when you press reset:
// initialize the digital pin as an output.
// the loop routine runs over and over again forever:
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
Первое, на что стоит обратить внимание: в данном скетче множество “комментариев”. Обратите внимание, что комментарии не являются инструкцией по работе программы. Это исключительно пояснения отдельных функций и задач, которые выполняются на определенном этапе кода. Это не обязательная часть кода. Все между символами /* и */ в верхней части скетча – это комментарии, в которых описаны задачи программы. Так же есть комментарии, которые ограничиваются одной строкой. Они начинаются с символов // и заканчиваются по умолчанию в конце строки. Первая важная, по сути, часть данного кода это строка:
В комментариях над строкой указано, что мы присваиваем имя пину, к которому подключен светодиод. На большинстве плат Arduino это будет 13 пин. Дальше используется функция “Setup”. Опять-таки, в комментариях указано, что функция срабатывает после нажатия кнопки “reset”. Также эта функция срабатывает, когда плата перезагрузится по каким-либо другим причинам. Например, подача питания или после загрузки скетча.
// the setup routine runs once when you press reset:
// initialize the digital pin as an output.
Каждый скетч Arduino обязан включать в себя функцию “setup” и часть, в которую вы можете добавлять собственные инструкции, заключенные между < >. В нашем примере в функции присутствует только одна команда, в которой указано, что пин, который мы используем, настраивается на “вывод” (“Output”). Также обязательным для любого скетча является функция цикла “Loop”. В отличие от функции “Setup ”, которая отрабатывает один раз после перезагрузки, функция “Loop” после окончания работы команд, вновь запустится.
// the loop routine runs over and over again forever:
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
В теле функции “Loop” светодиод включается (HIGH), данное значение задерживается на 1000 миллисекунд (1 секунда), светодиод отключается (LOW) и остается выключенным на 1 секунду, после чего цикл повторится.
Изменение частоты мигания светодиода
Для того, чтобы обеспечить более частое мигание светодиода, необходимо изменить параметр, указываемый в скобках ( ) в команде “delay”.
Как уже было указано, период задержки указывается в миллисекундах. То есть, для того, чтобы заставить светодиод мигать в два раза чаще, необходимо изменить значение с 1000 на 500. В результате, пауза между включением/выключением светодиода составит половину секунды и светодиод будет мигать быстрее.
Для проверки, не забудьте загрузить измененный скетч на плату Arduino.
«>
Как проверить, работает ли моя плата Arduino или нет?
Если у вас в руках доска, но вы не знаете, работает она или нет, как проверить, работает она или нет?
Примечание: после комментария @ Ricardo к моему последнему сообщению я публикую это!
Подключите плату к USB-порту компьютера и проверьте, светится ли зеленый светодиодный индикатор питания на плате. Стандартные платы Arduino (Uno, Duemilanove и Mega) имеют зеленый светодиодный индикатор питания, расположенный рядом с переключателем сброса.
Оранжевый светодиод рядом с центром платы (помеченный «Pin 13 LED» на изображении ниже) должен включаться и выключаться при включении платы (платы поставляются с завода, на котором предварительно установлено программное обеспечение, чтобы мигать светодиод, как простая проверка того, что плата работает).

Если индикатор питания не горит, когда плата подключена к вашему компьютеру, возможно, плата не получает питание.
Мигающий светодиод (подключенный к цифровому выходному контакту 13) управляется кодом, запущенным на плате (новые платы предварительно загружены с примером скриншота Blink). Если светодиод контакта 13 мигает, эскиз работает правильно, что означает, что чип на плате работает. Если горит зеленый индикатор питания, но индикатор контакта 13 не мигает, возможно, заводской код отсутствует на чипе. Если вы не используете стандартную плату, у нее может не быть встроенного светодиода на контакте 13, поэтому обратитесь к документации для получения подробной информации о вашей плате.
Онлайн-руководства по началу работы с Arduino доступны для Windows , Mac OS X и Linux .
Как проверить работоспособность китайской Ардуино?
Приобрел на алиэкспрессе вот такой девайс, на нем 2 светодиода (в оригинале, как я понял, 1), один ON горит постоянно, второй L мигает. Подключил платку к Arduino IDE, не смог выбрать порт, полез гуглить, оказалось, что нужно скачать драйвер для CH341SER (что это, я не знаю, потому как чип вроде Mega328). Скачал, установил, в IDE появился мой девайс:
Попытался загрузить скетч BLINK, не получилось, выдал ошибку:
На этом я завис, что делать, не очень понятно. Во-первых, я подозреваю, нужно выбрать правильный тип из списка:
Но что выбрать, непонятно. Прошу помощи — хочется уже запустить девайс и проверить его работоспособность.
Гайд для новичков Arduino
На данной странице находится максимально подробный гайд по началу работы с Arduino, в котором можно найти ответы на все вопросы касательно установки, подключения и загрузки прошивки, а также по работе с моими проектами. Внимательно изучите гайд, прежде чем писать мне на почту или в нашу группу ВК, если у вас что-то не получается, тут есть ответы на все вопросы. Также прилагаю список уроков на этом сайте, где можно найти ещё больше базовой информации:
- Начало работы
- Работа с Arduino IDE
- Первая прошивка, ошибки, FAQ
- Питание платы
Arduino IDE
Arduino IDE – программа для написания и загрузки прошивки в плату, скачать можно с официального сайта вот здесь (Внимание! Перевод языка страницы в браузере ломает кнопки!) . Перед загрузкой вам предложат пожертвовать на развитие проекта, можно отказаться и нажать JUST DOWNLOAD (только скачать). Либо открываем прямую ссылку на загрузку версии 1.8.13 и сразу качаем файл.


Для работы рекомендуется компьютер с Winodws 7 или выше, либо Linux/MacOS
- Если у вас Windows XP, придётся установить версию 1.6.13 , более свежие версии будут очень сильно тормозить или не будут работать вообще. Есть ещё одна проблема: некоторые библиотеки не будут работать на старых версиях Arduino IDE, также не будет работать поддержка плат семейства esp8266, поэтому крайне рекомендуется обновить свой компьютер до Windows 7 или выше
- Установка на Linux из системного репозитория – читать тут
- Установка на MacOS – читать тут
Для старых версий Arduino IDE, а также для некоторых других программ, понадобится пакет Java JRE. Скачать можно с официального сайта для своей операционной системы.
Установка
Arduino IDE устанавливается как обычная программа, запускам и жмём далее далее далее…
Драйвер
Во время установки Arduino IDE программа попросит разрешения установить драйвера от неизвестного производителя, нужно согласиться на установку всего предложенного.

Обновление
Перед установкой новой версии нужно удалить старую. Ни в коем случае не удаляйте папку установленной IDE из Program Files, удалять нужно через “Установка и удаление программ“, либо запустив файл uninstall.exe из папки с установленной программой. Иначе установщик откажется устанавливать новую программу, так как в системе остались следы от старой. Решение этой проблемы описано в видео ниже. Вкратце о том, как удалить IDE вручную:
- Папка с программой
- C:Program Files (x86)Arduino (64-битная версия Windows)
- C:Program FilesArduino (32-битная версия Windows)
- ДокументыArduino
- C:Пользователи (или Users)Ваш_пользовательAppDataLocalArduino15
Удаляем следы из реестра:
- Открыть редактор системного реестра:
- Windows 10: Пуск/regedit
- Предыдущие: Пуск/Выполнить/regedit
- Инструкция для всех Windows
- В окне поиска пишем arduinouninstall
- Поиск

Другие проблемы
- Если перестала запускаться Arduino IDE – удаляем файлик preferences.txt из C:Пользователи (или Users)Ваш_пользовательAppDataLocalArduino15
Портативная версия
Вместо полной установки программы можно скачать архив с уже “установленной”, на странице загрузки он называется Windows ZIP file. Вот прямая ссылка на 1.8.13. Распаковав архив, получим портативную версию Arduino IDE, которую можно скинуть на флешку и использовать на любом компьютере без установки программы. Но понадобится установить драйвер CH341 для китайских плат, а также драйверы из папки с программой Arduino IDE (подробнее в следующем уроке). Возможно понадобится установить Java.
Работа на смартфоне
Писать и загружать прошивку через смартфон тоже можно, понадобится смартфон на Android и приложение ArduinoDroid . Также для тренировки и удобного редактирования скетчей можно использовать CppDroid , но загружать в плату она не умеет.
Первое подключение
Осмотр платы
- Замкнутые пины (вроде бы паяются китайцами вручную)
- Неприпаянная нога компонента
- “Торчащие” вверх или под углом компоненты типа резисторов и конденсаторов, припаянные только с одной стороны
- Компоненты со смещением
- “Сопля” между ногами компонента


Реакция на подключение питания
- При подключении USB загорается и горит светодиод PWR
- Если плата новая и на ней прошит загрузчик (он обязан быть прошит) – однократно мигает светодиод L
- Примечание: светодиоды могут быть любого цвета
- На новой плате прошито “мигание светодиодом”, поэтому светодиод L продолжит мигать один или два раза в секунду в зависимости от версии загрузчика
- При нажатии на кнопку сброса (RESET , единственная кнопка на плате) должен однократно мигнуть светодиод L , сигнализируя о завершении работы загрузчика.
Драйвер USB контроллера
CH341
В своих проектах я использую “Ардуино-совместимые” китайские платы, у которой для подключения по USB используется контроллер CH340/CH341. Чтобы он распознавался компьютером, нужно установить драйвер.
Скачать драйвер можно по ссылке:
- FTP сайта
- Яндекс.Диск
- Сайт driverslab
Запускаем и в появившемся окошке нажимаем INSTALL. Готово!

Если во время установки Arduino IDE вы по какой-то причине пропустили установку драйверов, то их можно установить вручную из папки с программой, расположенной по пути
- C/Program Files/Arduino/drivers (для 32-х разрядной системы)
- C/Program Files (x86)/Arduino/drivers (для 64-х разрядной системы).
- dpinst-x86.exe (для 32-х разрядной системы)
- dpinst-amd64.exe (для 64-х разрядной системы)

Драйвер CH341 для Mac можно скачать по ссылке с моего сайта , либо со страницы источника . Если у вас будут какие-то проблемы с OSX Sierra и выше, читайте вот эту статью .
В Linux уже встроен необходимый драйвер, но Arduino IDE может отказаться с ним работать: Linux определяет ардуинку как устройство ttyUSB*, обычно это ttyUSB0 (это можно узнать командой dmesg в терминале), то есть в системе появляется интерфейс /dev/ttyUSB0. Чтобы с ним работать, нужны права доступа. Читать и писать на устройство /dev/ttyUSB0 имеет пользователь root и пользователи группы dialout. Работы с правами суперпользователя лучше избегать, поэтому следует занести своего пользователя в группу dialout. Это можно сделать следующей командой (обратите внимание, команда whoami в обратных кавычках)
sudo usermod -a -G dialout `whoami`
После этого нужно перелогиниться. Дальше запускаем Arduino IDE и в меню «Инструменты/Порт» ставим галочку напротив /dev/ttyUSB0.
Вся информация по работе с IDE на данной ОСи есть вот в этой статье
FT232
На оригинальных Arduino Nano стоит USB контроллер производства FTDI – FT232, драйвер для всех версий ОС можно скачать с официального сайта (прямая ссылка на инсталлятор для Windows) . Некоторые очень редкие китайцы паяют на свои Наны поддельные FTDI контроллеры, которые буквально выходят из строя после некоторых обновлений Windows. Если вам достался такой экземпляр (я никогда не даю ссылки на такие поделки) – подробности по ситуации читайте здесь . Как восстановить контроллер и сделать рабочий драйвер – читайте здесь .
CP2102
На некоторые Arduino-совместимые платы китайцы ставят контроллер USB CP2102. Драйвер на него в большинстве случаев уже есть в системе (на Linux точно есть), если не работает – скачать можно с официального сайта .
- Прямая ссылка на драйвер для Windows всех версий
- Прямая ссылка на драйвер для Mac OS
На Windows установка производится следующим образом: достаём из архива и

Настройка и прошивка
Подключение платы
Плата подключается к компьютеру по USB, на ней должны замигать светодиоды. Если этого не произошло:
- Неисправен USB кабель
- Неисправен USB порт компьютера
- Неисправен USB порт Arduino
- Попробуйте другой компьютер, чтобы исключить часть проблем из списка
- Попробуйте другую плату (желательно новую), чтобы исключить часть проблем из списка
- На плате Arduino сгорел входной диод по линии USB из-за короткого замыкания, устроенного пользователем при сборке схемы
- Плата Arduino сгорела полностью из-за неправильного подключения пользователем внешнего питания или короткого замыкания
Компьютер издаст характерный сигнал подключения нового оборудования, а при первом подключении появится окошко “Установка нового оборудования”. Если этого не произошло:
- См. предыдущий список неисправностей
- Кабель должен быть data-кабелем, а не “зарядным”
- Кабель желательно втыкать напрямую в компьютер, а не через USB-хаб
- Не установлены драйверы Arduino (во время установки IDE или из папки с программой), вернитесь к установке.
В списке портов (Arduino IDE/Инструменты/Порт) появится новый порт, обычно COM3. Если этого не произошло:
- См. предыдущий список неисправностей
- Некорректно установлен драйвер на USB контроллер Arduino
- Переверните плату и найдите “узкую” микросхему. Если на ней написано CH341 – ставим драйвер по инструкции выше
- Если написано FT232R – опять же инструкция выше
- Если ничего не написано – открываем “Диспетчер устройств”, смотрим блок “Другие устройства”. Если при подключении платы к компьютеру там появляется FT232R USB UART – смотрим инструкцию выше
Выбор и настройка платы (Arduino NANO)
- Выбираем соответствующую плату в ИнструментыПлата Большинство моих проектов сделаны на Arduino Nano. Если вы используете Nano:
- В микроконтроллер китайских плат зашит “старый” загрузчик, поэтому выбираем ИнструментыПроцессорATmega328p (Old Bootloader). Если вам по какой-то причине пришлют платы с новым загрузчиком – прошивка не загрузится (будет минутная загрузка и ошибка), можно попробовать сменить пункт Процессор на ATmega328p

Загрузка прошивки
“Загрузка” прошивки происходит в два этапа – компиляция и непосредственно загрузка в микроконтроллер. Компиляция – проверка кода на наличие ошибок, её можно запустить, нажав кнопку с символом галочки в верхнем меню программы. Компилировать код можно даже не подключая плату к компьютеру! При нажатии на кнопку с символом стрелочки начнётся компиляция, а затем загрузка скомпилированного кода в плату.
Вставьте следующий код с полной заменой содержимого в IDE и загрузите его. Должен начать мигать светодиод L на плате, это означает что все программы настроены верно и можно переходить к работе!
esp8266 (Wemos, NodeMCU)
ESP8266 – микроконтроллер с WiFi на борту, на его базе сделаны платы Wemos D1 mini, NodeMCU и другие. Китайские платы Wemos и NodeMCU подключаются к компьютеру по USB при помощи бортового USB-TTL преобразователя, причём китайцы паяют CH340 или CP2102 (функционально не имеют отличий), обычно это даже указано на странице товара. Установка драйверов разобрана выше на этой странице.
Также для работы с esp нужно добавить поддержку плат в Arduino IDE:
- Запустить Arduino IDE, перейти в Файл/Настройки/
- В окошко “Дополнительные ссылки…” Вставить http://arduino.esp8266.com/stable/package_esp8266com_index.json
- Нажать ОК
- Перейти в Инструменты/Плата/Менеджер плат… Начать вводить в поиске “esp”. Выбрать и установить ESP8266 boards
- Теперь в списке плат Инструменты/Плата/ появится семейство плат на esp8266! Выбираем соответствующую своей плате конфигурацию.
- Выбираем порт, к которому подключена плата
- На четвёртом скриншоте ниже показаны настройки платы по умолчанию, изменены только выделенные красным (плата и порт)




Для проверки работоспособности платы (например, Wemos Mini) выбираем стандартные настройки и загружаем тестовый “блинк”. Должен начать мигать светодиод на плате.
Digispark
Digispark – плата на базе ATtiny85, загрузка в которую может производиться через бортовой USB. Для работы с Digispark нужно добавить поддержку плат в Arduino IDE:
- Запустить Arduino IDE, перейти в Файл/Настройки/
- В окошко “Дополнительные ссылки…” Вставить
- http://digistump.com/package_digistump_index.json
- или https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json
“Голые” МК
Для начала рекомендуется изучить вот эти два урока: первый и второй . У проектов на базе голого микроконтроллера есть два варианта:
- Если проект основан на ATmega328 (Arduino Nano/Mini) и на плате есть источник тактирования на 16 МГц (резонатор), то микроконтроллер можно просто перепаять с Arduino и загружать прошивку через внешний USB-TTL переходник, как на Arduino Pro Mini. Либо загрузить прошивку, и потом перепаивать – всё будет работать.
- Если источника тактирования нет – так делать нельзя! Сначала нужно настроить МК на внутреннее тактирование, подключив ISP программатор к плате Arduino и выбрав внутренний источник тактирования в настройках ядра. Подробнее читайте в уроке.
Установка библиотек
Библиотека – несколько файлов с кодом, облегчающим работу с датчиками и другими модулями. К моим проектам библиотеки идут в архиве (об этом ниже). Рассмотрим все способы загрузки и установки библиотек.
Менеджер библиотек
Большинство Ардуино-библиотек можно установить автоматически из встроенного в программу менеджера библиотек:
- Скетч/Подключить библиотеку/Управлять библиотеками…
- Комбинация клавиш Ctrl+Shift+I
Нужную библиотеку можно найти в поиске по названию и нажать Установка, библиотека будет автоматически установлена в папку с библиотеками. Arduino IDE проверяет обновления библиотек при запуске и предложит обновиться, если найдёт обновления.

Скачивание с GitHub
Не все существующие библиотеки есть в менеджере библиотек и скачать их можно только с GitHub. Есть два способа: скачать весь репозиторий и скачать релиз. Весь репозиторий со всеми “лишними” служебными файлами можно скачать одним архивом вот так, нажав Code/Download ZIP

Если у библиотеки есть релизы – справа будет отмечен последний (свежий) релиз. Нажимаем на него:

И в новом окне нажимаем Source code (zip) – начнётся загрузка архива. Скачивание релиза более предпочтительно, так как содержит только файлы библиотеки.

В обоих случаях библиотека скачается как .zip архив.
Автоматическая установка
Скачанный .zip архив можно установить в автоматическом режиме через Скетч/Подключить библиотеку/Добавить .ZIP библиотеку… В открывшемся окне выбрать скачанный архив, библиотека будет установлена по указанному в настройках пути.
Ручная установка
Для начала нужно распаковать архив (стандартный архиватор Windows или WinRAR). Чтобы Arduino IDE смогла использовать библиотеку, нам нужно положить её туда, где программа будет её искать. Таких мест три (на примере Windows):
- Документы/Arduino/libraries/
- Папка с программой/libraries/
- C/Program Files/Arduino/libraries/ (Windows 32)
- C/Program Files (x86)/Arduino/libraries/ (Windows 64)
- В портативной версии IDE желательно держать библиотеки в Папка с программой/libraries
Рекомендуется держать все библиотеки в одном месте, чтобы не было путаницы. Лично я устанавливаю все библиотеки в папку с программой (в Program Files), но для этого могут потребоваться права администратора (зависит от версии и настроек Windows). Если у вас возникли с этим проблемы – устанавливайте в Документы/Arduino/libraries/. На скриншотах показана установка скачанной с GitHub библиотеки в папку с программой и в документы. Ставить нужно в одно место, я просто показываю оба варианта.


Ошибки компиляции
Возникает на этапе сборки и компиляции прошивки. Ошибки компиляции вызваны проблемами в коде прошивки, то есть проблема сугубо программная. Слева от кнопки “загрузить” есть кнопка с галочкой – проверка. Во время проверки производится компиляция прошивки и выявляются ошибки, если таковые имеются. Ардуино в этом случае может быть вообще не подключена к компьютеру.
- В некоторых случаях ошибка возникает при наличии кириллицы (русских букв) в пути к папке со скетчем. Решение: завести для скетчей отдельную папочку в корне диска с английским названием.
- В чёрном окошке в самом низу Arduino IDE можно прочитать полный текстошибки и понять, куда копать
- В скачанных с интернета готовых скетчах часто возникает ошибка с описанием <название файла>.h no such file or directory. Это означает, что в скетче используется библиотека <название файла>, и нужно положить её в Program Files/Arduino/libraries/. Ко всем моим проектам всегда идёт папочка с использованными библиотеками, которые нужно установить. Также библиотеки всегда можно поискать в гугле по <название файла>.
- При использовании каких-то особых библиотек, методов или функций, ошибкой может стать неправильно выбранная плата в “Инструменты/плата“. Пример: прошивки с библиотекой Mouse.h или Keyboard.h компилируются только для Leonardo и Micro.
- Если прошивку пишете вы, то любые синтаксические ошибки в коде будут подсвечены, а снизу в чёрном окошке можно прочитать более детальное описание, в чём собственно косяк. Обычно указывается строка, в которой сделана ошибка, также эта строка подсвечивается красным.
- Иногда причиной ошибки бывает слишком старая, или слишком новая версия Arduino IDE. Читайте комментарии разработчика скетча.
- Ошибка недостаточно свободного места возникает по вполне понятным причинам. Оптимизация: статическая память – память, занимаемая кодом (циклы, функции). Динамическая память занята переменными.
Частые ошибки в коде, приводящие к ошибке компиляции
- …no such file or directory – компилятор не может найти файл, который используется в коде. Чаще всего это библиотека, которую не установили или установили неправильно
- 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 – массив задан без указания размера
Ошибки загрузки
Возникает на этапе, когда прошивка собрана, скомпилирована, в ней нет критических ошибок, и производится загрузка в плату по кабелю. Ошибка может возникать как по причине неисправностей железа, так и из-за настроек программы и драйверов.
- Если неправильно выбран COM порт – прошивка не загрузится с ошибкой avrdude: ser_open(): can’t open device. Вернитесь к пункту “Выбор и настройка платы” этого урока и убедитесь в том, что выбор порта активен и при подключении платы появляется новый.
- Большинство проблем при загрузке, вызванных “зависанием” ардуины или загрузчика, лечатся полным отключением Ардуины от питания. Потом вставляем USB и по новой прошиваем.
- Причиной ошибки загрузки может быть неправильно выбранная плата в “Инструменты/Плата”, а также неправильно выбранный процессор в “Инструменты/Процессор”.
- Если это Arduino Nano – попробуйте оба, Old и не Old.
Предупреждения
Помимо ошибок, по причине которых проект вообще не загрузится в плату и не будет работать, есть ещё предупреждения, которые выводятся оранжевым текстом в чёрной области лога ошибок. Предупреждения могут появиться даже тогда, когда выше лога ошибок появилась надпись “Загрузка завершена“. Это означает, что в прошивке нет несовместимых с жизнью ошибок, она скомпилировалась и загрузилась в плату. Что же тогда означают предупреждения? Чаще всего можно увидеть такие:
- # Pragma message……. – сообщения с директивой Pragma обычно выводят библиотеки, сообщая о своей версии или каких-то настройках. Это даже не предупреждение, а просто вывод текста в лог.
- Недостаточно памяти, программа может работать нестабильно – чуть выше этого предупреждения обычно идёт информация о задействованной памяти. Память устройства можно добивать до 99%, ничего страшного не случится. Это флэш память и во время работы она не изменяется. А вот динамическую память желательно забивать не более 85-90%, иначе реально могут быть непонятные глюки в работе, так как память постоянно “бурлит” во время работы. НО. Это зависит от скетча и в первую очередь от количества локальных переменных. Можно написать такой код, который будет стабильно работать при 99% занятой SRAM памяти.
- Предупреждения о несовместимых типах данных. Компилятор не смог привести один тип к другому и сообщает о потенциальных ошибках в ходе выполнения программы. В большинстве случаев ничего плохого не случится, но лучше найти проблемную строку и помочь компилятору преобразовать тип.
Частые вопросы
- Ардуину можно прошить только один раз? Нет, несколько десятков тысяч раз, всё упирается в ресурс flash памяти. А он довольно большой.
- Как стереть/нужно ли стирать старую прошивку при загрузке новой? Память автоматически очищается при прошивке, старая прошивка автоматически удаляется.
- Можно ли записать две прошивки, чтобы они работали вместе? Нет, при прошивке удаляются абсолютно все старые данные. Из двух прошивок нужно сделать одну, причём так, чтобы не было конфликтов.
- Можно ли “вытащить” прошивку с уже прошитой Ардуины? Теоретически можно, но только в виде нечитаемого машинного кода, в который преобразуется прошивка на С++ при компиляции, т.е. вам это НИКАК не поможет, если вы не имеете диплом по низкоуровневому программированию.
- Зачем это нужно? Например есть у нас прошитый девайс, и мы хотим его “клонировать”. В этом случае да, есть вариант сделать дамп прошивки и загрузить его в другую плату на таком же микроконтроллере.
- Если есть желание почитать код – увы, прошивка считывается в виде бинарного машинного кода, превратить который обратно в читаемый Си-подобный код обычному человеку не под силу
- Вытащить прошивку, выражаясь более научно – сделать дамп прошивки, можно при помощи ISP программатора, об этом можно почитать здесь
- Снять дамп прошивки можно только в том случае, если разработчик не ограничил такую возможность, например записав лок-биты, запрещающие считывание Flash памяти, или вообще отключив SPI шину. Если же разработчик – вы, и есть желание максимально защитить своё устройство от копирования – гуглите про лок-биты и отключение SPI
▶Проекты AlexGyver◀
1. Установить Arduino IDE и драйверы, как написано в гайде. Если это ваш первый раз – желательно не подключать ничего к новой плате, а загрузить пробную прошивку из гайда и убедиться, что всё загружается и работает. Если после сборки схемы прошивка перестанет загружаться – увы, схема собрана с ошибками и плата уже могла сгореть. Но она работала, мы это проверили =)
- Если проект основан на esp8266 или Digispark – устанавливаем поддержку этих плат, как описано в гайде выше.

2. Скачать архив со страницы проекта. Ссылка всегда одна, она ведёт на прямую загрузку архива с хранилища GitHub. Когда проект обновляется (об этом может быть написано на странице проекта), ссылка на архив остаётся той же, но в нём будут уже какие-то изменённые файлы, добавлены новые версии прошивки и т.д. Все обновления указаны на странице проекта.

3. Распаковать архив. Архив имеет формат .zip, для его распаковки можно использовать встроенные инструменты операционной системы, либо популярный WinRAR. Если не распаковать архив – прошивка откроется неправильно. Я не отличаюсь буйной фантазией и всегда называю папки одинаково, вот что может быть в архиве проекта:
- firmware – прошивки для Arduino
- software – программы для ПК
- libraries – библиотеки
- schemes – схемы
- PCB – gerber файлы печатных плат
- docs – всякие документы
- Android – исходники приложения
- 3Dprint – модели для печати
- processing – программа на Processing



4. Установить библиотеки. К прошивкам моих проектов всегда идут библиотеки, необходимые для работы кода. Библиотеки в проектах часто пересекаются, но рекомендуется ставить именно идущую в комплекте с проектом версию, так как более старые или новые могут быть несовместимы.
Содержимое папки libraries из архива помещаем в
- С/Program Files/Arduino/libraries/ (Windows x32)
- C/Program Files (x86)/Arduino/libraries/ (Windows x64)
Если возникнут проблемы с доступом к этой папке (на Windows 10), то библиотеки можно положить в
- Документы/Arduino/libraries/
Примечание: к разным проектам идут разные версии одних и тех же библиотек, они не всегда совместимы. При возникновении ошибок рекомендуется удалить текущие версии и заменить их теми, которые идут в архиве.
5. Открыть скетч (так называется файл с программой). При запуске файла скетча автоматически откроется Arduino IDE. Важно: если в папке со скетчем есть несколько файлов – запускаем любой с логотипом Arduino. Остальные файлы должны подтянуться автоматически и образовать вкладки в окне программы. Если запускать скетч прямо из архива – вкладки не откроются и скомпилировать/загрузить программу будет невозможно.
Вкладки в Arduino IDE6. Выбрать плату и порт. Выбираем в настройках программы соответствующую плату и порт куда она подключена, как в гайде выше. Важные моменты по настройкам самой платы обычно указано в описании конкретного проекта.
- Для проектов на Arduino Nano выбираем Arduino Nano, а также ИнструментыПроцессорATmega328p (Old Bootloader). Если вам по какой-то причине пришлют платы с новым загрузчиком – прошивка не загрузится (будет минутная загрузка и ошибка), можно попробовать сменить пункт Процессор на ATmega328p
- Для проектов на Wemos выбираем (LOLIN)Wemos D1 R2 & mini
- Для проектов на NodeMCU выбираем NodeMCU 1.0
- В некоторых проектах, например GyverLamp2 (второй версии) для прошивки в esp8266 нужно выбрать плату Generic esp8266, читайте особенности загрузки на странице проекта!
- Для проектов на Digispark порт выбирать не надо, читай инструкцию выше


7. Настроить программу. Очень часто в начале кода моих программ можно встретить блок настроек. Настройки обычно имеют вид
где цифра отвечает за значение настройки, менять нужно только цифру согласно комментарию.
8. Загрузить прошивку. Нажимаем стрелочку в левом верхнем углу окна программы и прошивка загружается. Не загружается? Читаем гайд выше, там описаны все возможные причины.

Загружать прошивку желательно до подключения компонентов, чтобы убедиться в том, что плата рабочая. После сборки можно прошить ещё раз, плата должна спокойно прошиться. В проектах с мощными потребителями в цепи питания платы 5V (адресная светодиодная лента, сервоприводы, моторы и проч.) необходимо подать на схему внешнее питание 5V перед подключением Arduino к компьютеру, потому что USB не обеспечит нужный ток, если потребитель его потребует – это может привести к выгоранию защитного диода на плате Arduino.
9. Если что-то не работает – читай инструкцию, в ней описан каждый шаг и решение всех проблем. Также в самом начале есть видео, где всё показано ещё более подробно.
Заметка для тех, кто не читал инструкцию и получил какую-то ошибку. Вот список самых частых причин: