Что такое ардуино

Оглавление

Язык программирования

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

Внимание! Для начала работы необходимо установить среду программирования Arduino IDE.

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

Программу, написанную на языке программирования Ардуино называют скетчем. Готовые скетчи записываются на плату для их выполнения.

Среда IDE поддерживается такими операционными системами, как Windows, MacOs и Linux. На официальном сайте компании указанно, что данный язык программирования написан на Wiring, но на самом деле его не существует и для написания используется C++ с небольшими изменениями.

Что такое Arduino

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

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

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

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

Программное обеспечение для Arduino

Для работы с платформой Arduino вам не обязательно будет ставить себе определённое программное обеспечение. Начать программировать можно с Arduino Web Editor, позволяющим сохранять скетчи в облачном хранилище. Инструмент постоянно обновляется онлайн, ничего скачивать и переустанавливать не приходится. Но для работы, конечно, потребуется постоянное интернет-соединение.

Однако, если вы предпочитаете программировать оффлайн, вам следует скачать последнюю версию приложения для рабочего стола Arduino. Это открытое программное обеспечение, совместимо со следующими операционными системами:

  • Windows;
  • Mac OS (Lion или более ранние версии);
  • Linux 32 bit;
  • Linux 64 bit;
  • Linux ARM.

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

Главное преимущество всей этой открытой платформы именно в её простоте.

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

Преимущества платформы Arduino

Для физического программирования существует множество микрокомпьютеров и платформ, в том числе популярный и дешёвый Raspberry Pi. Большинство существующих программ помогает облегчить работу и обучение программированию, Arduino не становится исключением. Но у этой платформы есть множество весомых преимуществ перед рядом конкурентов:

  • Низкая цена в сравнении с большинством подобных платформ.
  • Кроссплатформенность. С Arduino работать можно хоть на Windows, хоть на Mac OS, тогда как большинство платформ разрабатывается исключительно под Windows.
  • Простая программная обстановка. Платформа отлично подходит для новичков, а подробных уроков в сети великое множество.
  • Открытый ресурс и расширяемое программное обеспечение. Продвинутые программисты могут без проблем самостоятельно расширять под себя ПО (и даже железо).

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

Сложно ли научиться Arduino?

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

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

  • Подключить кабели?
  • Подключить компоненты?
  • Использовать клавиатуру?

Если ответ на все три вопроса — «да», значит, вы сможете изучить Arduino. Это все практики, которых может достичь большинство людей — и большинство людей должно уметь изучать Arduino.

Если у вас еще нет Arduino, стоит взять Стартовый комплект Arduino UNO.

Знакомство с интерфейсом Ардуино

Одним из основных элементов ардуино является главное меню программы, которое позволяет получить доступ ко всем доступным функциям нашей программы.

Ниже расположена панель с иконками, которые отображают наиболее используемые функции Arduino IDE:

  • загрузка программы;
  • проверка на наличие ошибок;
  • создание нового скетча;
  • сохранение скетча;
  • загрузка сохранения;
  • открытие окна порта микроконтроллера;

Следующим по важности элементом является вкладка с файлами проекта. Если это простой скетч, то файл будет всего один

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

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

Компиляция – преобразование исходного кода языка высокого уровня в машинный код или на язык ассемблера.

Из чего состоит плата Arduino?

Выпускаются различные модели Arduino. Каждая из них «заточена» для различных задач. Некоторые платы принципиально отличаются от приведенной на рисунке ниже. Но большинство из них имеют следующие одинаковые узлы:

Разъем питания (USB / разъем для адаптера)

Каждая плата Arduino должна подключаться к источнику питания. Arduino Uno может запитываться от USB кабеля от вашего персонального компьютера Или от отдельного адаптера, который подключается к предусмотренному на плате разъему. На рисунке соединение через USB отмечено (1), а разъем для внешнего источника питания — (2).

USB также используется для загрузки вашей программы (скетча) на плату.

Примечание! Не используйте источник питания с напряжением на выходе более 20 вольт. Это может привести к тому, что ваша плата перегорит. Рекомендуемое напряжение питания для Arduino — от 6 до 12 вольт.

Разъемы (пины) (5V, 3.3V, GND, Analog, Digital, PWM, AREF)

