Урок 1.1. Знакомство с платформой Arduino и интерфейсом программирования. Работа с цифровыми выходами — мигание светодиодами
Базовый курс "Программирование микроконтроллеров"
Модуль 1. Введение в Arduino. Работа с цифровым и аналоговым сигналом
Что такое Arduino IDE?
Arduino IDE — это приложение, которое позволяет составлять программы в удобном текстовом редакторе, компилировать их в машинный код, и загружать на все версии Arduino. Приложение является полностью бесплатным, а скачать его можно на официальном сайте сообщества Arduino.
Arduino IDE можно установить на любую операционную систему: Windows, Linux, Mac OS X. Для скачивания нужной версии необходимо выбрать её в правой колонке, и на следующей форме нажать кнопку «JUST DOWNLOAD».
Интерфейс Arduino IDE
Окно редактора можно условно разделить на 6 блоков:
- Блок №1
- Блок №2
- Блок №3
- Блок №4
- Блок №5
- Блок №6
Первый блок — это меню программы. Через меню можно получить доступ ко всем функциям Arduino IDE.
Через меню Файл можно создать, открыть или сохранить скетч, поменять параметры интерфейса программы и найти примеры программ.
В меню Изменить хранятся функции для редактирования текущего кода.
В меню Скетч доступны операции с файлом скетча и подменю подключения библиотек.
Меню Инструменты содержит возможности управления библиотеками, выбор подключаемого порта, инструменты монитора порта и построения графиков, автоформатирования и другие.
В меню Справка можно найти указатели на справочные ресурсы и формы техподдержки.
Второй блок — панель иконок, на которой размещены часто используемые функции. Слева направо:
Иконка “галочка” — проверить программу на ошибки;
Иконка “стрелка направо” — загрузить программу на Arduino;
Иконка “play” с жучком — отладка;
Выпадающий список подключенных к портам в данный момент плат;
Иконка “график” — построить графики из данных в мониторе порта;
Иконка “лупа” – открыть монитор порта.
Третий блок — файлы проекта. Каждая вкладка означает один из файлов проекта. Самые простые программы могут состоять только из одного файла.
Четвертый блок – панель иконок быстрого доступа к Альбому скетчей, Менеджеру плат, Управлению библиотекой, Отладке и Поиску.
Пятый блок — поле для отображения служебных сообщений, окно информации о ходе компиляции и ошибках в программе. Например, уведомлений об успешной загрузке программы.
Наконец, шестой блок — поле текстового редактора. В простых скетчах поле текстового редактора делится на три части:
Область строк до блока void setup( ){ }
В этой области обычно объявляются переменные, константы, библиотеки, объекты.
Область блока void setup( ){ }
Область настройки работы микроконтроллера – код из этого блока внутри { } запускается один раз в начале программы.
Область блока void loop( ){ }
Главная часть программы – код внутри { } повторяется циклически.
Плата Arduino Uno и загрузка первой программы
Знакомство с платами Arduino мы начинаем с модели Uno. Для ознакомления с расположением основных необходимых нам частей рассмотрите схему:
Теперь, когда мы увидели, где находятся основные пины и индикаторы, попробуем открыть готовый пример программы, которая заставит Arduino мигать светодиодом. Для этого выберем в меню: Файл → Примеры → Basics → Blink
В результате откроется еще одна копия редактора с программой.
Следующее, что необходимо сделать — подключить Arduino через свободный USB-порт. Обычно, после подключения новой платы Arduino к компьютеру, должно пройти несколько минут, чтобы устройство автоматически определилось – появится уведомление об успешной установке устройства.
Затем настроим правильный тип платы в Arduino IDE. Для этого в меню выбираем пункт: Инструменты → Плата → …
Появится список разных типов Arduino, из которого мы выбираем нужный. В этом уроке используется Arduino Uno, так что выбираем этот вариант. Кстати, в новых версиях Arduino IDE сменилось название для классической Arduino Uno, теперь оно выглядит так – Arduino/Genuino Uno.
Теперь выбираем порт. Каждый раз, когда вы подключаете новую Arduino к компьютеру, Windows выделяет ей COM-порт с отдельным номером. Для того, чтобы выбрать правильный порт откроем пункт меню: Инструменты → Порт → …
Если вы новичок и не практикуете подключение периферийных устройств через виртуальный COM-порт, то в этом списке появится всего одна запись. Это может быть любой «COM», но как правило это НЕ «COM1», а так же, рядом с портом может появиться надпись Arduino Uno.
Последний шаг — загружаем программу на Arduino. Для этого жмем иконку со стрелочкой вправо. По завершению этой процедуры, в строке сообщения появится надпись: «Загрузка завершена».
В результате мы увидим как светодиод “L” на плате начнёт моргать с частотой 1 раз в 2 секунды.
Схема подключения внешнего светодиода
Чтобы зажечь внешний светодиод, нам потребуется подключить его к одному из цифровых выводов Arduino – пусть это будет линия D2 (D – digital, цифровой). Катод светодиода подключим к минусу (GND, земля), анод же соединим с выводом D2 через токозадающий резистор 220 Ом.
Принципиальная схема
Схема на макетной плате
Функция digitalWrite( )
Теперь, когда светодиод подключен к Arduino, настало время программирования. Чтобы контакт D2 именно выводил сигнал, а не принимал его, потребуется использовать специальную функцию для установки режима контактов — pinMode.
Формат этой функции таков:
pinMode(НОМЕР КОНТАКТА, РЕЖИМ КОНТАКТА);
где аргумент режим контакта может принимать значения OUTPUT (вывод) и INPUT (ввод). То есть нам, чтобы помигать светодиодом, надо будет добавить в программу строчку:
pinMode(2, OUTPUT);
Для вывода высокого или низкого уровня сигнала на один из контактов общего назначения, в редакторе программ Arduino IDE используется функция digitalWrite.
Вызов этой функции имеет вид:
digitalWrite(НОМЕР ПИНА, УРОВЕНЬ СИГНАЛА);
где аргумент уровень сигнала может принимать два значения: HIGH (высокий, +5В) и LOW (низкий, заземлен).
Другими словами, если написать:
digitalWrite(2,HIGH);
то Ардуино соединит ногу №2 с питанием +5В и светодиод, вспыхнет!
Если же напишем:
digitalWrite(2,LOW);
Анод светодиода замкнется на землю, и светодиод погаснет.
Итоговая программа для мигания светодиодом будет иметь вид:
int led = 2; // переменная пина подключения светодиода
void setup() {
pinMode(led, OUTPUT); // установка пина светодиода в режим работы "выход"
}
void loop() {
digitalWrite(led, HIGH); // включение вывода светодиода
delay(1000); // ожидание 1 секунда
digitalWrite(led, LOW); // выключение вывода светодиода
delay(1000); // ожидание 1 секунда
}
В программе присутствует еще одна полезная функция — delay. Это просто пауза, задаваемая в миллисекундах.
delay (1000) — означает паузу в 1000 миллисекунд, что равно одной секунде.
Все! Загружаем программу на Ардуино и смотрим на мигающий светодиод!
Самостоятельная работа
Попробуйте написать прогроммы для следующих анимаций:
Все элементы гирлянды должны демонстрировать движение змейки на игровом поле. Движение начинается за границей гирлянды и заканчивается, когда змейка полностью скрывается за последним элементом гирлянды. Длинна змейки составляет 3 светодиода.