Программирование Arduino
Программирование микроконтроллеров Arduino осуществляется на языке программирования C++. Этот язык является низкоуровневым, поэтому считается сложным и имеет высокий порог вхождения. Но для программирования Arduino используется упрощенная версия этого языка программирования. Так же для упрощения разработки прошивок существует множество функций, классов, методов и библиотек. Благодаря этому работать с этими микроконтроллерами очень удобно и легко. Описание большинства необходимых функций и операторов вы найдете на этой странице. Этого хватит для написания прошивок под самые разнообразные устройства на базе ардуино. Для всех функций есть небольшие примеры, показывающие как вы можете их использовать.
Операторы
Управляющие операторы
Синтаксис
- ; (точка с запятой)
- <> (фигурные скобки)
- // (одностроковый коментарий)
- /* */ (многостроковый коментарий)
- #define
- #include
Арифметические операторы
- = (оператор присваивания)
- + (сложение)
- — (вычитание)
- * (умножение)
- / (деление)
- % (остаток от деления)
Программа Arduino IDE
Для того что бы создавать свои проекты на базе Arduino, вам будет необходимо писать прошивки и загружать их в ваш микроконтроллер. Эти функции позволяет выполнить программа Arduino IDE. Есть и другие способы написания прошивок и загрузки скетчей в ардуинку, но самый простой — это использовать Arduino IDE. Далее можно скачать Ардуино ИДЕ последней версии или одну из предыдущих, если вам нужна именно та версия. Далее я расскажу как настроить и как пользоваться этой программой.
Cкачать Arduino IDE
Сейчас (21.10.2021) актуальная последняя версия программы Ардруино ИДЕ 1.8.16. Вы можете вверху выбрать установочник для вашей операционной системы. Или, если у вас Windows 10, то можете скачать и установить программу из официального магазина приложений Windows. Если же вам необходимо установить более позднюю версию то вы так же можете скачать, необходимую версию выше. Это может понадобится для поддержки старых плат Arduino или стороннего ПО. Все версии, кроме 2.0 бета, имеют поддержку русского языка. Не пугайтесь, если программа установки запускается на английском языке, ниже есть подробная инструкция по установке. Программа Ардуино ИДЕ будет на русском языке, а если нет, то это можно поменять в настройках.
Arduino IDE 2.0
Так же для скачивания доступна версия 2.0 beta. Обратите внимание, что это бета релиз, а значит что там могут быть еще мелкие недоработки и ошибки. Для начинающих рекомендуется скачивать последнюю стабильную версию, то есть 1.8.16 на данный момент. В новой версии 2.0 разработчики обещаю повышенную производительность, продвинутый редактор, более отзывчивый интерфейс, автозавершение команд, навигатор по коду и даже обработчик ошибок в режиме реального времени!
Для Windows есть возможность загрузки архива (Zip) и инсталлятора (Installer). Архив можно использовать как Portable версию. А если вы устанавливаете среду разработки ардуино на свое постоянное рабочее место, то лучше выбрать Installer.
Установка Arduino IDE
Если вы скачали архив, то просто распакуйте его и запустите Arduino.exe.
Если вы скачали установочный файл то вам необходимо выполнить стандартную установку. Процесс установки очень прост и не займет много времени, но для полноты статьи я распишу его подробно.
Запускаем установочный файл. Соглашаемся с условиями лицензионного соглашения (естественно после прочтения).

Выбираем необходимые модули программы. Первые два должны быть отмечены обязательно. Остальные на ваше усмотрение.

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

Во время установки может появиться окно с предложением установки драйвера USB-to-serial. Соглашаемся и ждем окончания установки. На этом весь процесс завершен. Осталось настроить среду разработки и можно творить.
Настройка Arduino IDE
После установки необходимо настроить программу. Сделать это очень легко:
1. Сначала подключите вашу ардуинку к компьютеру с помощью USB кабеля.
2. Потом перейдите в «Пуск >> Панель управления >> Диспетчер устройств«. Там надо найти «Порты COM и LPT». В этом списке будет указана ваша arduino и порт к которому она подключена (COM2). Запомните это значение.
Если вашего микроконтроллера нет в списке, или он показан как неопознанное устройство, значит драйвер установлен неправильно, или у вас китайская плата с чипом CH340. Это не проблема. Просто вам нужен другой драйвер. Где его скачать и как установить я рассказал в этой статье.

3. Теперь запускаем Arduino IDE и сразу идем в меню «Инструменты >> Порт«. Там необходимо выбрать тот COM порт, который вы запомнили.

4. Далее надо выбрать плату. Для этого в меню»Инструменты >> Платы» выбираете модель вашей платы.

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