Пины на вашей плате Arduino — это предусмотренные разъемы, к которым вы будете подключать провода от периферийных устройств (очень часто для прототипов используют монтажные платы (макетная плата, макетка) и провода с коннекторами на концах). На Arduino несколько типов пинов, каждый из которых подписан в соответствии с выполняемой функцией.

  • GND (3): сокращение от ‘Ground’ — ‘Земля’. На платах несколько пинов GND, каждый из которых может использоваться для заземления вашей электрической цепи.
  • 5V (4) и 3.3V (5): как вы могли уже догадаться — питы, которые на выходе обеспечивают питание 5 вольт и 3.3 вольт соответственно. Большинство компонентов, которые подключаются к Arduino, благополучно питаются именно от 5 или 3.3 вольт.
  • Analog (6): на участке, который подписан ‘Analog In’ (от A0 до A5 на Arduino Uno) расположены аналоговые входы. Эти пины позволяют считывать сигналы от аналоговых датчиков (например, датчик температуры) и преобразовывать их в цифровые значения, которыми мы в дальнейшем оперируем.
  • Digital (7): напротив аналоговых пинов находятся цифровые пины (от 0 до 13 на Arduino Uno). Эти пины используются для цифровых входящих (input) сигналов (например, нажатие кнопки) и для генерации цифровых исходящих (output) сигналов (например, питание светодиода).
  • PWM (8): вы наверное заметили знак (~) рядом с некоторыми цифровыми пинами (3, 5, 6, 9, 10, и 11 на UNO). Эти пины работаю как в обычном цифровом режиме, так и в режиме ШИМ-модуляции (PWM). Если объяснить вкратце — эти пины могут имитировать аналоговый выходной сигнал (например, для постепенного затухания светодиода).
  • AREF (9): Этот пин используется достаточно редко. В некоторых случаях это подключают в схему для установки максимального значения напряжения на аналоговых входах (от 0 до 5 вольт).

Кнопка сброса (Reset Button)

Как и на оригинальных Nintendo, на Arduino есть кнопка сброса (reset) (10). При нажатии на нее контакт сброса замыкается с землей и код, загруженный на Arduino начинает отрабатывать заново. Полезная опция, если ваш код отрабатывает без повторов, но вы хотите протестить его работу.

Индикатор питания (Power LED)

Немного справа и ниже надписи “UNO” установлен светодиод, подписанный «on» (11). Этот светодиод должен загореться, когда вы подключили Arduino к источнику питания. Если светодиод не загорелся — плохой знак ;).

Светодиоды TX и RX

TX — сокращение от transmit (передача), RX — от receive (прием). Эти условные обозначения часто встречаются в электронике для обозначения контактов, которые отвечают за серийный обмен данным. На Arduino Uno эти контакты встречаются два раза на цифровых пинах 0 и 1 и в качестве светодиодов TX и RX (12). Эти светодиоды позволяют визуально отслеживать, передает или принимает данные Arduino (например, при загрузке программы на плату).

Главная интегральная микросхема (IC)

Черная деталь с металлическими коннекторами с двух сторон это интегральная микросхема, микропроцессор (IC или Integrated Circuit) (13). Можете смело считать, что это «мозги» нашей Arduino. Этот чип разный в разных моделях Arduino, но обычно он относится к линейке микропроцессоров ATmega от компании ATMEL

Это может оказаться важной информацией для загрузки скетча на плату. Модель интегральной микросхемы обычно указана на ее верхней корпусной части

Для дополнительной информации о вашей микросхеме стоит обратиться к ее даташиту.

Регулятор напряжения

Регулятор напряжения (14) is выполняет функцию, указанную в названии — контролирует напряжение, которое поступает на плату Arduino. Можете его себе представить как охранника, который не пропускает слишком большое напряжение на плату во избежание ее повреждений. Конечно же, у регулятора есть свой предел. Так что питать Arduino напряжением больше 20 вольт нельзя.

Библиотеки Arduino

