Установка ардуино ide на windows 7. Установка и настройка Arduino в ОС Windows. Библиотеки для программной среды

Проверка/Оформление/Редактирование: Мякишев Е.А.

Среда разработки (IDE) Arduino

Интегрированная среда разработки Arduino (она же IDE Arduino ) содержит текстовый редактор для написания кода, область для сообщений, текстовую консоль, кнопочную панель инструментов (для самых ходовых функций), а также несколько меню. Кроме того, IDE Arduino умеет подключаться к платам Arduino и Genuino , и это нужно, например, для загрузки скетчей и коммуникации между пользователем и аппаратной составляющей Arduino .

Написание скетчей

Программы, написанные в среде разработки Arduino , называются скетчами. Они пишутся в текстовом редакторе IDE и сохраняются в файлах с расширением *.ino . В редакторе есть функции для вырезания/вставки, а также для поиска/замены текста. Область для сообщений дает обратную связь при сохранении и экспорте скетчей, а также отображает ошибки. Консоль отображает текстовые данные, исходящие от IDE , включая полные сообщения об ошибках и другую информацию. В нижнем правом углу окна отображаются плата и последовательный порт, настроенные в данный момент. Кнопочная панель инструментов дает возможность проверять, загружать, создавать, открывать и сохранять скетчи, а также открывать последовательный монитор.

Примечание. Версии IDE Arduino до 1.0 сохраняют скетчи с расширением *.pde . Впрочем, в версии 1.0 эти скетчи открывать все же можно, но при сохранении вас попросят дать этим скетчам расширение *.ino .

Кнопки на панели инструментов:

Дополнительные команды IDE Arduino можно найти в меню Файл (File) , Правка (Edit) , Скетч (Sketch) , Инструменты (Tools) и Помощь (Help) . Эти меню контекстно-зависимы, т.е. они будут доступны лишь в том случае, если имеют отношение к выполняемой работе.

Меню «Файл»:

  • Новый (New) – Создает новый экземпляр текстового редактора, в котором уже будет минимальный код для создания нового скетча.
  • Открыть (Open) – Позволяет загрузить скетч, ища его в дисках и папках компьютера.
  • Открыть недавние (Open Recent) – Выдает короткий список недавно открытых скетчей, уже готовых к работе.
  • Папка со скетчами (Sketchbook) – Показывает скетчи, находящиеся в данный момент в папке со скетчами (т.е. в «скетчбуке» ). Если кликнуть по названию какого-либо из показанных скетчей, он тут же откроется в новом экземпляре IDE Arduino .
  • Примеры (Examples) – Тут будут показаны все примеры и библиотеки, идущие в комплекте с IDE Arduino . Все примеры структурированы в древовидную форму, что позволяет быстро найти нужную тему или библиотеку.
  • Закрыть (Close) – Закрывает текущий экземпляр IDE Arduino .
  • Сохранить (Save) – Сохраняет скетч под текущим названием. Если файл еще не был назван, название будет предложено в окне «Сохранить как…» (Save as…) .
  • Сохранить как… (Save as…) – Дает возможность сохранить текущий скетч под другим названием.
  • Настройки страницы (Page Setup) – Показывает окно «Настройки страницы» для печати скетча на принтере.
  • Печать (Print) – Отсылает текущий скетч на принтер в соответствии с настройками, заданными в меню «Настройки страницы» .
  • Настройки (Preferences) – Открывает окно «Настройки» , где можно, соответственно, подправить некоторые настройки IDE Arduino . К примеру, язык интерфейса.
  • Выход (Quit) – Закрывает все окна IDE Arduino . Впрочем, когда вы запустите IDE Arduino в следующий раз, все скетчи, которые были открыты при нажатии на «Выход» , автоматически откроются заново.