Потом нажимаем кнопку «Загрузить» и ожидаем окончания загрузки скетча. После загрузки сразу должен начать мигать встроенный светодиод. Это значит что все работает так как надо. Теперь вы можете писать свои прошивки или использовать готовые. Описание функций языка программирования Arduino есть на странице моего сайта Программирование
21 комментариев
- Алексей 2018-04-05 18:29:32
Я никак не могу установить. У меня запрашивает разрешение и я разрешаю а он дальше не устанавливает.
- Tviort 2018-04-08 19:46:02
На какую операционную систему вы пытаетесь установить программу? Быть может вы скачали не тот файл?
пишет ошибка компиляции. пробую мигающий светодиод,нормально.что такое? не один скетч не заливаеться.
Что делать, если в инструментах нету Arduino Uno?
I like the helpful information you supply for your
articles. I will bookmark your blog and check again right
here frequently. I am quite certain I will be told plenty of new stuff proper right here!
Good luck for the following!
здравствуйте. сколько можно добавить туда памяти (он больше знал) в Arduino?
- oleg 2018-06-17 18:33:37
антон андуино нельзя добавить памяти , т.к. плата законченная с завода без слотов для установки памяти
А на Windows 10 IOT ваша Arduino IDE встанет?
- Tviort 2018-07-13 10:23:06
Да. Без проблем устанавливается.
У меня планшет 16GB.Этот ё—ный Windows сожрал почти все, пишет:» Не хватает места». Подскажите, пожалуйста, как «впихнуть» эту программу в SD карту (диск D). Я хочу освоить Arduino. В советские времена я занимался радиотехникой, думаю, что освою легко. Мне 60, буду строить «Умный дом».
P.S. Можно-ли упростить до максимума Windows? Оставить самое необходимое.Ну для чего мне всякие приложения, которыми я никогда не пользуюсь? Для чего мне иероглифы и разновидность их написания? Ну каким же умным «долбо—м» надо быть, что бы на одной странице трижды написать одно и тоже. (панель быстрого доступа) просто путаница. Нужно самое необходимое. Все остальное можно скачать. И таких как я — подавляющее большинство. Умно придумано в браузере Yota— «Создай свою Йоту.» Так просто! Ведь ( я думаю) можно так: «Создай свой Windows»! ВСЕ ПРОСТОЕ ГЕНИАЛЬНО. Я понимаю, что есть «Авторские права», но миллионы людей будут благодарны тому, кто исправит ошибку. Ну кто узнает, что у меня свой WINDOWS? ВЫ есть на YOU TUB? Дайте знать, я подпишусь! С уважением. Александр!
Добрый день. Я все сделал как у вас написано, но ни чего не работает, он пишет проблема загрузки в плату и постоянно мигает светодиод с буквой «L»
Что это значит?
- Дмитрий 2018-12-15 19:11:04
отсуцтвует подклю чение к плате или ты порт не тот выбрал еще может быть ты не влючил(СOM11,COM 7)
Здравствуйте! Подскажите, пожалуйста, какой файл(скрипт: install.sh или arduino-linux-setup.sh) необходимо запустить при установке Arduino в Linux через консоль.
Николай
- Val 2019-01-02 00:50:29
Николай, в Linux надо запускать install.sh
Когда я устанавливаю, у меня выскакивает проблема с «Java» хотя она у меня установлена.
- Фёдор 2019-04-22 19:18:50
А онлайн долго грузит.
Добрый день.
Вопрос такой
Может ли кто помочь с написание кода для Ардуино + Rc522 + замок + светодиоды + реле
Выполнения функций контроля доступа и открытия нужных ячеек на замках по запросу Если кто может помочь ( естественно за разумное вознаграждение) пишите на почту или здесь, буду признателен! igorson94@mail.ru
- Антон 2021-01-08 13:46:55
в каком смысле замок?
Спасибо большое за ваш сайт. Очень полезный!
Спасибо за информацию.
При подключении ардуины нано к усб, cразу начинает мигать светодиод L и постоянно горит PWR (ну этот понятно что питание). При загрузке скетча blink, вроде как грузит, потом пишет загрузка завершена и все, продолжает мигать L и гореть PWR. Больше ничего не горит и ничего не мигает. Теперь вопросы:
— Что означает мигающий светодиод L
— Какой светодиод должен мигать после загрузки скетча blink А да, комп iMac, загружена соответствующая Arduino IDE для мака, порт выбран ну собственно там особо выбирать было нечего, три варианта wirelessiap, bluetooth и выбранный мною usbserial-1460. На всех кроме выбранного при загрузке программа Arduino IDE ругается и не грузит ничего.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Железо