Библиотеки Arduino представляют собой коллекции функций, которые позволят вам управлять устройствами. Вот некоторые из наиболее широко используемых библиотек:

  • – чтение и запись в «постоянно» хранилище;
  • – для подключения к интернету, используя плату Arduino Ethernet Shield;
  • – для связи с приложениями на компьютере, используя стандартный последовательный протокол;
  • – для подключения к сети GSM/GRPS с помощью платы GSM;
  • – для управления жидкокристаллическими дисплеями (LCD);
  • – для чтения и записи SD карт;
  • – для управления сервоприводами;
  • – для связи с устройствами, используя шину SPI;
  • – для последовательной связи через любые цифровые выводы;
  • – для управления шаговыми двигателями;
  • – для отрисовки текста, изображений и фигур Arduino TFT экранах;
  • – для подключения к интернету, используя плату Arduino WiFi shield;
  • – двухпроводный интерфейс (TWI/I2C) для передачи и приема данных через сеть устройств или датчиков.

PSpice

Каждый студент, занимающийся электротехникой и электроникой, должен был столкнуться с PSpice в течение месяцев, потраченных на изучение основ проектирования схем и программирования. Но для тех кто не знает что такое PSpice — это интуитивный симулятор, который можно использовать для моделирования Arduino из-за множества функций, интегрированных в приложение. PSpice поддерживается операционной системой Windows и Linux и поставляется в разных модулях или типах.

Студенты могут использовать PSpice Lite, который абсолютно свободен, чтобы изучить основы программирования Ардуино, в то время как компании, преподаватели и другие эксперты могут использовать платный PSpice. PSpice в настоящее время используется в различных отраслях промышленности — автомобилестроении, образовании, энергоснабжении и т.д.

Правильный выбор Arduino для вашего проекта

Теперь, когда мы рассмотрели некоторые подробности о каждой плате, можно определить оптимальное использование каждой платы. Хотя UNO является самой популярной платой, также все остальные доски имеют отличную поддержку через онлайн-форумы благодаря общей архитектуре и использованию общего языка и IDE. Это означает, что вы вряд ли попадёте в специфичные для устройства ловушки, которые могут помешать работе части кода из-за конфигурации оборудования или присущих ошибок. Код Ардуино можно легко перенести на другую плату без каких-либо изменений. Это выгодно для пользователя, желающего поменять плату на определенной стадии проекта. Решающий фактор выбора платы, сводится к двум основным вещам аппаратному обеспечению и стоимости. Если аспект стоимости каждого Arduino очевиден, предпочтительнее вариант с наименьшей стоимостью. То аппаратное обеспечение быть может не так легко определить. При рассмотрении оборудования следует учитывать следующее:

  • Физические размеры
  • Мощность процессора
  • Размер памяти
  • Возможности ввода / вывода
  • Бортовая периферия
  • Вес
  • Связь

Что касается физических размеров, Arduino Nano является самым маленьким и очень портативным устройством. UNO — это доска для разработки среднего размера, но она всё ещё довольно мала. Её можно использовать во многих проектах, включая устройства с дистанционным управлением, такие как радиоуправляемые автомобили и лодки. Mega и Due — намного больше, что затрудняет их использование в проектах с ограниченным пространством. Если проект требует высокой вычислительной мощности, Due выходит на первое место с мощным ядром ARM и большим RAM / ROM. Несмотря на то что Mega — это большой Arduino с большим количеством пинов, скорость его процессора остаётся той же, что и в UNO и Nano (то же семейство Mega). Поэтому использование Mega не даёт никаких преимуществ в скорости. UNO и Nano используют один и тот же процессор. С точки зрения аппаратного и периферийного оборудования UNO и Nano идентичны. Если проект требует много пинов, Due и Mega являются очевидным выбором. Проекту, которому не требуется сильного процессора, но нужно большое количество контактов подключения, подойдёт Mega.

Программное обеспечение (IDE)

Программное обеспечение, используемое для программирования Arduino, представляет собой интегрированную среду разработки Arduino IDE. IDE представляет собой Java приложение, которое работает на множестве различных платформ, включая системы PC, Mac и Linux. Она разработана для начинающих, которые не знакомы с программированием. Она включает в себя редактор, компилятор и загрузчик. Также в IDE включены библиотеки кода для использования периферии, например, последовательных портов и различных типов дисплеев. Программы для Arduino называются «скетчами», и они написаны на языке, очень похожем на C или C++.

