Практическая энциклопедия Arduino
Покупка
Тематика:
Микроэлектроника. Наноэлектроника
Издательство:
ДМК Пресс
Год издания: 2020
Кол-во страниц: 166
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-97060-798-5
Артикул: 714363.02.99
В книге обобщаются данные по основным компонентам конструкций на основе платформы Arduino, которую представляет самая массовая на сегодняшний день версия ArduinoUNO или аналогичные ей многочисленные клоны. Книга представляет собой набор из 33 глав-экспериментов. В каждом эксперименте рассмотрена работа платы Arduino c определенным электронным компонентом или модулем, начиная с самых простых и заканчивая сложными, представляющими собой самостоятельные специализированные устройства. В каждой главе представлен список деталей, необходимых для практического проведения эксперимента. Для каждого эксперимента приведена визуальная схема соединения деталей в формате интегрированной среды разработки Fritzing. Она дает наглядное и точное представление - как должна выглядеть собранная схема. Далее даются теоретические сведения об используемом компоненте или модуле. Каждая глава содержит код скетча (программы) на встроенном языке Arduino с комментариями. В конце каждой главы содержатся ссылки для скачивания скетчей с сайта http://arduino-kit.ru, дополнительных программ, а также на видеоурок данного эксперимента.
Тематика:
ББК:
УДК:
- 004: Информационные технологии. Вычислительная техника...
- 681: Точная механика. Автоматика. Приборостроение
ОКСО:
- ВО - Бакалавриат
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
- 11.03.01: Радиотехника
- 11.03.03: Конструирование и технология электронных средств
- 11.03.04: Электроника и наноэлектроника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
ПРАКТИЧЕСКАЯ ЭНЦИКЛОПЕДИЯ ARDUINO Москва, 2020 Петин В. А., Биняковский А. А. Издание второе, дополненное
УДК 681.4:004.9Arduino ББК 32.816с515+32.965с515 П29 Петин В. А., Биняковский А. А. П29 Практическая энциклопедия Arduino. 2-е изд., доп. – М.: ДМК Пресс, 2020. – 166 с. ISBN 978-5-97060-798-5 В книге обобщаются данные по основным компонентам конструкций на основе платформы Arduino, которую представляет самая массовая на сегодняшний день версия ArduinoUNO или аналогичные ей многочисленные клоны. Книга представляет собой набор из 33 глав-экспериментов. В каждом эксперименте рассмотрена работа платы Arduino c определенным электронным компонентом или модулем, начиная с самых простых и заканчивая сложными, представляющими собой самостоятельные специализированные устройства. В каждой главе представлен список деталей, необходимых для практического проведения эксперимента. Для каждого эксперимента приведена визуальная схема соединения деталей в формате интегрированной среды разработки Fritzing. Она дает наглядное и точное представление – как должна выглядеть собранная схема. Далее даются теоретические сведения об используемом компоненте или модуле. Каждая глава содержит код скетча (программы) на встроенном языке Arduino с комментариями. В конце каждой главы содержатся ссылки для скачивания скетчей с сайта http://arduino-kit.ru, дополнительных программ, а также на видеоурок данного эксперимента. УДК 681.4:004.9Arduino ББК 32.816с515+32.965с515 Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. © ООО ЭМБИТЕХ Групп, 2020 ISBN 978-5-97060-798-5 © Оформление, ДМК Пресс, 2020
СОДЕРЖАНИЕ Что такое Arduino .................................................................................................5 Установка Arduino IDE .......................................................................................8 1 Светодиод. Мигаем светодиодом .........................................................12 2. Кнопка. Обрабатываем нажатие кнопки на примере зажигания светодиода. Боремся с дребезгом ....................................15 3 Потенциометр. Показываем закон Ома на примере яркости светодиода ....................................................................................................20 4 Светодиодная шкала 10 сегментов. Крутим потенциометр, меняем количество светящихся светодиодов ..................................23 5 RGB-светодиод. Широтно-импульсная модуляция. Переливаемся цветами радуги ...............................................................28 6 Семисегментный индикатор одноразрядный. Выводим цифры .....33 7 Матрица 4-разрядная из 7-сегментных индикаторов. Делаем динамическую индикацию ..........................................................36 8 Микросхема сдвигового регистра 74НС595. Управляем матрицей из 4 разрядов, экономим выводы Ардуино ...................42 9 Матрица светодиодная 8x8 .....................................................................46 10 Пьезоизлучатель. Управляем пьезоизлучателем: меняем тон, длительность, играем Имперский марш....................................49 11 Транзистор MOSFET. Показываем усилитель ные качества транзистора. На примере электродвигателя изменяем обороты ..........................................................................................................54 12 Реле. Управляем реле через транзистор ............................................57 13 Фоторезистор. Обрабатываем освещенность, зажигая или гася светодиоды ..................................................................................61 14 Датчик температуры аналоговый LM335. Принцип работы, пример работы .............................................................................................65 15 Индикатор LCD1602. Принцип подключения, вывод информации на него ..................................................................................68 16 Графический индикатор на примере Nokia 5110 ............................72 17 Сервопривод. Крутим потенциометр, меняем положение .........76 18 Джойстик. Обрабатываем данные от джойстика. Управление Pan/Tilt Bracket с помощью джойстика ....................80 19 Шаговый двигатель 4-фазный, с управлением на ULN2003 (L293) ....................................................................................84 20 Датчик температуры DS18B20 ..............................................................88 21 Датчик влажности и температуры DHT11 ........................................92
СОДЕРЖАНИЕ 4 22 Датчики газов. Принцип работы, пример работы ...........................96 23 Ультразвуковой датчик расстояния HC-SR04. Принцип работы, подключение, пример ...............................................................99 24 3-осевой гироскоп + акселерометр на примере GY-521 ............ 103 25 ИК-фотоприемник и ИК-пульт. Обрабатываем команды от пульта ..................................................................................................... 106 26 Часы реального времени. Принцип работы, подключение, примеры ...................................................................................................... 110 27 SD-карта. Чтение и запись данных ................................................... 116 28 Считыватель RFID на примере RC522. Принцип работы, подключение, примеры ............................................................................ 120 29 Работа с Интернетом на примере Arduino Ethernet shield W5100 .............................................................................................. 126 30 Беспроводная связь. Модуль Wi-Fi ESP8266 ............................... 131 31 Беспроводная связь. Модуль Bluetooth HC-05 ............................ 137 32 Беспроводная связь. Модуль GSM/GPRS SIM900 .................... 142 33 Модуль GPS. Принцип работы, подключение, примеры .......... 147 Встроенные функции языка Arduino ........................................................ 152
Что такое Arduino Arduino – это электронный конструктор и удобная платформа быстрой разработки электронных устройств для новичков и профессионалов. Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Плата Arduino состоит из микроконтроллера Atmel AVR и элементов обвязки для программирования и интеграции с другими схемами. На многих платах присутствует линейный стабилизатор напряжения +5 В или +3,3 В. Тактирование осуществляется на частоте 16 или 8 МГц кварцевым резонатором (в некоторых версиях – керамическим резонатором). В микроконтроллер предварительно прошивается загрузчик BootLoader, поэтому внешний программатор не нужен. Устройство программируется через USB без использования программаторов. Существует несколько версий платформ Arduino. Версия Leonardo базируется на микроконтроллере ATmega32u4. Uno, Nano, Duemilanove построены на микроконтроллере Atmel ATmega328. Старые версии платформы Diecimila и первая рабочая Duemilanoves были разработаны на основе Atmel ATmega168. Arduino Mega2560, в свою очередь, построена на микроконтроллере ATmega2560. А самые последние версии Arduino Due – на базе микропроцессора Cortex. Версия UNO (рис. 1) является одной из самых популярных и широко иcпользуемой для небольших проектов. Рис. 1. Плата Arduino UNO
Практическая энциклопедия Arduino 6 Характеристики платы Arduino UNO показаны в табл. 1.1. Таблица 1.1 Микроконтроллер ATmega328 Рабочее напряжение 5 В Напряжение питания (рекомендуемое) 7–12 В Напряжение питания (предельное) 6–20 В Цифровые входы/выходы 14 (из них 6 могут использоваться в качестве ШИМ-выходов) Аналоговые входы 6 Максимальный ток одного вывода 40 мА Максимальный выходной ток вывода 3.3 В 50 мА Flash-память 32 КБ (ATmega328), из которых 0,5 КБ используются загрузчиком SRAM 2 КБ (ATmega328) EEPROM 1 КБ (ATmega328) Тактовая частота 16 МГц Каждый из 14 цифровых выводов может работать в качестве входа или выхода. Уровень напряжения на выводах ограничен 5 В. Максимальный ток, который может отдавать или потреблять один вывод, составляет 40 мА. Все выводы сопряжены с внутренними подтягивающими резисторами (по умолчанию отключенными) номиналом 20–50 кОм. Помимо этого, некоторые выводы Ардуино могут выполнять дополнительные функции: • последовательный интерфейс: выводы 0 (RX) и 1 (TX); • внешние прерывания: выводы 2 и 3; • ШИМ: выводы 3, 5, 6, 9, 10 и 11 могут выводить 8-битные аналоговые значения в виде ШИМ-сигнала; • интерфейс SPI: выводы 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK); • светодиод: 13. Встроенный светодиод, подсоединенный к выводу 13. В Arduino Uno есть 6 аналоговых входов (A0–A5), каждый из которых может представить аналоговое напряжение в виде 10-битного числа (1024 различных значения). По умолчанию измерение напряжения осуществляется относительно диапазона от 0 до 5 В. Тем не менее верхнюю границу этого диапазона можно изменить, используя вывод AREF и функцию analogReference(). Некоторые из аналоговых входов имеют дополнительные функции:
Что такое Arduino 7 • TWI: вывод A4 или SDA и вывод A5 или SCL. В Arduino Uno есть восстанавливаемые предохранители, защищающие USB-порт компьютера от коротких замыканий и перегрузок. Несмотря на то что большинство компьютеров имеют собственную защиту, такие предохранители обеспечивают дополнительный уровень защиты. Если от USB-порта потребляется ток более 500 мА, предохранитель автоматически разорвет соединение до устранения причин короткого замыкания или перегрузки.
Установка Arduino IDE Разработка собственных приложений на базе плат, совместимых с архитектурой Arduino, осуществляется в официальной бесплатной среде программирования Arduino IDE. Среда предназначена для написания, компиляции и загрузки собственных программ в память микроконтроллера, установленного на плате Arduino-совместимого устройства. Основой среды разработки является язык Proces sing/ Wiring – это фактически обычный C++, дополненный простыми и понятными функциями для управления вводом/выводом на контактах. Существуют версии среды для операционных систем Windows, Mac OS и Linux. Последнюю версию среды Arduino можно скачать со страницы загрузки официального сайта http://arduino.cc/en/Main/Software. Рассмотрим установку Arduino IDE на компьютере с операционной системой Windows. Отправляемся на страницу http://arduino. cc/en/Main/Software, выбираем версию для операционной системы Windows и скачиваем архивный файл. Он содержит все необходимое, в том числе и драйверы. По окончании загрузки распаковываем скачанный файл в удобное для себя место. Теперь необходимо установить драйверы. Подключаем Arduino к компьютеру. На контроллере должен загореться индикатор питания – зеленый светодиод. Windows начинает попытку установки драйвера, которая заканчивается сообщением «Программное обеспечение драйвера не было установлено». Открываем Диспетчер устройств. В составе устройств находим значок Arduino Uno – устройство отмечено восклицательным знаком. Щелкаем правой кнопкой мыши на значке Arduino Uno и в открывшемся окне выбираем пункт Обновить драйверы и далее пункт Выполнить поиск драйверов на этом компьютере. Указываем путь к драйверу – ту папку на компьютере, куда распаковывали скачанный архив. Пусть это будет папка drivers каталога установки Arduino – например, C:\arduino-1.0\drivers. Игнорируем все предупреждения Windows и получаем в результате сообщение Обновление программного обеспечения для данного устройства завершено успешно. В заголовке окна будет указан и COM-порт, на который установлено устройство. Теперь можно запускать Arduino IDE. Среда разработки Arduino (см. рис. 2) состоит из: • редактора программного кода; • области сообщений;
Установка Arduino IDE 9 • окна вывода текста; • панели инструментов с кнопками часто используемых команд; • нескольких меню. Программа, написанная в среде Arduino, носит название скетч. Скетч пишется в текстовом редакторе, который имеет цветовую подсветку создаваемого программного кода. Во время сохранения и экспорта проекта в области сообщений появляются пояснения и информация об ошибках. Окно вывода текста показывает сообщения Arduino, включающие полные отчеты об ошибках и другую информацию. Кнопки панели инструментов позволяют проверить и записать программу, создать, открыть и сохранить скетч, открыть мониторинг последовательной шины. Рис. 2. Среда Arduino IDE
Практическая энциклопедия Arduino 10 Разрабатываемым скетчам дополнительная функциональность может быть добавлена с помощью библиотек, представляющих собой специальным образом оформленный программный код, реализующий некоторый функционал, который можно подключить к создаваемому проекту. Специализированных библиотек существует множество. Обычно библиотеки пишутся так, чтобы упростить решение той или иной задачи и скрыть от разработчика детали программно-аппаратной реализации. Среда Arduino IDE поставляется с набором стандартных библиотек. Они находятся в подкаталоге libraries каталога установки Arduino. Необходимые библиотеки могут быть также загружены с различных ресурсов. Если библиотека установлена правильно, то она появляется в меню Эскиз | Импорт библиотек. Выбор библиотеки в меню приведет к добавлению в исходный код строчки #include <имя библиотеки.h> Эта директива подключает заголовочный файл с описанием объектов, функций и констант библиотеки, которые теперь могут быть использованы в проекте. Среда Arduino будет компилировать создаваемый проект вместе с указанной библиотекой. Перед загрузкой скетча требуется задать необходимые параметры в меню Инструменты | Плата (Tools | Board) (рис. 3) и Инструменты | Последовательный порт (рис. 4). Современные платформы Arduino перезагружаются автоматически перед загрузкой. На старых платформах необходимо нажать кнопку перезагрузки. На большинстве плат во время процесса загрузки будут мигать светодиоды RX и TX. При загрузке скетча используется загрузчик (bootloader) Ardui no – небольшая программа, загружаемая в микроконтроллер на плате. Она позволяет загружать программный код без использования дополнительных аппаратных средств. Работа загрузчика распознается по миганию светодиода на цифровом выводе D13. Монитор последовательного порта (Serial Monitor) отображает данные, посылаемые в платформу Arduino (плату USB или плату последовательной шины). Теперь, когда мы немного узнали об Arduino и среде программирования Arduino IDE, перейдем к практическим занятиям – экспериментам.