Стартовый набор с Arduino Mega и RFID Это расширенный стартовый набор. В комплект входит Arduino Mega R3, макетные платы, множество датчиков, управляемые механизмы и необходимые радиоэлектронные компоненты. Полный список.

Плата Arduino Uno R3 Arduino Uno — плата на базе микроконтроллера ATmega328P с частотой 16 МГц. На плате есть все необходимое для удобной и быстрой работы.
Урок 2. Работа со средой Arduino IDE
Это второй урок из цикла «Знакомство с Arduino». В этом уроке Вы научитесь работать со средой Arduino IDE.
Для урока Вам понадобится компьютер с доступом в Интернет и любой модуль Arduino.
Многие слышали о таких модулях как Arduino. Появляется вопрос: с чего же начать его изучение? Театр начинается с вешалки, а знакомство с Arduino начинается со среды разработки Arduino IDE.
Давайте найдём ответ на вопрос: зачем нам всё таки нужна эта IDE? Ответ достаточно прост. Среда Arduino IDE необходима для разработки программ и их записи в модули Arduino (и не только).
С предназначением IDE разобрались, теперь давайте изучим, что же она из себя представляет.
Чтобы подробнее разобраться со средой Arduino IDE, дорогой читатель, её нужно скачать и установить (если её нет на компьютере).
Среда разработки Arduino IDE состоит из следующих компонентов:
- Текстовый редактор кода программы (1);
- Область сообщений (2);
- Консоль (3);
- Панель инструментов (4);
- Панель с часто используемыми командами (5).

Написанная в среде ArduinoIDE программа называется «скетч». Сама программа пишется в текстовом редакторе. В области сообщений выводятся ошибки и пояснения. В консоли отображается полный отчёт о компиляции программы, различные ошибки, подсказки и другая полезная информация. Панель инструментов представляет собой набор полезных функций при разработке программы. На панели с часто используемыми командами всего несколько кнопок, но они являются самыми основными при разработке программы.
Подробно останавливаться на предназначении каждого пункта меню мы не будем, а рассмотрим только самые необходимые функции. Более подробно о каждом пункте меню можно прочитать здесь.
Язык программирования Arduino:
Фактически нет особого языка программирования Arduino. Модули Arduino программируются на C/C++. Особенности программирования сводятся к тому, что существует набор библиотек, включающий некоторые функции (pinMode, digitalWrite и т.д.) и объекты (Serial), которые значительно облегчают процесс написания программы.
Настройка среды Arduino IDE:
Открыть настройки среды можно из пункта меню Файл -> Настройки или с помощью комбинации клавиш Ctrl + ,

В меню настроек можно изменить путь сохранения программ по умолчанию, изменить размер шрифтов и т.д.
Различные примеры:
Одной из особенностей Arduino IDE является довольно обширная база различных примеров, что очень удобно для начинающих. Открыть пример можно из пункта меню Файл -> Примеры.

Создание новой программы:
Итак, с настройками среды мы разобрались. Что теперь? А сейчас нужно создать новую программу. Это можно сделать несколькими способами:


- при помощи комбинации клавиш Ctrl + N;
- из панели с часто используемыми командами
Сохранение программы:
Допустим мы написали программу. Далее нужно сохранить. Сделать это можно несколькими способами:


- при помощи комбинации клавиш Ctrl + S;
- из панели с часто используемыми командами
Теперь нужно только ввести имя вашей программы (оно не должно содержать русских символов!) и выбрать место, куда её сохранить. Сохранённая программа автоматически помещается в одноимённую папку, которая создаёт сама Arduino IDE.
Открытие программы:
Теперь мы научились создавать и сохранять программу. Но как теперь открыть сохранённую программу? Для этого в Arduino IDE предусмотрено несколько способов:


- при помощи комбинации клавиш Ctrl + O;
- из панели с часто используемыми командами
В открывшимся окошке нужно выбрать папку, в которой находится нужная программа.
Редактирование текста программы:
Удобный редактор текста программы очень важен при разработке какой-либо программы. В Arduino IDE он довольно неплох, однако уступает конкурентам, таким как Eclipse, Visual Studio и т.д. Однако, его вполне достаточно. В редакторе присутствуют все основные команды, необходимые при редактировании кода. Они находятся в меню Правка. Для самых часто используемых команд (копировать, ставить и т.д.) существуют комбинации, способствующие быстрому доступу к нужной команде правки, что очень удобно. Другими отличительными особенностями встроенного редактора кода являются возможность копирования кода для форумов и в html формате, что позволяет делится Вашими программами, сохраняя наглядность разметки в виде BB кодов или html разметки соответственно.
Давайте остановимся на основных командах, необходимых для редактирования программы:
- Копировать. Пункт меню Правка -> Копировать или комбинация клавиш Ctrl + C;
- Вставить. Пункт меню Правка -> Вставитьили комбинация клавиш Ctrl + V;
- Вырезать. Пункт меню Правка -> Вырезатьили комбинация клавиш Ctrl + X;
- Выделить всё. Пункт меню Правка -> Выделить всёили комбинация клавиш Ctrl + A;
- Найти. Пункт меню Правка -> Найтиили комбинация клавиш Ctrl + F;
- Отменить. Пункт меню Правка -> Отменитьили комбинация клавиш Ctrl + Z;
- Вернуть. Пункт меню Правка -> Вернутьили комбинация клавиш Ctrl + Y;
- Форматировать текст программы. Пункт меню Инструменты -> АвтоФорматированиеили комбинация клавиш Ctrl + T. Эта команда позволяет исправить неточности в разметке программы и привести её в более читабельный вид.


Дорогой читатель, удобнее и быстрее всего пользоваться комбинациями клавиш при редактировании текста программы.
Подключение библиотеки:
Давайте разберёмся, что же такое библиотека. Библиотека — это набор функций, предназначенных для того, чтобы максимально упростить работу с различными модулями, датчиками и т.д. Например, библиотека LowPower позволяет легко управлять режимами энергосбережения модулей Arduino. Существует огромное количество различных модулей и датчиков. Но как ими управлять? Для этого разработаны специальные библиотеки, которые значительно облегчают работу. Но перед тем, как использовать дополнительные библиотеки, необходимо установить и подключить их. А как подключить библиотеку, спросите Вы? Есть несколько способов:
- через среду Arduino IDE. Для этого перейдите в меню Скетч -> Подключить библиотеку.
Если нужная библиотека есть в списке, то необходимо просто кликнуть на неё мышкой и она автоматически подключится к Вашей программе. А что же делать, если нужной библиотеки нет в списке? В таком случае перейдите во вкладку Скетч -> Подключить библиотеку -> Управление библиотеками. Перед Вами откроется следующее окошко:
В правом верхнем углу необходимо ввести название нужно библиотеки. Далее, из списка надо выбрать нужную библиотеку, её версию и нажать кнопку установить. Обратите внимание, что есть возможность отсортировать результаты поиска (вкладки Тип и Тема). Теперь она появится в списке установленных библиотек и её можно подключить через меню Скетч -> Подключить библиотеку.
- Предварительно скачав нужную библиотеку её также можно подключить к своей программе. Если она находится в zip архиве, то её можно подключить следующим способом. Для этого нужно перейти в меню Скетч -> Подключить библиотеку -> Подключить .ZIP библиотеку и в открывшемся окошке выбрать zip архив с библиотекой. Теперь эта библиотека появится в списке установленных и её можно подключить через меню Скетч -> Подключить библиотеку. Если у Вас открыта Arduino IDE, то её нужно перезапустить, чтобы изменения были применены.
- Подключить библиотеку можно и без использования Arduino IDE. Для этого необходимо её скачать и скопировать папку с библиотекой по следующему пути: X:\Пользователи\\Документы\Arduino\libraries.
Если у Вас открыта Arduino IDE, то её нужно перезапустить, чтобы изменения были применены. Теперь эта библиотека появится в списке установленных и её можно подключить через меню
Скетч -> Подключить библиотеку. Однако можно и вручную в программе подключить библиотеку. Для этого перед функцией setup() нужно прописать следующую конструкцию #include или #include «имя заголовочного файла.h».
В каждой библиотеке есть различные примеры использования функционала библиотеки. Имя заголовочного файла можно найти там. Дорогой читатель, рекомендуем внимательно изучать примеры, ведь любая, даже большая программа, состоит из кусочков простых примеров.
Выбор платы:
Существует довольно большое количество модулей Arduino. Загружать написанную программу нужно именно в тот тип модуля, который подключён к компьютеру. Выбрать модуль можно в меню Инструменты -> Плата.

В списке находятся все официальные версии модулей Arduino. Если нужного модуля нет в списке, то его можно добавить. Это рассмотрено в следующем уроке.
Далее необходимо выбрать тип контроллера, который установлен на модуле Arduino (на каждом контроллере есть маркировка). Это можно сделать в меню Инструменты -> Процессор.