Simulator for Arduino

Продукт, разработанный virtronics, является полнофункциональным симулятором, доступным для студентов и начинающих в мире электроники, всех тек, кто ищет отличный симулятор Arduino. Это кросс-платформенный симулятор, который поддерживается как операционными системами Linux, так и Windows.

Особенности этого симулятора и некоторые его преимущества включают: учебное пособие, освещающее основы скетчей Ардуино; тестирование набросков идей, чтобы увидеть рабочие шаблоны, отладить ваши соединения и разработать виртуальные презентации для новых клиентов

Также важно отметить, что Simulator for Arduino — это не приложение с открытым исходным кодом, но оно бесплатно

Симулятор Ардуино от PaulWare

PaulWare’s Arduino Simulator Как следует из названия, этот симулятор Arduino был создан разработчиком по имени Пол. Симулятор с открытым исходным кодом и собрал свою собственную долю фанатов, которые одновременно добавляют свои идеи и создают учебники о том, как использовать симулятор. Этот бесплатный продукт был сделан преимущественно для экосистемы Windows и обеспечивает достаточную поддержку для новичков.

Основными компонентами, которые он обеспечивает для поддержки вашего проекта, являются светодиодный кратковременный выключатель, матричная клавиатура 4 на 4, матричная клавиатура 4 на 4 с ЖК-дисплеем, поворотный переключатель и т.д. YouTube видео предоставит вам достаточно информации для начала использования этого симулятора Arduino.

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

Какие ещё языки используют для Arduino

Но чу! Под Arduino можно писать и на других языках!

С. Как и С++, Си легко можно использовать для программирования микроконтроллеров Arduino. Только если С++ не требует никаких дополнительных программ, то для С вам понадобится , чтобы правильно перевести код в язык, понятный контроллерам AVR.

Python. Было бы странно, если бы такому универсальному языку не нашлось применения в робототехнике. Берёте библиотеки PySerial и vPython, прикручиваете их к Python и готово!

Java. Принцип такой же, как в Python: берёте библиотеки для работы с портами и контроллерами и можно начинать программировать.

HTML. Это, конечно, совсем экзотика, но есть проекты, которые заставляют HTML-код работать на Arduino.

А вообще Arduino работает на контроллерах AVR, и прошить их можно любым кодом, который скомпилирован под это железо. Всё, что вам нужно — найти библиотеку для вашего любимого языка, которая преобразует нужные команды в машинный код для AVR.

Оператор if…else

Расширенным оператором if является оператор if….else. Он обеспечивает выполнение одного фрагмента кода, когда условие выполняется (true), и выполнение второй фрагмент кода, если условие не выполняется (false). Синтаксис операторf if….else выглядит следующим образом:

if (условие)
{
// команда A
}
else
{
// команда B
}

Команды «A» будут выполняться только в том случае, если условие выполнено, команда «B» будет выполняться, когда условие не выполнено. Одновременное выполнение команды «A» и «B» невозможно. Следующий пример показывает, как использовать синтаксис if…else:

Электрический паяльник с регулировкой температуры
Мощность: 60/80 Вт, температура: 200’C-450’C, высококачествен…

Подробнее

if (init())
{
Serial.print(«ок»);
}
else
{
Serial.print(«ошибка»);
}

Подобным образом можно проверить правильность выполнения функции и информировать об этом пользователя.

Обычной практикой является отрицание условия. Это связано с тем, что функция, которая выполнена правильно возвращает значение 0, а функция, которая отработала неверно по какой-то причине, возвращает ненулевое значение.

Объяснение такого «усложнения жизни» — просто. Если функция выполнена правильно, то это единственная информация, которая нам нужна. В случае же ошибки, стоит иногда понять, что пошло не так, почему функция не выполнена правильно. И здесь на помощь приходят числа, отличающиеся от нуля, т. е. с помощью цифровых кодов мы можем определить тип ошибки. Например, 1 — проблема с чтением какого-то значения, 2 — нет места в памяти или на диске и т. д.

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

if (!init())
{
Serial.print(«ок»);
}
else
{
Serial.print(«ошибка»);
}

Что такое Arduino?

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