Меню «Правка»:

  • Отменить/Вернуть (Undo/Redo) – Команда «Отменить» возвращает работу в текстовом редакторе на один или несколько шагов назад, а «Вернуть» позволяет вернуться вперед.
  • Вырезать (Cut) – Удаляет выбранный фрагмент кода и помещает его в буфер.
  • Копировать (Copy) – Дублирует выбранный фрагмент кода и помещает его в буфер.
  • Копировать для форума (Copy for Forum) – Копирует выбранный фрагмент кода в буфер, попутно приводя его в надлежащий вид для публикации на форуме (вместе с цветовой подсветкой синтаксиса).
  • Копировать в HTML (Copy as HTML) – Копирует выбранный фрагмент кода в буфер в HTML -виде, чтобы его можно было встроить в веб-страницы.
  • Вставить (Paste) – Вставляет содержимое буфера в то место редактора, где находится курсор.
  • Выделить все (Select All) – Выбирает и высвечивает все содержимое текстового редактора.
  • Добавить/Удалить комментарий (Comment/Uncomment) – Добавляет или удаляет знак комментария (т.е. «//»
  • Увеличить/Уменьшить отступ (Increase/Decrease Indent) – Добавляет или убирает пустое пространство (как при нажатии на кнопку « Пробел » ) в начале каждой строки в выбранном фрагменте кода.
  • Найти (Find) – Открывает меню «Найти» , где вы, задав определенные параметры, можете указать текст, который нужно найти в текущем скетче.
  • Найти далее (Find Next) – Высвечивает в тексте следующий (по отношению к положению курсора) искомый фрагмент, заданный в меню «Найти» .
  • Найти предыдущее (Find Previous) – Высвечивает в тексте предыдущий (по отношению к положению курсора) искомый фрагмент, заданный в меню «Найти» .

Меню «Скетч»:

  • Проверить/Компилировать (Verify/Compile) – Проверяет скетч на ошибки, компилируя его. Данные о проверке, включая информацию об используемой памяти и глобальных переменных, будут показаны в консоли.
  • – Компилирует и загружает бинарный файл на сконфигурированную плату через сконфигурированный порт.
  • Загрузить через программатор (Upload Using Programmer) – Перезаписывает загрузчик на плате. Позволяет использовать для скетчей полный объем Flash -памяти. Чтобы восстановить перезаписанный загрузчик и снова получить возможность загружать скетчи через последовательный USB -порт, вам надо будет воспользоваться пунктом Инструменты > Записать загрузчик (Tools > Burn Bootloader) . Имейте в виду, что это команда НЕ ЗАПИСЫВАЕТ фьюз-биты – для этого используется, опять же, пункт Инструменты > Записать загрузчик (Tools > Burn Bootloader) .
  • Экспорт бинарного файла (Export Compiled Binary) – Сохраняет скетч в формате *.hex , который можно хранить в виде архива либо отправить на плату при помощи других инструментов.
  • Показать папку скетча (Show Sketch Folder) – Открывает папку текущего скетча.
  • Подключить библиотеку (Include Library) – Добавляет к скетчу библиотеку, используя для этого директиву #include , вставляемую в начало кода. Более подробно читайте ниже, в разделе «Библиотеки» . Кроме того, здесь можно открыть «Менеджер библиотек» и с его помощью добавить из ZIP -файлов новые библиотеки.
  • Добавить файл... (Add File…) – Добавляет в скетч новый файл (он будет скопирован из того места, где находится в данный момент). Новый файл появится в новой вкладке текущего окна IDE Arduino . Файл можно удалить при помощи меню закладок, которое открывается при нажатии на маленький треугольник, находящийся под иконкой монитора порта с правой стороны от панели инструментов.

Меню «Инструменты»:

  • АвтоФорматирование (Auto Format) – Красиво форматирует скетч, т.е. добавляет к нему отступы, чтобы открывающие и закрывающие фигурные скобки были выстроены в одну линию, а операторы внутри фигурных скобок стояли еще правее.
  • Архивировать скетч (Archive Sketch) – Архивирует копию текущего скетча в ZIP -файл. Архив помещается в ту же директорию, где находится скетч.
  • Исправить кодировку и перезагрузить (Fix Encoding & Reload) – Исправляет возможные расхождения между картой символов редактора IDE Arduino и картами символов других ОС .
  • Монитор порта (Serial Monitor) – Открывает окно монитора порта и инициирует обмен данными с любой подключенной платой через выбранный в данный момент порт. Как правило, это включает у платы сброс, но только в том случае, если она поддерживает сброс через открытие последовательного порта.
  • Плата (Board) – Выбирает плату, которую вы будете использовать. Описания разных плат можно прочесть ниже в разделе «Платы» .
  • Порт (Port) – В этом меню отображаются все устройства с последовательным интерфейсом (реальные и виртуальные), подключенные к плате. Этот список автоматически обновляется каждый раз, когда вы открываете меню «Инструменты» , находящееся уровнем выше.
  • Программатор (Programmer) – Используется для выбора аппаратного программатора, если программирование платы или чипа осуществляется не при помощи встроенного USB -последовательного соединения. Как правило, эта команда используется редко, но может пригодиться, к примеру, при записи загрузчика на новый микроконтроллер.
  • Записать Загрузчик (Burn Bootloader) – Позволяет записать загрузчик на микроконтроллер платы Arduino . При обычном использовании Arduino или Genuino эта команда не требуется, однако она может пригодиться, если вы купили новый микроконтроллер ATmega (который, как правило, поставляется без загрузчика). Перед записью загрузчика убедитесь, что выбрали правильную плату – это делается в меню Инструменты > Плата (Tools > Board) . Этой командой также устанавливаются нужные фьюз-биты.

Меню «Помощь»:

Здесь осуществляется быстрый доступ к множеству документов, идущих в комплекте с IDE Arduino , т.е. их можно читать, даже не имея доступа к интернету. Тут есть статьи «Для начинающих» , «Справочник» по языку Arduino , руководство по IDE и пр. Все эти документы являются локальными копиями тех, что расположены на сайте Arduino , и имеют ссылки для перехода на свои онлайн-версии.

  • Найти в Справочнике (Find in Reference) – Это единственная интерактивная функция в меню «Помощь» . Она позволяет напрямую открыть локальную статью об элементе языка Arduino , на котором в данный момент стоит курсор в текстовом редакторе IDE .

Папка со скетчами (Скетчбук)

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

Примечание: Начиная с версии 1.0 скетчи сохраняются с расширением *.ino . Ранее они сохранялись в формате *.pde . Впрочем, даже работая с версией 1.0 и выше, вы по-прежнему можете открывать PDE -файлы, но IDE будет автоматически переименовывать их в расширение *.ino .

Вкладки

Позволяют управлять скетчами, содержащими больше одного файла (каждый из которых будет находиться в собственной вкладке). Это могут быть обычные файлы в виде кода для Arduino (расширения не видно), C файлы (расширение *.c ), C++ файлы (расширение *.cpp ) и «заголовочные» файлы (расширение

Перед загрузкой скетча вам надо выбрать правильные пункты в меню Инструменты > Плата (Tools > Board) и Инструменты > Порт (Tools > Port) . Список плат можно найти ниже в разделе «Платы» . На Mac последовательный порт будет, вероятно, /dev/tty.usbmodem241 (для Uno , Mega2560 или Leonardo ), /dev/tty.usbserial-1B1 (для Duemilanove и других ранних USB -моделей) или /dev/tty.USA19QW1b1P1.1 (для платы с последовательным соединением, подключенной при помощи USB -последовательного адаптера Keyspan ). На Windows это будет, возможно, COM1 или COM2 (для платы с последовательным подключением), COM4 , COM5 , COM7 или выше (для плат с USB -соединением) – чтобы выяснить, ищите USB -последовательное устройство в Диспетчере Устройств в секции с портами. На Linux это должен быть /dev/ttyACMx , /de/ttyUSBx или что-то вроде этого. Выбрав правильные порт и плату, нажмите на кнопку , находящуюся на панели инструментов, или выберите пункт в меню «Файл» . Плата, подключенная к IDE , автоматически сбросится, после чего начнется загрузка. У старых моделей (т.е. у предшественников Diecimilia ) автоматического сброса нет, поэтому вам перед загрузкой скетча придется нажимать на кнопку сброса самостоятельно. На большинстве плат после загрузки скетча начинают моргать RX - и TX -светодиоды. Кроме того, если загрузка будет выполнена успешно, об этом сообщит и IDE Arduino , а если нет – покажет ошибку.

Загружая скетч, вы используете загрузчик Arduino – маленькую программу, загруженную в микроконтроллер вашей платы. Она позволяет загружать код без использования дополнительного оборудования. Загрузчик активен в течение нескольких секунд, пока плата находится в режиме сбрасывания, а затем запускает скетч, который был загружен в микроконтроллер самым последним. Когда загрузчик запустится (т.е. когда у платы будет запущен режим сбрасывания), на плате начнет моргать встроенный (13-ый) светодиод.

Библиотеки

Благодаря библиотекам скетчи можно снабдить дополнительным функционалом – например, для работы с новым оборудованием или манипуляцией данных. Чтобы использовать в скетче какую-либо библиотеку, выберите ее в меню Скетч > Подключить библиотеку (Sketch > Include Library). Это добавит в начало скетча одну или несколько директив #include, а также скомпилирует библиотеку вместе со скетчем. Поскольку библиотеки загружаются на плату вместе со скетчем, из-за этого увеличивается объем места, занимаемого скетчем. Если библиотека больше не нужна, просто удалите из верхней части кода директивы #include.

Список библиотек можно найти . Некоторые библиотеки уже идут в комплекте с IDE Arduino , а другие можно загрузить из различных источников при помощи «Менеджера библиотек» .

Начиная с версии 1.0.5 библиотеку можно добавить из ZIP -файла и использовать ее в открытом скетче. Инструкции по установке сторонней библиотеки можно прочесть тут. Если вы хотите написать собственную библиотеку, читайте .

Оборудование от сторонних разработчиков

Поддержку стороннего оборудования можно добавить через создание в папки со скетчами подпапки hardware. Тем самым в IDE можно добавить файлы, содержащие информацию о плате (отображается в меню «Плата» ), корневые библиотеки, загрузчики и информацию о программаторах. Чтобы установить платформу, создайте папку hardware , а затем распакуйте стороннюю платформу в ее собственную подпапку. Не давайте подпапке название «arduino» , т.к. это перезапишет встроенную платформу Arduino . Чтобы удалить платформу, просто удалите ее подпапку.

Более подробно о создании пакетов для стороннего оборудования читайте .

Монитор порта

Здесь отображаются данные, идущие от Arduino/Genuino (поддерживаются и обычные, и USB -модели) на компьютер по последовательному интерфейсу. Чтобы отправить данные плате, введите текст, а потом кликните на кнопку отправки или просто нажмите ↵ Enter . В выпадающем списке веберите скорость передачи данных, соответствующую скорости, указанной в Serial.begin вашего скетча. Имейте в виду, что на Windows , Mac и Linux при подключении через монитор порта плата Arduino/Genuino выполнит сброс (т.е. вернет выполнение скетча в начальное положение). «Разговаривать» с платой можно также через Processing , Flash , MaxMSP и т.д. Более подробно читайте .

Настройки

Некоторые настройки можно задать в меню «Настройки» (на Mac оно находится в меню Arduino , а на Windows и Linux – в «Файл» ). Все остальное находится в файле настроек, месторасположение которого указано в том же меню «Настройки» .

Языковая поддержка

Начиная с версии 1.0.1 , интерфейс IDE Arduino поддерживает более 30 языков . По умолчанию в IDE Arduino будет выбран язык, выбранный в вашей операционной системе. Но обратите внимание, что на Windows , а также, возможно, на Linux , это определяется локальными настройками дат и валюты, а не языком, которым «озвучена» операционная система.

Если вы хотите вручную поменять языковые настройки, запустите IDE Arduino и откройте окно «Настройки» (Preferences) . Рядом с надписью будет выпадающее меню со списком поддерживаемых в данный момент языков. Выберите нужный язык, а затем перезапустите IDE Arduino . Если язык вашей ОС не поддерживается, то интерфейс IDE Arduino будет автоматически переведен на английский.

Чтобы вернуть языковые настройки к настройкам по умолчанию, в выпадающем меню «Язык редактора» (Editor Language) нужно выбрать «По умолчанию» (System Default) . Это изменение вступит в силу лишь после того, как вы перезапустите IDE Arduino. Кроме того, если вы поменяли языковые настройки ОС , то для того, чтобы в IDE Arduino появился новый язык, ее тоже нужно перезагрузить.

Платы

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

Ниже перечислены платы, для которых в IDE Arduino имеется встроенная поддержка, и все они базируются на ядре AVR . Кроме того, «Менеджер плат» , имеющийся в стандартной версии IDE Arduino , позволяет добавить поддержку новых плат с другими ядрами – вроде Arduino Due , Arduino Zero , Edison , Galileo и т.д.

  • Arduino Yun. Процессор ATmega32u4 на 16 МГц (с автоматическим сбросом), 12 входных аналоговых контактов, 20 входных/выходных (I/O) цифровых контактов, семь каналов широтно-импульсной модуляции (ШИМ-каналов).
  • Arduino/Genuino Uno. ATmega328 на 16 МГц (с автоматическим сбросом), 6 входных аналоговых контактов, 14 входных/выходных цифровых контактов и 6 ШИМ-каналов.
  • Arduino Diecimilia или Duemilanove с ATmega168. ATmega168 на 16 МГц (с автоматическим сбросом).
  • Arduino Nano с ATmega328. ATmega328 на 16 МГц (с автоматическим сбросом), 8 входных аналоговых контактов.
  • Arduino/Genuino Mega 2560. ATmega2560 на 16 МГц (с автоматическим сбросом), 16 входных аналоговых контактов, 54 входных/выходных цифровых контакта и 15 ШИМ-каналов.
  • Arduino Mega. ATmega1280 на 16 МГц (с автоматическим сбросом), 16 входных аналоговых контактов, 54 входных/выходных цифровых контакта и 15 ШИМ-каналов.
  • Arduino Mega ADK. ATmega2560 на 16 МГц (с автоматическим сбросом), 16 входных аналоговых контактов, 54 входных/выходных цифровых контакта и 15 ШИМ-каналов.
  • Arduino Leonardo. ATmega32u4 на 16 Мгц (с автоматическим сбросом), 12 входных аналоговых контактов, 20 входных/выходных цифровых контактов и 7 ШИМ-каналов.
  • Arduino Micro. ATmega32u4 на 16 Мгц (с автоматическим сбросом), 12 входных аналоговых контактов, 20 входных/выходных цифровых контактов и 7 ШИМ-каналов.
  • Arduino Esplora. ATmega32u4 на 16 Мгц (с автоматическим сбросом).
  • Arduino Mini с ATmega328. ATmega328 на 16 МГц (с автоматическим сбросом), 8 входных аналоговых контактов, 14 входных/выходных цифровых контактов и 6 ШИМ-каналов.
  • Arduino Ethernet. Эквивалент Arduino Uno с модулем Ethernet Shield. ATmega328 на 16 МГц (с автоматическим сбросом), 6 входных аналоговых контактов, 14 входных/выходных цифровых контактов и 6 ШИМ-каналов.
  • Arduino Fio. ATmega328 на 8 МГц (с автоматическим сбросом). Эквивалент Arduino Pro или Pro Mini (3.3B, 8 МГц) с ATmega328, 6 входными аналоговыми контактами, 14 входными/выходными цифровыми контактами и 6 ШИМ-каналами.
  • Arduino BT с ATmega328. ATmega328 на 16 МГц. Записанный загрузчик (4 Кб) включает в себя код для инициализации встроенного Bluetooth-модуля. Также имеются 6 входных аналоговых контактов, 14 входных/выходных цифровых контактов и 6 ШИМ-каналов.
  • LilyPad Arduino USB. ATmega32u4 на 8 МГц (с автоматическим сбросом), 4 входных аналоговых контакта, 9 входных/выходных аналоговых контактов и 4 ШИМ-канала.
  • LilyPad Arduino. ATmega168 или ATmega132 на 8 МГц (с автоматическим сбросом), 6 входных аналоговых контактов, 14 входных/выходных цифровых контактов и 6 ШИМ-каналов.
  • Arduino Pro или Pro Mini (5В, 16 МГц) с ATmega328. ATmega328 на 16 МГц (с автоматическим сбросом). Эквивалент Arduino Duemilanove или Nano с ATmega328, 6 входными аналоговыми контактами, 14 входными/выходными цифровыми контактами и 6 ШИМ-каналами.
  • Arduino NG (или раньше) с ATmega168. ATmega168 на 16 МГц (без автоматического сброса). Компиляция и загрузка эквивалентны Arduino Diecimila или Duemilanove с ATmega168, но записанный загрузчик имеет более долгую задержку (и при сбросе три раза моргает встроенным светодиодом на 13-ом контакте). Также имеются 6 входных аналоговых контактов, 14 входных/выходных цифровых контактов и 6 ШИМ-каналов.
  • Arduino Robot Control. ATmega328 на 16 МГц (с автоматическим сбросом).
  • Arduino Robot Motor. ATmega328 на 16 МГц (с автоматическим сбросом).
  • Arduino Gemma. ATtiny85 на 8 МГц (с автоматическим сбросом), 1 входной аналоговый контакт, 3 входных/выходных цифровых контакта и 2 ШИМ-канала.

Инструкции по добавлению поддержки новых плат смотрите в разделе «Оборудование от сторонних разработчиков» выше.

Вы стали счастливым обладателем платы Arduino. Что же делать дальше? А дальше нужно подружить Arduino с компьютером. Мы рассмотрим начало работы с Arduino Uno в операционной системе Windows.

1. Установка Arduino IDE

Для начала нужно установить на компьютер интегрированную среду разработки Arduino - Arduino IDE.

Установка Arduino IDE с помощью инсталлятора избавит вас от большинства потенциальных проблем с драйверами и программным окружением.

2. Запуск Arduino IDE

После того как вы загрузили и установили Arduino IDE, давайте запустим её!

Перед нами окно Arduino IDE. Обратите внимание - мы ещё не подключали нашу плату Arduino Uno к компьютеру, а в правом нижнем углу уже красуется надпись «Arduino Uno on COM1». Таким образом Arduino IDE сообщает нам, что в данный момент она настроена на работу с целевой платой Arduino Uno. А когда придёт время, Arduino IDE будет искать Arduino Uno на порту COM1.

Позже мы поменяем эти настройки.

Что-то пошло не так?

    Arduino IDE не запускается? Вероятно на компьютере некорректно установлена JRE (Java Runtime Environment). Обратитесь к пункту (1) для переустановки Arduino IDE: инсталлятор сделает всю работу по развёртыванию JRE.

3. Подключение Arduino к компьютеру

После установки Arduino IDE пришло время подключить Arduino Uno к компьютеру.

Соедините Arduino Uno с компьютером через USB-кабель. Вы увидите, как на плате загорится светодиод «ON», и начнёт мигать светодиод «L». Это означает, что на плату подано питание, и микроконтроллер Arduino Uno начал выполнять прошитую на заводе программу «Blink» (мигание светодиодом).

Чтобы настроить Arduino IDE на работу с Arduino Uno, нам необходимо узнать, какой номер COM-порта присвоил компьютер Arduino Uno. Для этого нужно зайти в «Диспетчер устройств» Windows и раскрыть вкладку «Порты (COM и LPT)». Мы должны увидеть следующую картину:

Это означает, что операционная система распознала нашу плату Arduino Uno как COM-порт, подобрала для неё правильный драйвер и назначила этому COM-порту номер 7. Если мы подключим к компьютеру другую плату Arduino, то операционная система назначит ей другой номер. Поэтому, если у вас несколько плат Arduino, очень важно не запутаться в номерах COM-портов.

Что-то пошло не так?

4. Настройка Arduino IDE на работу с Arduino Uno

Теперь нам необходимо сообщить Arduino IDE, что плата, с которой ей предстоит общаться, находится на COM-порту «COM7».

Для этого переходим в меню «Сервис» → «Последовательный порт» и выбираем порт «COM7». Теперь Arduino IDE знает - что-то находится на порту «COM7». И с этим «чем-то» ей вскоре предстоит общаться.

Чтобы у Arduino IDE не осталось никаких сомнений, необходимо прямо указать: «Мы будем использовать Arduino Uno!». Для этого переходим в меню «Сервис» → «Плата» и выбираем нашу «Arduino Uno».

Что-то пошло не так?

    Список последовательных портов пуст? Значит Arduino Uno некорректно подключена. Вернитесь к пункту (3), чтобы отладить соединение.

    Arduino IDE невероятно тормозит при навигации по меню? Отключите в диспетчере устройств все внешние устройства типа «Bluetooth Serial». Например, виртуальное устройство для соединения с мобильным телефоном по Bluetooth может вызвать такое поведение.

Среда настроена, плата подключена. Теперь можно переходить к загрузке скетча.

Arduino IDE содержит очень много готовых примеров, в которых можно быстро подсмотреть решение какой-либо задачи. Есть в ней и простой пример «Blink». Давайте выберем его.

Немного модифицируем код, чтобы увидеть разницу с заводским миганием светодиода.

Вместо строчки:

Delay(1000 ) ;

Delay(100 ) ;

Полная версия кода:

/* 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. // give it a name: int led = 13 ; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT) ; } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH) ; // turn the LED on (HIGH is the voltage level) delay(100 ) ; // wait for a second digitalWrite(led, LOW) ; // turn the LED off by making the voltage LOW delay(100 ) ; // wait for a second }

Теперь светодиод «L» должен загораться и гаснуть на десятую часть секунды. То есть в 10 раз быстрее, чем в заводской версии.

Загрузим наш скетч в Arduino Uno и проверим, так ли это? После загрузки светодиод начнёт мигать быстрее. Это значит, что всё получилось. Теперь можно смело переходить к «Экспериментам »

Что-то пошло не так?

    В результате загрузки появляется ошибка вида avrdude: stk500_get sync(): not in sync: resp = 0x00 ? Это значит, что Arduino настроена некорректно. Вернитесь к предыдущим пунктам, чтобы убедиться в том, что устройство было распознано операционной системой и в Arduino IDE установлены правильные настройки для COM-порта и модели платы.

Этот симулятор лучше всего работает в браузере Chrome
Давайте рассмотрим Arduino по внимательней.

Arduino это не большой компьютер, к которому могут подключаться внешние цепи. В Arduino Uno используется Atmega 328P
Это самый большой чип на плате. Этот чип выполняет программы, которые хранятся в его памяти. Вы можете загрузить программу через usb с помощью Arduino IDE. Usb порт также обеспечивает питание arduino.

Есть отдельный разъём питания. На плате есть два вывода обозначенные 5v и 3.3v, которые нужны для того, чтобы запитывать различные устройства. Так же вы найдете контакты, помеченные как GND, это выводы земли (земля это 0В). Платформа Arduino, так же, имеет 14 цифровых выводов (пинов), помеченных цифрами от 0 до 13, которые подключаются к внешним узлам и имеют два состояния высокое или низкое (включено или выключено). Эти контакты могут работать как выходы или как входы, т.е. они могут либо передавать какие-то данные и управлять внешними устройствами, либо получать данные с устройств. Следующие выводы на плате обозначены А0-А5. Это аналоговые входы, которые могут принимать данные с различных датчиков. Это особенно удобно, когда вам надо измерить некий диапазон, например температуру. У аналоговых входов есть дополнительные функции, которые можно задействовать отдельно.

Как использовать макетную плату.

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

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

Два верхних и нижних ряда соединены по - рядно вдоль всей платы. Эти ряды используются, чтобы подавать питание на схему. Это может быть 5в или 3.3в, но в любом случае, первое, что вам надо сделать - это подключить 5в и GND на макетную плату, как показано на рисунке. Иногда эти соединения рядов могут прерываться посередине платы, тогда, если вам понадобится, вы можете их соединить, как показано на рисунке.








Остальные отверстия, расположенные в середине платы, группируются по пять отверстий. Они используется для соединения деталей схемы.


Первое, что мы подключим к нашему микроконтроллеру, это светодиод. Схема электрических соединений показана на картинке.

Для чего нужен резистор в схеме? В данном случае он ограничивает ток, который проходит через светодиод. Каждый светодиод рассчитан на определённый ток, и если этот ток будет больше, то светодиод выйдет из строя. Узнать, какого номинала должен быть резистор можно с помощью закона ома. Для тех кто не знает или забыл, закон ома говорит, что существует линейная зависимость тока от напряжения. Т.е, чем больше мы приложим напряжение к резистору, тем больше потечет через него ток.
V=I*R
Где V -напряжение на резистор
I - ток через резистор
R - сопротивление, которое надо найти.
Во-первых, мы должны узнать напряжение на резистор. Большинство светодиодов 3мм или 5мм, которые вы будете использовать, имеют рабочее напряжение 3в. Значит, на резисторе нам надо погасить 5-3=2в.

Затем мы вычислим ток, проходящий через резистор.
Большинство 3 и 5мм светодиодов светятся полной яркостью при токе 20мА. Ток больше этого может вывести их из строя, а ток меньшей силы снизит их яркость, не причинив никакого вреда.

Итак, мы хотим включить светодиод в цепь 5в,чтобы на нем был ток 20мА. Так как все детали включены в одну цепь на резистор тоже будет ток 20мА.
Мы получаем
2В = 20 мА * R
2В = 0.02A * R
R = 100 Ом

100 Ом это минимальное сопротивление, лучше использовать немного больше, потому, что светодиоды имеют некоторый разброс характеристик.
В данном примере используется резистор 220 Ом. Только потому, что у автора их очень много:wink: .

Вставьте светодиод в отверстия посередине платы таким образом, чтобы его длинный вывод был соединён с одним из выводов резистора. Второй конец резистора соедините с 5V, а второй вывод светодиода соедините с GND. Светодиод должен загореться.

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

А вот как вы будете соединять резистор, разницы совсем нет. Можете его перевернуть или попробовать подсоединить к другому выводу светодиода, это не повлияет на работу схемы. Он все так же будет ограничивать ток через светодиод.

Анатомия Arduino Sketch.

Программы для Arduino называют sketch. Они состоят из двух основных функций. Функция setup и функция loop
внутри этой функции вы будете задавать все основные настройки. Какие выводы будут работать на вход или выход, какие библиотеки подключать, инициализировать переменные. Функция Setup() запускается только один раз в течение скетча, когда стартует выполнение программы.
это основная функция, которая выполняется после setup() . Фактически это сама программа. Это функция будет выполняться бесконечно, пока вы не выключите питание.

Arduino мигает светодиодом



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

Эта функция используется в setup () части программы и служит для инициализации выводов, которые вы будете использовать, как вход (INPUT) или выход (OUTPUT) . Вы не сможете считать или записать данные с пина, пока не установите его соответственно в pinMode . Эта функция имеет два аргумента: pinNumber - это номер пина, который вы будете использовать.

Mode -задает, как пин будет работать. На вход (INPUT) или выход (OUTPUT) . Чтобы зажечь светодиод мы должны подать сигнал ИЗ Arduino. Для этого мы настраиваем пин на выход.
- эта функция служит для того, чтобы задать состояние (state) пина (pinNumber) . Есть два основных состояния (вообще их 3), одно это HIGH , на пине будет 5в, другое это Low и на пине будет 0в. Значит, чтобы зажечь светодиод нам надо на пине, соединенном со светодиодом выставить высокий уровень HIGH .

Задержка. Служит для задержки работы программы на заданный в мсек период.
Ниже приведен код, который заставляет мигать светодиод.
//LED Blink int ledPin = 7;//пин Arduino к которому подключен светодиод void setup() { pinMode(ledPin, OUTPUT);// установка пина как ВЫХОД } void loop() { digitalWrite(ledPin, HIGH);//зажечь светодиод delay(1000);// задержка 1000 мсек (1 сек) digitalWrite(ledPin, LOW);//Выключить светодиод delay(1000);//ждать 1 сек }

Небольшие пояснения по коду.
Строки, которые начинаются с "//" это комментарии Arduino их игнорирует.
Все команды заканчиваются точкой с запятой, если вы их забудете, то получите сообщение об ошибке.

ledPin - это переменная. Переменные используются в программах для хранения значений. В данном примере переменной ledPin присваивается значение 7, это номер пина Arduino. Когда Arduino в программе встретит строку с переменной ledPin , он будет использовать то значение, которое мы указали ранее.
Так запись pinMode(ledPin, OUTPUT) аналогична записи pinMode(7, OUTPUT) .
Но в первом случае вам достаточно поменять переменную и она поменяется в каждой строке, где используется, а во втором случае вам, чтобы поменять переменную, придётся ручками в каждой команде вносить изменения.

В первой строке указывает на тип переменной. При программировании Arduino важно всегда объявлять тип переменных. Пока вам достаточно знать, что INT объявляет отрицательные и положительные числа.
Ниже представлено моделирование скетча. Нажмите старт, чтобы посмотреть работу схемы.

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

Управление несколькими светодиодами.

В этом примере вы узнаете, как управлять несколькими светодиодами. Для этого установите ещё 3 светодиода на плату и соедините их с резисторами и выводами Arduino, как показано ниже.

Для того, чтобы включать и выключать светодиоды по очереди надо написать программу подобную этой:
//Multi LED Blink int led1Pin = 4; int led2Pin = 5; int led3Pin = 6; int led4Pin = 7; void setup() { //установка пинов как ВЫХОД pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT); pinMode(led3Pin, OUTPUT); pinMode(led4Pin, OUTPUT); } void loop() { digitalWrite(led1Pin, HIGH);//зажечь светодиод delay(1000);//задержка 1 сек digitalWrite(led1Pin, LOW);//потушить светодиод delay(1000);//задержка 1 сек //do the same for the other 3 LEDs digitalWrite(led2Pin, HIGH);//зажечь светодиод delay(1000);// задержка 1 сек digitalWrite(led2Pin, LOW);//потушить светодиод delay(1000);//задержка 1 сек digitalWrite(led3Pin, HIGH);//зажечь светодиод delay(1000);// задержка 1 сек digitalWrite(led3Pin, LOW);//потушить светодиод delay(1000);//задержка 1 сек digitalWrite(led4Pin, HIGH);//зажечь светодиод delay(1000);// задержка 1 сек digitalWrite(led4Pin, LOW);//потушить светодиод delay(1000);//задержка 1 сек }

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

DigitalWrite (led4Pin, HIGH); delay (1000); digitalWrite (led4Pin, LOW); delay (1000);
полный код скетча во вложении (скачиваний: 1240)

Регулировка яркости светодиодов

Иногда вам надо будет менять яркость светодиодов в программе. Это можно сделать с помощью команды analogWrite() . Эта команда так быстро включает и выключает светодиод, что глаз не видит это мерцание. Если светодиод половину времени будет включён, а половину выключен, то визуально будет казаться, что он светится в половину своей яркости. Это называется широтно-импульсная модуляция (ШИМ или PWM по-английски). Шим применяется довольно часто, так как с ее помощью можно управлять "аналоговым" компонентом с помощью цифрового кода. Не все выводы Arduino подходят для этих целей. Только те выводы, около которых нарисовано такое обозначение "~ ". Вы увидите его рядом с выводами 3,5,6,9,10,11.
Соедините один из ваших светодиодов с одним из выводов ШИМ(у автора это вывод 9). Теперь запуститьскетч мигания светодиода, но прежде измените команду digitalWrite() на analogWrite() . analogWrite() имеет два аргумента: первый это номер вывода, а второй- значение ШИМ (0-255), применительно к светодиодам это будет их яркость свечения, а для электродвигателей скорость вращения. Ниже представлен код примера для разной яркости светодиода.
//Меняем яркость светодиода int ledPin = 9;//к этому выводу подсоединен светодиод void setup() { pinMode(ledPin, OUTPUT);// инициализация пина на вывод } void loop() { analogWrite(ledPin, 255);//полная яркость (255/255 = 1) delay(1000);// пауза 1 сек digitalWrite(ledPin, LOW);//выключить светодиод delay(1000);//пауза 1 сек analogWrite(ledPin, 191);//яркость на 3/4 (191/255 ~= 0.75) delay(1000);//пауза 1 сек digitalWrite(ledPin, LOW);//выключить светодиод delay(1000);//пауза 1 сек analogWrite(ledPin, 127);//половина яркости (127/255 ~= 0.5) delay(1000);// пауза 1 сек digitalWrite(ledPin, LOW);//выключить светодиод delay(1000);//пауза 1 сек analogWrite(ledPin, 63);//четверть яркости (63/255 ~= 0.25) delay(1000);// пауза 1 сек digitalWrite(ledPin, LOW);//выключить светодиод delay(1000);//пауза 1 сек }

Попробуйте поменять значение ШИМ в команде analogWrite () ,чтобы увидеть, как это влияет на яркость.
Далее вы узнаете, как регулировать яркость плавно от полной до нулевой. Можно,конечно, скопировать кусок кода 255 раз
analogWrite(ledPin, brightness); delay(5);//short delay brightness = brightness + 1;
Но, сами понимаете - это будет не практично. Для этого лучше всего использовать цикл FOR, который использовали ранее.
В следующем примере используются два цикла, один для уменьшения яркости от 255 до 0
for (int brightness=0;brightness=0;brightness--){ analogWrite(ledPin,brightness); delay(5); }
delay(5) используется, чтобы замедлить скорость нарастания и уменьшения яркости 5*256=1280 мсек= 1.28 сек.)
В первой строке используется "brightness- " ,для того чтобы значение яркости уменьшалось на 1, каждый раз, когда цикл повторяется. Обратите внимание, что цикл будет работать до тех пор, пока brightness >=0 .Заменив знак > на знак >= мы включили 0 в диапазон яркости. Ниже смоделирован этот скетч. //плавно меняем яркость int ledPin = 9;//к этому пину подключен светодиод void setup() { pinMode(ledPin, OUTPUT);// инициализация пина на выход } void loop() { //плавно увеличиваем яркость (0 to 255) for (int brightness=0;brightness=0;brightness--){ analogWrite(ledPin,brightness); delay(5); } delay(1000);//ждем 1 сек //плавно уменьшаем яркость (255 to 0) for (int brightness=255;brightness>=0;brightness--){ analogWrite(ledPin,brightness); delay(5); } delay(1000);//ждем 1 сек } }
Это видно не очень хорошо, но идея понятна.

RGB-светодиод и Arduino

RGB-светодиод на самом деле это три светодиода разного цвета в одном корпусе.

Включая разные светодиоды с различной яркостью можно комбинировать и получать разные цвета. Для Arduino, где количество градаций яркости равно 256 вы получите 256^3=16581375 возможных цветов. Реально их, конечно, будет меньше.
Светодиод, который мы будем использоваться общим катодом. Т.е. все три светодиода конструктивно соединены катодами к одному выводу. Этот вывод мы подсоединим к выводу GND. Остальные выводы, через ограничительные резисторы, надо подсоединить к выводам ШИМ. Автор использовал выводы 9-11.Таким образом можно будет управлять каждым светодиодом отдельно. В первом скетче показано, как включить каждый светодиод отдельно.



//RGB LED - test //pin connections int red = 9; int green = 10; int blue = 11; void setup(){ pinMode(red, OUTPUT); pinMode(blue, OUTPUT); pinMode(green, OUTPUT); } void loop(){ //включение/выключение красного светодиод digitalWrite(red, HIGH); delay(500); digitalWrite(red, LOW); delay(500); //включение/выключение зеленого светодиода digitalWrite(green, HIGH); delay(500); digitalWrite(green, LOW); delay(500); //включение/выключение синего светодиода digitalWrite(blue, HIGH); delay(500); digitalWrite(blue, LOW); delay(500); }

В следующем примере используются команды analogWrite() и , чтобы получать различные случайные значения яркости для светодиодов. Вы увидите разные цвета, меняющиеся случайным образом.
//RGB LED - random colors //pin connections int red = 9; int green = 10; int blue = 11; void setup(){ pinMode(red, OUTPUT); pinMode(blue, OUTPUT); pinMode(green, OUTPUT); } void loop(){ //pick a random color analogWrite(red, random(256)); analogWrite(blue, random(256)); analogWrite(green, random(256)); delay(1000);//wait one second }

Random(256) -возвращает случайное число в диапазоне от 0 до 255.
В прикрепленном файле скетч, который продемонстрирует плавные переходы цветов от красного к зеленому, затем к синему, красному, зеленому и т.д. (скачиваний: 343)
Пример скетча работает, но есть много повторяющегося кода. Можно упростить код, написав собственную вспомогательную функцию, которая будет плавно менять один цвет на другой.
Вот как она будет выглядеть: (скачиваний: 382)
Давайте рассмотрим определение функции по частям. Функция называется fader и имеет два аргумента. Каждый аргумент отделяется запятой и имеет тип объявленный в первой строке определения функции: void fader (int color1, int color2) . Вы видите, что оба аргумента объявлены как int , и им присвоены имена color1 и color2 в качестве условных переменных для определения функции. Void означает, что функция не возвращает никаких значений, она просто выполняет команды. Если надо было бы написать функцию, которая возвращала результат умножения это выглядело бы так:
int multiplier(int number1, int number2){ int product = number1*number2; return product; }
Обратите внимание, как мы объявили Тип int в качестве типа возвращаемого значения вместо
void .
Внутри функции идут команды, которые вы уже использовали в предыдущем скетче, только номера выводов заменили на color1 и color2 . Вызывается функция fader , ее аргументы вычисляются как color1 = red и color2 = green . В архиве полный скетч с использованием функций (скачиваний: 286)

Кнопка

В следующем скетче будет использоваться кнопка с нормально разомкнутыми контактами, без фиксации.


Это значит, что пока кнопка не нажата, ток через неё не идёт, а после отпускания, кнопка возвращается в исходное положение.
В схеме, помимо кнопки используется резистор. В данном случае он не ограничивает ток, а "подтягивает" кнопку к 0в (GND). Т.е. пока кнопка не нажата на выводе Arduino, к которому она подключена, будет низкий уровень. Резистор, используемый в схеме 10 кОм.


//определяем нажатие кнопки int buttonPin = 7; void setup(){ pinMode(buttonPin, INPUT);//инициализируем пин на вход Serial.begin(9600);//инициализируем последовательный порт } void loop(){ if (digitalRead(buttonPin)==HIGH){//если кнопка нажата Serial.println("pressed"); // выводим надпись "pressed" } else { Serial.println("unpressed");// иначе "unpressed" } }
В этом скетче несколько новых команд.
-эта команда принимает значение High (высокий уровень) и low (низкий уровень), того вывода, который мы проверяем. Предварительно в setup() этот вывод надо настроить на вход.
; //где buttonPin это номер вывода, куда подсоединяется кнопка.
Последовательный порт позволяет отправлять Arduino сообщения на компьютер, в то время, как сам контроллер выполняет программу. Это полезно для отладки программы, отправки сообщений на другие устройства или приложения. Чтобы включить передачу данных через последовательный порт (другое название UART или USART), надо инициализировать его в setup()

Serial.begin() имеет всего один аргумент-это скорость передачи данных между Arduino и компьютером.
скетче используется команда для вывода сообщения на экран в Arduino IDE (Tools >> Serial Monitor).
- конструкция позволяют контролировать ход выполнения программы, объеденив несколько проверок в одном месте.
If(если) digitalRead возвращает значение HIGH, то на мониторе выводится слово "нажата". Else(иначе) на мониторе выводится слово " отжата" . Теперь можно попробовать включать и выключать светодиод по нажатию кнопки.
//button press detection with LED output int buttonPin = 7; int ledPin = 8; void setup(){ pinMode(buttonPin, INPUT);//this time we will set button pin as INPUT pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop(){ if (digitalRead(buttonPin)==HIGH){ digitalWrite(ledPin,HIGH); Serial.println("pressed"); } else { digitalWrite(ledPin,LOW); Serial.println("unpressed"); } }

Аналоговый вход.

analogRead позволяет считать данные с одного из аналоговых выводов Arduino и выводит значение в диапазоне от 0 (0В) до 1023 (5В). Если напряжение на аналоговом входе будет равно 2.5В, то будет напечатано 2.5 / 5 * 1023 = 512
analogRead имеет только один аргумент- Это номер аналогового входа (А0-А5). В следующем скетче приводится код считывания напряжения с потенциометра. Для этого подключите переменный резистор, крайними выводами на пины 5V и GND, а средний вывод на вход А0.

Запустите следующий код и посмотрите в serial monitor, как меняются значения в зависимости от поворота ручки резистора.
//analog input int potPin = A0;//к этому пину подсоединяется центральный вывод потенциометра void setup(){ //аналоговый пин по умолчанию включен на вход, поэтому инициализация не нужна Serial.begin(9600); } void loop(){ int potVal = analogRead(potPin);//potVal is a number between 0 and 1023 Serial.println(potVal); }
Следующий скетч объединяет скетч нажатия кнопки и скетч управления яркостью светодиода. Светодиод будет включаться от кнопки, и управлять яркостью свечения будет потенциометр.
//button press detection with LED output and variable intensity int buttonPin = 7; int ledPin = 9; int potPin = A0; void setup(){ pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop(){ if (digitalRead(buttonPin)==HIGH){//if button pressed int analogVal = analogRead(potPin); int scaledVal = map(analogVal, 0, 1023, 0, 255); analogWrite(ledPin, scaledVal);//turn on led with intensity set by pot Serial.println("pressed"); } else { digitalWrite(ledPin, LOW);//turn off if button is not pressed Serial.println("unpressed"); } }

Все, кто начинает изучать Arduino, знакомы со средой разработки Arduino IDE. Оно позволяет писать скетчи, проверять корректность и загружать их в Ардуино. Но единственная ли это среда для разработки программ для Arduino? Вовсе нет! Давайте посмотрим, какие ещё есть варианты.

В данной статье мы рассмотрим 4 самые популярные среды разработки:

  • Arduino IDE;
  • Programino;
  • CodeBlocks for Arduino.

1 Среда разработки Arduino IDE

Конечно же, эта среда разработки знакома каждому, кто хоть раз программировал для Arduino.

В ней имеется весь необходимый минимум для разработки программ: написание кода, проверка кода, компиляция, загрузка скетча в Ардуино, монитор последовательного порта. Все, кто работал в серьёзных «взрослых» средах разработки типа JetBrains IDEA, Microsoft Visual Studio или Quartus, наверняка отметят, что среда Arduino IDE довольно аскетична: ничего лишнего, и особых удобств она не предлагает.

2 Среда разработки Programino

Рассмотрим среду разработки PROGRAMINO . Это платная среда разработки, но её можно опробовать в течение 14-ти дней бесплатно. Programino, как и другие среды разработки, требует, однако, чтобы у вас была установлена Arduino IDE. При первом запуске программы следует в настройках указать путь к исполняемому файлу arduino.exe. Для этого идём в меню настройки: Options Editor Settings . Появится окно, в котором нужно будет указать пути к директории с Arduino IDE и сопутствующими библиотеками. Теперь мы готовы писать программы в Programino.

Язык, который используется в данной среде разработки - такой же, как и в оригинальной Arduino IDE - Си. То есть, по сути, если вы уже пишете скетчи в Arduino IDE, то вам не придётся изучать новый язык программирования, что является большим плюсом данной среды разработки.

Однако помимо этого, данная IDE предлагает такой удобный способ быстрой разработки как автодополнение кода. То есть, вам не придётся постоянно лазить в справочник по командам и методам Arduino. Вы начинаете набирать код, и среда разработки предложит вам выбрать из доступных вариантов тот, который вам нужен. Например, вы набираете "digi" и IDE предлагает вам варианты: "digitalRead", "digitalWrite" и другие возможные.


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

Постарайтесь набирать скетч вручную, а не копировать и вставлять, чтобы прочувствовать удобство автодополнения кода Programino.

Const int pinA = A5; void setup() { pinMode(pinA, INPUT); Serial.begin(19200); } void loop() { int r = analogRead(pinA); Serial.println(r); delay(100); }

Что ещё интересного предлагает Programino IDE? В данной среде разработки имеются несколько дополнительных полезных инструментов, доступных через меню Tools . Например: блокнот, дизайнер LCD символов, преобразователь между DEC-BIN-HEX, терминал последовательного порта, аналоговый плоттер и другие.


Остановимся подробнее на инструменте Analog Plotter . Это средство позволяет визуализировать вам то, что приходит в COM-порт от Arduino.

Для работы плоттера в скетче нужно активизировать последовательный порт на скорости 19200 кб/сек. Аналоговые данные выводятся на плоттер с помощью команды Serial.println() .

Запустим аналоговый плоттер. Нажмём кнопку Connect для подключения к порту, к которому у нас подключён Arduino.


Этот инструмент может быть полезным, например, для отображения показаний во времени каких-нибудь аналоговых датчиков: температуры, влажности, давления, освещённости и других.

Перед записью скетча в память Arduino, следует указать тип используемой платы и порт, к которому она подключена через меню Hardware .



Для загрузки скетча в память Arduino нажмите в верхнем меню иконку с изображением загрузки. Programino загрузит скетч и в нижнем окне журнала покажет данные о размере скетча и оставшихся свободных ресурсах платы Ардуино.

3 Среда разработки B4R (Basic for Arduino)

Ещё одна интересная альтернатива Arduino IDE - B4R, или "Basic for Arduino" . Эта среда разработки уникальна тем, что использует язык Basic, а не Си. Она также поддерживает функцию автодополнения кода. Кроме того, она полностью бесплатна.

При первом запуске среда B4R также требует указать путь к директории с Arduino IDE и, при необходимости, дополнительным нестандартным библиотекам и общим модулям. Эти настройки можно задать и позже через меню Tools Configure Paths .


А также выбрать плату: Tools Board Selector :

Давайте напишем вот такой скетч и заодно немного ближе познакомимся со средой разработки.


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

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

4 Среда разработки Codeblocks for Arduino

Существуют и другие среды разработки для Arduino кроме перечисленных. Например, CodeBlocks . Основное её отличие от описанных IDE - возможность писать код для микроконтроллеров и некоторых других платформ, не только для Arduino. Более подробно описывать её не буду, проще почитать информацию на официальном сайте и файлы справки.


Теперь мы знаем, что существуют альтернативные, гораздо более удобные, среды разработки, чем классическая Arduino IDE. Их использование может существенно упростить и ускорить написание ваших собственных скетчей.

Для написания (редактирования) и загрузки (прошивки) программ (скетчей) в Arduino необходимо установить программу для программирования, как Arduino IDE, или воспользоваться on-line Web-редактором. Скачать (загрузить) программу Arduino IDE последней версии, или воспользоваться web-редактором можно из раздела Software сайта arduino.cc .

Скачивание (загрузка) Arduino IDE с официального сайта:

Зайдите на официальный сайт Arduino и выберите, из предложенного списка, операционную систему на которой работает Ваш компьютер. В данной статье мы рассмотрим установку Arduino IDE на операционную систему Windows. Выбрав первую строку «Windows Installer » Вы установите Arduino IDE (как устанавливаете любые другие программы), а выбрав вторую строку «Windows ZIP file for non admin install » Вы скачаете ZIP-архив с папкой программы, которую сможете запускать без установки (даже если у Вас нет прав администратора Вашего компьютера).

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


Если Вы просто хотите скачать программу, то нажмите на кнопку «JUST DOWNLOAD», если хотите скачать программу и поблагодарить разработчиков, способствуя дальнейшему развитию ПО, то нажмите на кнопку «CONTRIBUTE & DOWNLOAD».

Дождитесь завершения загрузки файла

После завершения загрузки, файл должен находиться в папке: « Этот компьютер > Загрузки » (если Вы не указали иное место для сохранения файла).

Запустите установочный файл

из папки: « Этот компьютер > Загрузки » (у Вас вместо символов X.X.X в названии файла будут цифры версии Arduino IDE).






  • 1 сообщение: ознакомляет Вас с лицензионным соглашением, нажмите на кнопку «I Agree», появится 2 сообщение.
  • 2 сообщение: предлагает Вам выбрать компоненты инсталляции, нажмите на кнопку «Next», появится 3 сообщение.
  • 3 сообщение: предлагает Вам выбрать путь для установки Arduino IDE, нажмите на кнопку «Install», появится 4 сообщение.
  • 4 сообщение: информирует Вас о ходе выполнения установки Arduino IDE, по окончании которой появится 5 сообщение.
  • 5 сообщение: информирует Вас об окончании установки Arduino IDE, нажмите на кнопку «Close».

В процессе установки, над окном 4 сообщения, могут появляться окна Windows запрашивающие у Вас разрешение на установку драйверов:


Разрешайте установку драйверов нажимая на кнопку «Установить», эти драйверы позволят определять и работать с платами Arduino подключёнными по шине USB.

На этом установка Arduino IDE завершена .

На Вашем рабочем столе должна появиться иконка программы:

Запуск Arduino IDE:

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


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

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


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


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

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

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


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


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

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

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

Загрузка скетча из программы Arduino IDE в плату Arduino:

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


Если Вы написали скетч в новом окне и не сохраняли его в файл, то перед его загрузкой в плату Arduino, программ Arduino IDE предложит Вам его сохранить. Введите название, под которым Вы желаете сохранить скетч в файл и нажмите на кнопку «Сохранить».


Во время загрузки Вы увидите строку состояния которая будет отображать ход выполнения компиляции и загрузки скетча. Если в скетче нет ошибок и он успешно загружен, то в области уведомлений появится информация о количестве использованной и доступной памяти Arduino, а над областью уведомлений появится надпись «Загрузка завершена.».


Небольшой скетч приведённый выше (на картинке) заставит мигать светодиод на плате Arduino. Многие скетчи упрощаются и сокращаются при использовании библиотек. О том что такое библиотеки и как их устанавливать, Вы можете узнать в разделе .

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то