Компиляция программы:
Теперь, когда выбран конкретный модуль Arduino, можно переходить к компиляции написанной программы. Давайте разберёмся, что же такое компиляция. Если говорить простым языком и касательно среды Arduino IDE, то компиляция — это перевод написанной в IDE программы в эквивалентную, но в машинных кодах. Программа записывается в микроконтроллер именно в машинных кодах, а не в том виде, в котором она написана в IDE. Компиляция также помогает найти ошибки в программе, т.к. компиляция не будет выполнена, если в программе есть ошибки.
С понятием компиляции мы разобрались. А как теперь открыть скомпилировать написанную программу? Для этого в Arduino IDE предусмотрено несколько способов:
- из пункта меню Скетч -> Проверить/Компилировать;


- при помощи комбинации клавиш Ctrl + R;
- из панели с часто используемыми командами
После успешной компиляции будет выведено сообщение об этом. Также в области сообщений можно найти информацию о том, сколько памяти занимает написанная программа. Если в программе есть ошибки, тогда в области сообщений будет выведено сообщение с указанием конкретной строки и ошибки в ней.
Выбор программатора:
Пункт меню Инструменты -> Программатор используется для выбора аппаратного программатора, если программирование модуля или микроконтроллера осуществляется не при помощи встроенного USB-последовательного соединения. Как правило, эта команда используется довольно редко, однако может пригодиться, например, при записи загрузчика в новый микроконтроллер.
Т.к. в модулях Arduino уже есть свой встроенный программатор, то в качестве программатора в меню Инструменты -> Программатор нужно оставить стандартный AVRISP mkII.

Запись загрузчика:
При помощи команды Инструменты -> Записать загрузчик в микроконтроллер можно записать загрузчик. При использовании Arduino этого не требуется, однако эта команда может пригодиться если Вы хотите прошивать обычный микроконтроллер фирмы Atmel (именно микроконтроллеры фирмы Atmel стоят в модулях Arduino и как правило, они продаются без встроенного загрузчика) аналогично Arduino. Если Вы хотите разобраться с этим, рекомендуем прочесть этот урок .

Загрузка программы:
Теперь, когда почти со всеми элементами среды Arduino IDE мы разобрались, можно приступать к финальному этапу — загрузке программы в модуль Arduino.
Прежде чем загружать программу, нужно выбрать порт, к которому подключён Ваш модуль Arduino. Выбрать его можно в меню Инструменты -> Порт.

Это не обязательно должен быть COM5, как на рисунке. Имя порта у Вас, скорее всего, будет другим (COM3, COM 10 и т.д.).
Когда выбран соответствующий модуль Arduino, нужный порт, процессор и программатор, можно приступать к загрузке программы.
Для этого в Arduino IDE предусмотрено несколько способов:


- при помощи комбинации клавиш Ctrl + U;
- из панели с часто используемыми командами
В процессе загрузки программы первым этапом код будет скомпилирован, а только потом, если не возникло ошибок в ходе компиляции, будет записан в модуль Arduino. При успешной загрузке программы в области сообщений появится сообщение об этом.

Рекомендуем включить подробный вывод информации при компиляции и загрузке программы, это зачастую помогает выявить тип ошибки при компиляции или загрузке программы. Для этого в меню Файл -> Настройки установить соответствующие галочки.

Монитор последовательного порта:
Между Arduino и компьютером можно обмениваться данными через последовательный порт (он же интерфейс UART). Монитор последовательного порта может использоваться как для вывода отладочной информации от модуля Arduino, так и для других целей. Через него можно как отправлять данные в модуль Arduino, так и получать данные от него. Не забудьте выбрать порт, к которому подключён модуль Arduino, иначе монитор последовательного порта не откроется! При его открытии модуль Arduino перезагрузится!
Открыть окно монитора последовательного порта можно несколькими способами:
- из пункта меню Инструменты -> Монитор порта;


- при помощи комбинации клавиш Ctrl + Shift + M;
- из панели с часто используемыми командами (в правом верхнем углу)
После открытия монитора последовательного порта появится следующее окошко:

В самом низу этого окошка можно изменить скорость работы порта ( она должна совпадать с той, которая указана в программе! ) очистить окно и т.д.
Пример полного цикла разработки программы в Arduino IDE:
А теперь, дорогой читатель, давайте полностью пройдём все этапы разработки программы в Arduino IDE.
Начнём мы не со стандартного мигания светодиодом, а с классического примера из программирования — вывода на экран «Hello World!».

Запускаем Arduino IDE
Откроется следующее окошко:

Ждём открытия среды. Когда она открылась, создаём новую программу путём нажатия на комбинацию клавиш Ctrl + N.