Arduino воспринимает окружающую среду с помощью различных кнопок, датчиков и других сенсоров. Также можно воздействовать на окружение путем контроля светодиодов, моторов, сервоприводов и реле. Проекты Arduino могут оставаться автономными или взаимодействовать с программным обеспечением, установленным на компьютере. Они могут взаимодействовать с другими Arduino, Raspberry Pi, NodeMCU и любыми другими устройствами.

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

В дополнение к простоте Arduino, эта плата стоит достаточно дешево и имеет открытый исходный код. Самая популярная модель arduino для начинающих — Arduino Uno, основная на микроконтроллере ATMEGA 16U2 от фирмы Atmel. Есть много различных моделей, которые отличаются размером, мощностью, спецификациями и другими параметрами.

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

Arduino — дешевое и полезное хобби.

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

И наоборот, хороший стартовый комплект Arduino будет стоить менее 100 долларов.

Становится лучше. Если вы готовы покупать компоненты в Китае и ждать доставки несколько недель, вы можете получить их менее чем за 10 долларов.

По таким низким ценам вы можете реализовать столько проектов, сколько захотите, не беспокоясь о том, что вы обанкротитесь.

Язык программирования Ардуино

Как я уже написал выше все программы создаются на базе языков программирования C/C++.

Если вы знаете C++, то Arduino откроет вам двери в фантастический мир создания роботов и различных устройств.

Приведу пример программы одного из самых простых устройств — мигание светодиода, подключенного к плате:

void setup () { pinMode (13, OUTPUT); // Назначение порта 13 в качестве выходного порта } void loop () { digitalWrite (13, HIGH); // Установка порта 13 в состояние «1», светодиод загорается delay (1000); // Задержка на 1000 миллисекунд digitalWrite (13, LOW); // Установка порта 13 в состояние «0», светодиод гаснет delay (1000); // Задержка на 1000 миллисекунд }

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

5. Загрузка первого скетча

Среда настроена, плата подключена. Пора прошивать платформу.

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

  1. Откройте распространенный пример — «Blink»:
    Файл
    Примеры
    01.Basics
    Blink.
  2. Откроется окно с демонстрационным примером.
  3. Немного модифицируйте код, чтобы увидеть разницу с заводским миганием светодиода. Замените строчки:
      delay(1000);

    на:

      delay(100);

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

    blink.ino
    void setup() {
      // initialize digital pin LED_BUILTIN as an output
      pinMode(LED_BUILTIN, OUTPUT);
    }
     
    void loop() {
      // turn the LED on (HIGH is the voltage level)
      digitalWrite(LED_BUILTIN, HIGH);
      // wait for a second  
      delay(100);
      // turn the LED off by making the voltage LOW                    
      digitalWrite(LED_BUILTIN, LOW);
      // wait for a second
      delay(100);
    }
  4. Нажмите на иконку «Компиляция» для проверки кода на ошибки.
  5. Нажмите на иконку «Загрузка» для заливки на плату.
  6. После прошивки платформы светодиод «L» начнёт загораться и гаснуть каждые 100 миллисекунд — в 10 раз быстрее исходной версии. Это значит, что ваш тестовый код успешно загрузился и заработал. Теперь смело переходите к экспериментам на Arduino.

Простые проекты Ардуино

Давайте начнем наш обзор с традиционно самых простых, но очень важных проектов, включающих в себя минимальное количество элементов: светодиоды, резисторы и, конечно же, плату ардуино. Все примеры рассчитаны на использование Arduino Uno, но с минимальными изменениями будут работать на любой плате: от Nano и Mega до Pro, Leonardo и даже LilyPad.

Проект с мигающим светодиодом – маячок

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

Нам понадобится:

  • Плата Ардуино Uno, Nano или Mega со встроенным светодиодом, подключенным к 13 пину.
  • И все.

Что должно получиться в итоге:

Светодиод мигает – включается и выключается через равные промежутки времени (по умолчанию – 1 сек). Скорость включения и выключения можно настраивать.

Схема проекта

Схема проекта довольно проста:  нам нужен только контроллер ардуино со встроенным светодиодом, подсоединенным к пину 13. Именно этим светодиодом мы и будем мигать. Подойдут любые популярные платы: Uno, Nano, Mega и другие.

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

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

Программирование в проекте Ардуино

Если в вашей плате нет загруженного скетча маячка – не беда. Можно легко загрузить уже готовый пример, доступный в среде программирования Ардуино.

Открываем программу Arduino IDE, убеждаемся, что выбран нужный порт.

Проверка порта Ардуино – выбираем порт с максимальным номером

Затем открываем уже готовый скетч Blink – он находится в списке встроенных примеров. Откройте меню Файл, найдите подпункт с примерами, затем Basics и выберите файл Blink.

Открываем пример Blink в Ардуино IDE

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

Кнопки компиляции и загрузки скетча
Информация в Arduino IDE – Загрузка завершена

Ждем немного (внизу можно отследить процесс загрузки) – и все. Плата опять подмигнет несколькими светодиодами, а затем один из светодиодов начнет свой размеренный цикл включений и выключений. Можно вас поздравить с первым загруженным проектом!

Проект маячка со светодиодом и макетной платой

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

Графическое изображение схемы подключения доступно на следующем рисунке:

Другие идеи проектов со светодиодами:

  • Мигалка (мигаем двумя свтодиодами разных цветов)
  • Светофор
  • Светомузыка
  • Сонный маячок
  • Маячок – сигнализация
  • Азбука Морзе

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

Что делают выражения

Теперь давайте попробуем понять почему написанная программа приводит в итоге к миганию светодиода.

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

Это делается выражением в функции :

pinMode(13, OUTPUT);

Выражения бывают разными: арифметическими, декларациями, определениями, условными и т.д. В данном
случае мы в выражении осуществляем вызов функции. Помните? У нас есть свои функции и
, которые вызываются чем-то, что мы назвали «нечто». Так вот теперь мы вызываем функции,
которые уже написаны где-то.

Конкретно в нашем мы вызываем функцию с именем . Она устанавливает заданный по номеру пин
в заданный режим: вход или выход. О каком пине и о каком режиме идёт речь указывается нами в круглых
скобках, через запятую, сразу после имени функции. В нашем случае мы хотим, чтобы 13-й пин работал
как выход. означает выход, — вход.

Уточняющие значения, такие как и называются аргументами функции. Совершенно не обязательно,
что у всех функций должно быть по 2 аргумента. Сколько у функции аргументов зависит от сути функции,
от того как её написал автор. Могут быть функции с одним аргументом, тремя, двадцатью; функции могут
быть без аргументов вовсе. Тогда для их вызова круглые скобка открывается и тут же закрывается:

noInterrupts();

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

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

Перейдём к функции :

void loop()
{
    digitalWrite(13, HIGH);
    delay(100);
    digitalWrite(13, LOW);
    delay(900);
}

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

Пройдёмся по выражениям по порядку. Итак, первое выражение — это вызов встроенной функции .
Она предназначена для подачи на заданный пин логического нуля (, 0 вольт) или логической единицы (, 5 вольт)
В функцию передаётся 2 аргумента: номер пина и логическое значение. В итоге, первым делом
мы зажигаем светодиод на 13-м пине, подавая на него 5 вольт.

Как только это сделано процессор моментально приступает к следующему выражению. У нас это вызов функции .
Функция — это, опять же, встроенная функция, которая заставляет процессор уснуть на определённое время.
Она принимает всего один аргумент: время в миллисекундах, которое следует спать. В нашем случае это 100 мс.

Пока мы спим всё остаётся как есть, т.е. светодиод продолжает гореть. Как только 100 мс истекают, процессор
просыпается и тут же переходит к следующему выражению. В нашем примере это снова вызов знакомой нам встроенной
функции . Правда на этот раз вторым аргументом мы передаём значение . То есть устанавливаем
на 13-м пине логический ноль, то есть подаём 0 вольт, то есть гасим светодиод.

После того, как светодиод погашен мы приступаем к следующему выражению. И снова это вызов функции .
На этот раз мы засыпаем на 900 мс.

Как только сон окончен, функция завершается. По факту завершения «нечто» тут же вызывает её ещё раз
и всё происходит снова: светодиод поджигается, горит, гаснет, ждёт и т.д.

Если перевести написанное на русский, получится следующий алгоритм:

  1. Поджигаем светодиод
  2. Спим 100 миллисекунд
  3. Гасим светодиод
  4. Спим 900 миллисекунд
  5. Переходим к пункту 1

Таким образом мы получили Arduino с маячком, мигающим каждые 100 + 900 мс = 1000 мс = 1 сек.

Платы и модули для функционала

Существует много плат Arduino, описание которых говорит о различиях в объеме памяти, портах, питании, тактовой частоте и др. Одни предназначены для решения простых задач, другие — для решения более сложных.

К популярным платам относятся следующие виды:

  1. Arduino Uno. Наиболее распространенная плата. Есть большой выбор уроков. Плата допускает замену контроллера. Оснащена 14 цифровыми вводами-выводами (6 ШИМ), 6 аналоговыми входами, флеш-памятью 32 Кб (ATmega328), из которых 0,5 Кб использует загрузчик.
  2. Arduino Mega 2560. Создана на базе микроконтроллера ATmega2560. Флеш-память — 256 Кб, из которых 8 Кб использует загрузчик. Имеет 54 цифровых вводов-выводов (14 ШИМ), 16 аналоговых входов, 8 Кб оперативной памяти. Среди всех плат «Ардуино» у этой самый большой размер.
  3. Arduino Due. Оснащена 54 цифровыми вводами-выводами (12 ШИМ), 12 аналоговыми входами (2 выходами). Создана на базе микроконтроллера AT91SAM3X8E с рабочим напряжением 3,3 В и флеш-памятью 512 Кб.
  4. Arduino Pro Mini 3.3V. Самая миниатюрная плата в семействе Arduino. Напряжение — 3,3 В. Требует использования внешнего программатора. Память данных составляет 2 Кб. Создана на базе микроконтроллера ATmega328P. Количество цифровых выводов — 14 линий (6 из которых — ШИМ), аналоговых — 6.
  5. Arduino Pro Mini 5V. Аналог предыдущей модели с напряжением 5 В.
  6. Arduino Nano V3.0. Создана на базе ATmega328. Сдержит 32 Кб памяти, из которых 2 Кб использует загрузчик. Имеет 14 цифровых вводов-выводов (6 ШИМ), 6 аналоговых входов, встроенный порт USB. Напряжение — 5 В.
  7. Arduino Micro. Разновидность платы c возможностью имитировать различные USB-устройства при подключении к ПК. Оснащена 20 цифровыми вводами-выводами (7 ШИМ), 12 аналоговыми входами.

Кроме того, существуют дополнительные модули и датчики с нужными ответвлениями:

  1. Датчики. Системы, считывающие, отправляющие и обрабатывающие информацию. Расширяют аппаратные функции проекта.
  2. Модули. Дополнения, которые позволяют расширить вычислительные мощности проекта. К ним относят карты памяти, вспомогательные процессы.

Датчики можно разделить на категории:

  1. Устройства получения информации. Датчики и сканеры, позволяющие получить сведения об окружающей среде: давлении, температуре, влажности, расстоянии до объектов. Есть возможность вводить параметры, зависящие от этих показаний. С помощью датчика расстояния можно создавать роботы-пылесосы, которые передвигаются по комнате, избегая препятствий.
  2. Устройства обработки информации. Реализуются отдельно или совместно с предыдущими датчиками. Используются для совершения промежуточных операций.
  3. Устройства вывода информации. Это ЖК-экраны, светодиодные индикаторы, сенсорные экраны, динамики и т. д.

Среди наиболее популярных модулей «Ардуино» можно выделить:

  1. Ультразвуковой дальномер HC-SR04. Датчик, позволяющий с помощью ультразвука измерить расстояние от 2 см до 4 м.
  2. Инфракрасный дальномер Sharp. Измеряет расстояние от 20 см до 1,5 м посредством инфракрасного излучения.
  3. Модуль температуры и влажности DHT11. Измеряет температуру в диапазоне от 0 до +50°C и влажность от 20 до 90%. Используется для теплиц или в качестве комнатного термометра. Часто приобретается для умного дома.
  4. Датчик влажности почвы FC-28. Измеряет влажность почвы или другой среды. Нужен для автоматизированного полива растений.
  5. Bluetooth HC-06. Помогает организовать беспроводную связь с другими устройствами.