Инструкция по работе с Ардуино для начинающих

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

Ардуино
Arduino — плата с микроконтроллером, которую можно программировать.

Инструкция по использованию макетной платы для начинающих

Макетная плата используется для следующих целей:

  • сборка схемы и проверка перед пайкой;
  • замена деталей для изменения электросхемы;
  • повторное использование компонентов в новых проектах без распайки.

Применение макетной платы делает процесс разработки простым, быстрым и удобным.

Плата, которая называется Breadboard, имеет несколько рядов отверстий, предназначенных для монтажа деталей и соединения их при помощи проводов. В зависимости от величины электрических схем проекта можно выбрать и размер платы: от маленькой, рассчитанной на 170-400 точек, до большой — на 1600 контактов.

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

В первую очередь к плате нужно подключить контакты GND и 5V микроконтроллера. В случае если ряд отверстий прерывается, может понадобиться их соединение при помощи проводов (см. рисунок). Гнезда, использующиеся для соединения деталей, находятся в центре платы и сгруппированы по 5 отверстий.

Соединение отверстий
Соединение отверстий при помощи проводов.

В макетную плату можно подключать проводники от 0,4 до 0,7 мм в сечении. Для соединения 2 элементов нужно ножку первого вставить в ряд центральных отверстий, например, во второй ряд. Второй контакт детали важно вставить в другой вертикальный ряд — третий, потому что если контакт поместить в тот же ряд, то схема окажется нерабочей. Это связано с тем, что выходы будут соединены общим металлическим проводником, что вызовет короткое замыкание — и ток не пойдет через первый элемент. Правильное соединение показано на картинке.

Правильное соединение
Правильное соединение.

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

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

U = I ∙ R, где

R — искомое сопротивление;

I — сила тока в цепи;

U — напряжение на резисторе.

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

Вторым шагом является вычисление силы тока на резисторе.

Рабочая сила тока, при которой диоды светятся с максимальной яркостью, составляет 20 мА. Если ток будет больше, они перегорят, а если меньше, то будут гореть с меньшей яркостью.

Рассчитаем сопротивление резистора, необходимое для получения силы тока 20 мА при подаваемом в цепь напряжении 5 В.

R = U / I

R = 2 В / 0,02 А

R = 100 Ом.

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

Светодиод вставляется в отверстия макетной платы, расположенные в центре. Его длинный контакт должен быть соединен с любым из выводов резистора. Другой контакт резистора соединяется с выходом 5V, а короткий вывод — с GND. Если все собрано верно, светодиод загорится.

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

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

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

Как написать скетч для Ардуино

Скетчами называются программы для Ардуино, они состоят из 2 главных функций:

  1. Setup(). Данная функция предназначена для задания всех основных настроек микроконтроллера. Среди них — назначение контактов для входа и выхода, подключение библиотек, инициализация переменных. Эта функция запускается единожды при старте выполнения кода.
  2. Loop(). Здесь записывается сама программа, она исполняется сразу после Setup(). Пока на схему подается электропитание, функция выполняется непрерывно.

Язык программирования, используемый при написании скетчей, — C++. Для того чтобы упростить задачу для разработчиков, встроенный компилятор выполняет часть работы вместо пользователя: многие базовые функции, формулы и макросы уже имеются в специальном фреймворке под названием Wiring для взаимодействия с микроконтроллерами.

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

Главные функции, используемые в коде:

  1. pinMode (pinNumber, mode) — задается в Setup() и применяется для инициализации используемых в проекте выводов. Первый аргумент функции, pinNumber, задает номер пина. Вход схемы обозначается (INPUT), а выход — (OUTPUT), это второй аргумент функции. Данные не будут записываться или считываться с пина, пока для него не установлен параметр в pinMode.
  2. digitalWrite (pinNumber, state) — функция назначает состояния (state) для пинов (pinNumber). Существует 3 состояния, но в данном скетче рассмотрены два — HIGH и LOW. В первом случае на пин подается напряжение 5 В, во втором — нуль. Таким образом, для включения светодиода нужно задать состояние HIGH.
  3. delay (timeInMs) — предназначена для задания задержки исполнения кода в миллисекундах.

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

Скетч, мигающий светодиодом
Скетч, мигающий светодиодом.

Комментарии к коду начинаются с символов //, и при выполнении программы Arduino их не учитывает.

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

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

Тип переменной указывается в первой строке — INT, он определяет положительные и отрицательные числа. Обязательно объявлять ее тип при программировании, чтобы код выполнялся.

Помимо цифрового сигнала, возможно получение пинами аналогового. В отличие от первого варианта, способного принимать или отдавать лишь HIGH и LOW, аналоговые пины могут измерять напряжение сигнала.

На платах Ардуино наиболее популярен 10-битный преобразователь аналогово-цифрового сигнала. Он считывает нулевое напряжение как 0, а 5 В — как 1023. Таким образом, при помощи аналогового входа можно определить входное напряжение с точностью 0,005 В. Это позволяет использовать в проекте различные датчики, такие как фоторезисторы и терморезисторы, и принимать с них аналоговый сигнал.

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

Схема с резистором
Схема с резистором.

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

Скетч с резистором
Скетч с резистором.

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

Как загрузить и удалить

Для загрузки прошивки в микроконтроллер Ардуино используется USB-TTL (транзистор-транзистор-логика) преобразователь, который обращается к компьютеру через USB и обменивается с ним данными. В памяти микроконтроллера находится загрузчик — Bootloader, и при поступлении данных прошивка устанавливается во Flash-память устройства. Каждый раз, когда микроконтроллер включается, загрузчик ожидает поступления команд по установке новой прошивки от компьютера. В случае если команда не подается, запускается имеющаяся во Flash-памяти микроконтроллера прошивка.

В связи с этим существует 2 проблемы:

  • загрузчик занимает место в памяти, примерно 6%;
  • прежде чем запустить установленную прошивку, он ожидает команды от компьютера, что требует около 2 секунд.

Эти проблемы можно решить следующими способами:

  • меньше места занимает неофициальный загрузчик, к тому же он быстрее осуществляет запуск;
  • возможно применение ISP (in-system programming), в этом случае пропадает необходимость в загрузчике, скетчи запускаются напрямую и без задержек при включении системы.

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

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

Чтобы проверить, как работает МК, необязательно писать первый скетч самостоятельно: в библиотеке IDE предустановлено много примеров. В инструкции рассмотрена установка одного из них — скетча Blink. Он расположен в категории встроенных образцов Basics, меню “Файл”. Интерфейс среды разработки продемонстрирован на рисунке ниже.

Интерфейс среды разработки
Интерфейс среды разработки.

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

Для лучшего понимания принципа работы программного кода производится замена значения Delay с 1000 на 10000. Раньше он горел секунду до того, как отключится, а после изменения — 10 секунд.

Готовые скетчи для Ардуино

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

Инфракрасный пульт дистанционного управления.

Инфракрасный пульт управления
Инфракрасный пульт дистанционного управления.

Сенсор вибрации.

Сенсор вибрации
Сенсор вибрации.

Температурный датчик LM35.

Температурный датчик LM35
Температурный датчик LM35.

Пожарная сигнализация — датчик огня.

Датчик огня. Пожарная сигнализация
Пожарная сигнализация — датчик огня.

Пассивный зуммер.

Пассивный зумер
Пассивный зуммер.

Активный зуммер.

Активный зуммер
Активный зуммер.

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

Светодиод управляемый кнопкой
Управляемый кнопкой светодиод.

 

Ссылка на основную публикацию