Теперь давайте сохраним эту программу под именем Hello_World, для этого нажимаем на комбинацию клавиш Ctrl + S, вводим путь, куда сохраним программу и её имя.

В указанной директории появится папка с программой Hello_World.

Теперь давайте напишем сам код. Мы хотим с периодичностью в 5 секунд выводить сообщение Hello World! на экран, т.е. в монитор последовательного порта. Никаких сторонних библиотек для этого нам не понадобится. Скопируйте следующий код в IDE.
Текст программы:
Аrduino для начинающих
В этой статье я решал собрать полное пошаговое руководство для начинающих Arduino. Мы разберем что такое ардуино, что нужно для начала изучения, где скачать и как установить и настроить среду программирования, как устроен и как пользоваться языком программирования и многое другое, что необходимо для создания полноценных сложных устройств на базе семейства этих микроконтроллеров.
Тут я постараюсь дать сжатый минимум для того, что бы вы понимали принципы работы с Arduino. Для более полного погружения в мир программируемых микроконтроллеров обратите внимание на другие разделы и статьи этого сайта. Я буду оставлять ссылки на другие материалы этого сайта для более подробного изучения некоторых аспектов.
Что такое Arduino и для чего оно нужно?
Arduino — это электронный конструктор, который позволяет любому человеку создавать разнообразные электро-механические устройства. Ардуино состоит из программной и аппаратной части. Программная часть включает в себя среду разработки (программа для написания и отладки прошивок), множество готовых и удобных библиотек, упрощенный язык программирования. Аппаратная часть включает в себя большую линейку микроконтроллеров и готовых модулей для них. Благодаря этому, работать с Arduino очень просто!
С помощью ардуино можно обучаться программированию, электротехнике и механике. Но это не просто обучающий конструктор. На его основе вы сможете сделать действительно полезные устройства.
Начиная с простых мигалок, метеостанций, систем автоматизации и заканчивая системой умного дома, ЧПУ станками и беспилотными летательными аппаратами. Возможности не ограничиваются даже вашей фантазией, потому что есть огромное количество инструкций и идей для реализации.

Стартовый набор Arduino
Для того что бы начать изучать Arduino необходимо обзавестись самой платой микроконтроллера и дополнительными деталями. Лучше всего приобрести стартовый набор Ардуино, но можно и самостоятельно подобрать все необходимое. Я советую выбрать набор, потому что это проще и зачастую дешевле. Вот ссылки на лучшие наборы и на отдельные детали, которые обязательно пригодятся вам для изучения:
| Базовый набор ардуино для начинающих: | Купить |
| Большой набор для обучения и первых проектов: | Купить |
| Набор дополнительных датчиков и модулей: | Купить |
| Ардуино Уно самая базовая и удобная модель из линейки: | Купить |
| Беспаечная макетная плата для удобного обучения и прототипирования: | Купить |
| Набор проводов с удобными коннекторами: | Купить |
| Комплект светодиодов: | Купить |
| Комплект резисторов: | Купить |
| Кнопки: | Купить |
| Потенциометры: | Купить |
Среда разработки Arduino IDE
Для написания, отладки и загрузки прошивок необходимо скачать и установить Arduino IDE. Это очень простая и удобная программа. На моем сайте я уже описывал процесс загрузки, установки и настройки среды разработки. Поэтому здесь я просто оставлю ссылки на последнюю версию программы и на статью с подробной инструкцией.
Язык программирования Ардуино
Когда у вас есть на руках плата микроконтроллера и на компьютере установлена среда разработки, вы можете приступать к написанию своих первых скетчей (прошивок). Для этого необходимо ознакомиться с языком программирования.
Для программирования Arduino используется упрощенная версия языка C++ с предопределенными функциями. Как и в других Cи-подобных языках программирования есть ряд правил написания кода. Вот самые базовые из них:
- После каждой инструкции необходимо ставить знак точки с запятой (;)
- Перед объявлением функции необходимо указать тип данных, возвращаемый функцией или void если функция не возвращает значение.
- Так же необходимо указывать тип данных перед объявлением переменной.
- Комментарии обозначаются: // Строчный и /* блочный */
Подробнее о типах данных, функциях, переменных, операторах и языковых конструкциях вы можете узнать на странице по программированию Arduino. Вам не нужно заучивать и запоминать всю эту информацию. Вы всегда можете зайти в справочник и посмотреть синтаксис той или иной функции.
Все прошивки для Arduino должны содержать минимум 2 функции. Это setup() и loop().
Функция setup
Функция setup() выполняется в самом начале и только 1 раз сразу после включения или перезагрузки вашего устройства. Обычно в этой функции декларируют режимы пинов, открывают необходимые протоколы связи, устанавливают соединения с дополнительными модулями и настраивают подключенные библиотеки. Если для вашей прошивки ничего подобного делать не нужно, то функция все равно должна быть объявлена. Вот стандартный пример функции setup():
void setup() < Serial.begin(9600); // Открываем serial соединение pinMode(9, INPUT); // Назначаем 9 пин входом pinMode(13, OUTPUT); // Назначаем 13 пин выходом >
В этом примере просто открывается последовательный порт для связи с компьютером и пины 9 и 13 назначаются входом и выходом. Ничего сложного. Но если вам что-либо не понятно, вы всегда можете задать вопрос в комментариях ниже.
Функция loop
Функция loop() выполняется после функции setup(). Loop в переводе с английского значит «петля». Это говорит о том что функция зациклена, то есть будет выполняться снова и снова. Например микроконтроллер ATmega328, который установлен в большинстве плат Arduino, будет выполнять функцию loop около 10 000 раз в секунду (если не используются задержки и сложные вычисления). Благодаря этому у нас есть большие возможности.
Макетная плата Breadbord
Вы можете создавать простые и сложные устройства. Для удобства я советую приобрести макетную плату (Breadbord) и соединительные провода. С их помощью вам не придется паять и перепаивать провода, модули, кнопки и датчики для разных проектов и отладки. С беспаечной макетной платой разработка становится более простой, удобной и быстрой. Как работать с макетной платой я рассказывал в этом уроке. Вот список беспаечных макетных плат:
| Макетная плата на 800 точек с 2 шинами питания, платой подачи питания и проводами: | Купить |
| Большая макетная плата на 1600 точек с 4 шинами питания: | Купить |
| Макетная плата на 800 точек с 2 шинами питания: | Купить |
| Макетная плата на 400 точек с 2 шинами питания: | Купить |
| Макетная плата на 170 точек: | Купить |
| Соединительные провода 120 штук: | Купить |
Первый проект на Arduino
Давайте соберем первое устройство на базе Ардуино. Мы просто подключим тактовую кнопку и светодиод к ардуинке. Схема проекта выглядит так:

Обратите внимание на дополнительные резисторы в схеме. Один из них ограничивает ток для светодиода, а второй притягивает контакт кнопки к земле. Как это работает и зачем это нужно я объяснял в этом уроке.
Для того что бы все работало, нам надо написать скетч. Давайте сделаем так, что бы светодиод загорался после нажатия на кнопку, а после следующего нажатия гас. Вот наш первый скетч:
// переменные с пинами подключенных устройств int switchPin = 8; int ledPin = 11; // переменные для хранения состояния кнопки и светодиода boolean lastButton = LOW; boolean currentButton = LOW; boolean ledOn = false; void setup() < pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); >// функция для подавления дребезга boolean debounse(boolean last) < boolean current = digitalRead(switchPin); if(last != current) < delay(5); current = digitalRead(switchPin); >return current; > void loop() < currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) < ledOn = !ledOn; >lastButton = currentButton; digitalWrite(ledPin, ledOn); >
В этом скетче я создал дополнительную функцию debounse для подавления дребезга контактов. О дребезге контактов есть целый урок на моем сайте. Обязательно ознакомьтесь с этим материалом.
ШИМ Arduino
Широтно-импульсная модуляция (ШИМ) — это процесс управления напряжением за счет скважности сигнала. То есть используя ШИМ мы можем плавно управлять нагрузкой. Например можно плавно изменять яркость светодиода, но это изменение яркости получается не за счет уменьшения напряжения, а за счет увеличения интервалов низкого сигнала. Принцип действия ШИМ показан на этой схеме:

Когда мы подаем ШИМ на светодиод, то он начинает быстро зажигаться и гаснуть. Человеческий глаз не способен увидеть это, так как частота слишком высока. Но при съемке на видео вы скорее всего увидите моменты когда светодиод не горит. Это случится при условии что частота кадров камеры не будет кратна частоте ШИМ.
В Arduino есть встроенный широтно-импульсный модулятор. Использовать ШИМ можно только на тех пинах, которые поддерживаются микроконтроллером. Например Arduino Uno и Nano имеют по 6 ШИМ выводов: это пины D3, D5, D6, D9, D10 и D11. В других платах пины могут отличаться. Вы можете найти описание интересующей вас платы в этом разделе.
Для использования ШИМ в Arduino есть функция analogWrite(). Она принимает в качестве аргументов номер пина и значение ШИМ от 0 до 255. 0 — это 0% заполнения высоким сигналом, а 255 это 100%. Давайте для примера напишем простой скетч. Сделаем так, что бы светодиод плавно загорался, ждал одну секунду и так же плавно угасал и так до бесконечности. Вот пример использования этой функции:
// Светодиод подключен к 11 пину int ledPin = 11; void setup() < pinMode(ledPin, OUTPUT); >void loop() < for (int i = 0; i < 255; i++) < analogWrite(ledPin, i); delay(5); >delay(1000); for (int i = 255; i > 0; i--) < analogWrite(ledPin, i); delay(5); >>
Аналоговые входы Arduino
Как мы уже знаем, цифровые пины могут быть как входом так и выходом и принимать/отдавать только 2 значения: HIGH и LOW. Аналоговые пины могут только принимать сигнал. И в отличии от цифровых входов аналоговые измеряют напряжение поступающего сигнала. В большинстве плат ардуино стоит 10 битный аналогово-цифровой преобразователь. Это значит что 0 считывается как 0 а 5 В считываются как значение 1023. То есть аналоговые входы измеряют, подаваемое на них напряжение, с точностью до 0,005 вольт. Благодаря этому мы можем подключать разнообразные датчики и резисторы (терморезисторы, фоторезисторы) и считывать аналоговый сигнал с них.
Для этих целей в Ардуино есть функция analogRead(). Для примера подключим фоторезистор к ардуино и напишем простейший скетч, в котором мы будем считывать показания и отправлять их в монитор порта. Вот так выглядит наше устройство:

В схеме присутствует стягивающий резистор на 10 КОм. Он нужен для того что бы избежать наводок и помех. Теперь посмотрим на скетч:
int sensePin = 0; // Пин к которому подключен фоторезистор void setup() < analogReferense(DEFAULT); // Задаем опорное значение напряжения. Эта строка не обязательна. Serial.begin(9600); // Открываем порт на скорости 9600 бод. >void loop() < Serial.println(analogRead(sensePin)); // Считываем значение и выводим в порт delay(500); // задержка для того что бы значений было не слишком много >
Вот так из двух простейших элементов и четырех строк кода мы сделали датчик освещенности. На базе этого устройства мы можем сделать умный светильник или ночник. Очень простое и полезное устройство.
Вот мы и рассмотрели основы работы с Arduino. Теперь вы можете сделать простейшие проекты. Что бы продолжить обучение и освоить все тонкости, я советую прочитать книги по ардуино и пройти бесплатный обучающий курс. После этого вы сможете делать самые сложные проекты, которые только сможете придумать.
19 комментариев
- Владимир 2019-01-29 16:31:50
Добрый день, господа!
Очень интересный сайт. Много полезной информации и подача материала спокойная.
Мне нравиться.
Вопрос у меня. Чую попал на грамотных спецов.
Приобрел я на Али китайскую чудо технику — лазерный гравировщик-выжигатель (2 Ватт.).
Плата управления Arduino Nano, драйвера на двигатели на красных платках.
Как водится описание слабое, информация. да все по-китайски. Начал разбираться.
Собрал, заработала машина, задымила. Поправил конфигурацию, на одной оси сделал инверсию.
Самое отвратительное — это ПО. Только зайчиков выжигать. Решил сменить.
Залил GRBL v1.1, программу взял LaserGRBL (версия из последних).
Программа увидела девайс, подключилась на СОМ, ожила, тут бы обрадоваться, да нет.
G-код готовится правильно, но команды включения М3 и выключения М5 лазера, которые прописаны в коде, не выполняются.
Лазер включается при включении девайса, и находится включенным все время, даже в остановленном состоянии (G-код еще не запущен, передвижения нет). При быстром передвижении лазера по рисунку он не выключается и все время жгет, рисуя за собой прожженную черту.
Подскажите, пожалуйста, как заставить лазер отключаться согласно G-коду? Как заставить девайс выполнять команды G-кода М3 и М5? Пробовал в конфигурации ставить и $32=1, и $32=0 — никак не реагирует. Жгет без остановки. Перепрошивал v1.1 — бесполезно.
Мне уже 65 отроду. Некогда досконально изучать Arduino. Говорят, что не поступают команды на лазер.
Да тут и ежику понятно. Как это можно исправить? В настройках галочку с ШИМ снял.
Подскажите, пожалуйста.
С уважением Владимир
- Евгений 2019-12-02 09:02:15
дело в том, что легче написать новую прошивку, чем разбираться в прошивке, а для этого надо понимать, как работает ваше устройство! т.е. надо работать вместе программист, и пользователь!
иначе никак!
илли 2 способ- изучите программирование, и пишите сами что вам надо!
поверьте- это не так сложно!