Использование библиотек играет ключевую роль в программировании на Arduino. Тысячи библиотек бесплатно доступны онлайн, и лучшие из них, с хорошей документацией можно установить прямо через редактор.
В этом руководстве мы рассмотрим, как установить библиотеку с использованием менеджера библиотек в Arduino IDE 2.0 и выше. Также посмотрим как получить доступ к примерам из установленной библиотеки.
Начало работы:
Для начала убедитесь, что у вас установлена Arduino IDE 2.0 или более новая версия 2.х.
Если нет, вы можете легко скачать ее с официального сайта Arduino. Как это сделать написано в предыдущих уроках этого цикла.
Почему надо использовать библиотеки?
Библиотеки очень полезны при создании проектов любого типа. Они делают возможность разработки более простой, а количество библиотек очень много и они есть практически для любого датчика или модуля Ардуино.
Библиотеки используются для взаимодействия с различными сенсорами, RTC, модулями Wi-Fi, RGB матрицами, температурными датчиками и другими компонентами используемыми в проекте.
Установка библиотеки: Шаг за шагом
Откройте Arduino IDE 2.0.
В левой колонке найдите и нажмите на значок «библиотека».
Менеджер библиотек
Выбрав выпадающий список типа библиотек у вас появится список всех доступных библиотек, где также можно искать нужную библиотеку. Можно выбирать по типам: Обновления, Установленные, от Ардуино разработчиков или Партнёров, рекомендованные и т.д.
Выбрав другой выпадающий список у вас откроется возможность отсортировать библиотеки по их типам: Дисплеи, Сенсоры, Время и т.д.
В этом примере мы установим библиотеку для часов RTC. Она работает с модулями часов реального времени, например с широко используемым DS3231. У меня есть более 20 вариантов использования этого модуля, для часов(обычных, с кукушкой или с боем курантов), таймеров и другого. Если интересно то поищите на сайте примеры, они очень интересные.
Выберите самую. последнюю версию и нажмите «УСТАНОВИТЬ», чтобы установить библиотеку.
Этот процесс не должен занять много времени.
Успешная установка библиотеки
Поздравляю! Вы успешно скачали и установили библиотеку на свой компьютер.
Подключение библиотеки:
Чтобы использовать библиотеку, сначала вам нужно добавить ее в начало вашего скетча.
Включение библиотеки в скетч это очень важно и без этого у вас библиотека работать не будет.
Установка библиотеки в Arduino IDE, Ликбез
Большинство библиотек уже поставляются с готовыми примерами, которые доступны через Файл > Примеры > > .
Посмотрим что доступно в библиотеке RTC. Это библиотека для подключения часов реального времени.
Примеры библиотеки
Выберем пример для часов реального времени DS3231. Это самый лучший модуль часов на сегодняшний момент.
Нажмём на пример DS3231_Info и загрузим его в редактор кода Arduino IDE.
Теперь всего лишь выбрав этот пример и не написав ни одной строчки кода, у вас будут доступны данные
- Часы Минуты Секунды в 12 или 24 часовом формате
- Число Месяц Год
- Дни недели
- Несколько будильников
- Таймер
- И даже термометр, измеряющий температуру около модуля.
И вот так за несколько минут, не написав ни одной строчки кода у вас появилась возможность использовать все эти данные в своих проектах. Согласитесь, что это здорово. Вам всего лишь надо подключить модуль DS3231 и выбрать нужный пример.
Заключение.
С использованием библиотек в Arduino, вы вступили в захватывающее путешествие в мир электроники и программирования.
Теперь, когда вы овладели установкой библиотек и использованием примеров, представьте, какие удивительные проекты вы можете создать!
Светодиодные шоу, измерение окружающей среды, управление моторами — все это доступно вам благодаря библиотекам.
Погружайтесь глубже в мир Ардуино, и, кто знает, возможно, ваш следующий проект станет настоящим хитом в мире Arduino.
И помните, что каждый код, каждая библиотека — это кирпичик в вашем виртуальном мире.
Так что не останавливайтесь на достигнутом, открывайте новые горизонты и создавайте, создавайте, создавайте!
Удачи в вашем увлекательном путешествии и не забывайте заглядывать на этот сайт. Здесь вы всегда найдёте множество интересных примеров.
Добавление библиотеки в виде .zip архива.
Итак, пройдем четко по конкретным пунктам, первым из которых будет вариант с добавлением библиотеки из . zip архива. За примером и ходить далеко не надо, при подключении LCD 1602 к Arduino по I2C мы использовали библиотеку LiquidCrystal_I2C. Собственно, это и есть отправная точка — у нас есть ссылка на github, разберем дальнейшие шаги.
Шаг 1. Скачиваем.
Первым делом скачиваем с вышеупомянутой ссылки нужный нам архив:
Шаг 2. Добавляем.
Готово, архив в нашем распоряжении, осталось добавить его в Arduino IDE. И в данном случае для этого воспользуемся существующим инструментом, для чего переходим в меню Sketch → Include Library → Add .ZIP Library:
В появившемся окне находим и выбираем скачанный .zip архив.
В старых версиях Arduino IDE после этого может потребоваться перезапуск. В актуальных же релизах можно для проверки результата сразу перейти в Sketch → Include Library, в нижней части списка будут добавленные библиотеки:
Как видите, внизу добавленная нами собственноручно библиотека, которая теперь доступна для использования в скетче. Успех, переходим ко второму варианту.
Добавляем библиотеку вручную.
В данном случае все операции выполняются вручную, хотя суть процессов полностью идентичная. Если мы вернемся к первому способу, то что физически осуществляет операция импорта? Всего лишь размещает библиотеку по определенному пути, где ее в дальнейшем и ищет Arduino IDE. Таким образом, мы можем и сами разархивировать библиотеку и поместить ее в нужное место. Единственный вопрос — куда именно.
Шаг 1. Скачиваем.
Так же как и в первом способе, скачиваем архив.
Шаг 2. Определяем путь.
Определяем, куда поместить файлы. Осуществляется это очень просто, идем в File → Preferences:
Искомое обведено, переходим к финальному этапу.
Шаг 3. Копируем.
По найденному на предыдущем шаге пути обнаруживаем подпапку libraries, куда и копируем разархивированный LiquidCrystal_I2C.zip:
C:UsersAvealDocumentsArduinolibraries
Шаг 4. Проверяем.
Финишная прямая — запускаем Arduino IDE и следуем точно так же как в предыдущем варианте в Sketch → Include Library. Здесь снова появляется библиотека, помещенная нами в нужную директорию вручную, значит процесс прошел успешно
Важным нюансом здесь может быть следующее. Таким же образом библиотеку можно поместить и в директорию, куда установлена Arduino IDE, это сработает аналогично. Но при обновлении IDE все данные, в том числе добавленные библиотеки, будут удалены, поэтому лучше помещать их изначально в Sketchbook location, как мы и поступили.
Список пользовательских библиотек в Arduino
Adafruit_NeoPixel.h
Библиотека Adafruit_NeoPixel.h используется для работы с адресными светодиодными лентами. Она позволяет управлять от микроконтроллера Arduino яркостью, цветом и порядком зажигания светодиодов, а также создавать различные эффекты и анимацию.
AFMotor.h
Библиотека AFMotor.h используется для управления сервомоторами и двигателями постоянного тока с помощью ШИМ-сигналов. Библиотека позволяет регулировать скорость вращения двигателя и обеспечивает плавный пуск и остановку мотора.
DallasTemperature.h
Библиотека DallasTemperature.h используется для работы платы Ардуино с датчиками температуры от компании Dallas Semiconductor. Она позволяет считывать показания температуры. Библиотека поддерживает датчики DS18B20, DS18S20 и DS1822.
DHT.h
Библиотека DHT.h используется для взаимодействия с цифровыми датчиками температуры и влажности DHT11, DHT22 и DHT01. Она предоставляет функции для чтения температуры и влажности воздуха, а также для обработки полученных данных.
EtherCard.h
Библиотека EtherCard.h используется для создания сетевых приложений на основе плат Arduino с Ethernet-шилдом. Она позволяет устанавливать соединение, отправлять и получать данные по протоколу TCP/IP и взаимодействовать с веб-серверами.
FastLED.h
Библиотека FastLED.h используется для управления светодиодными лентами и матрицами на базе WS2811 / WS2812 / WS2812B. Она позволяет задавать цвет, яркость и порядок зажигания светодиодов, создавать различные световые эффекты и анимацию.
iarduino_RTC.h
Библиотека iarduino_RTC.h используется для работы платы Ардуино с модулями Real Time Clock (RTC), которые обеспечивают точные показания времени даже при отсутствии питания. Она позволяет настроить модуль часов, получить текущее время и дату.
IRremote.h
Библиотека IRremote.h используется для работы с инфракрасными (IR) пультами дистанционного управления (ДУ) и содержит набор функций, которые позволяют принимать и отправлять сигналы инфракрасных пультов от платы Arduino.
LiquidCrystal_I2C.h
Библиотека LiquidCrystal_I2C.h используется для управления LCD-дисплеями с использованием протокола связи I2C. Она позволяет отображать текст и графику на графическом экране, а также управлять различными настройками дисплея.
MFRC522.h
Библиотека MFRC522.h используется для работы микроконтроллера Arduino с RFID-считывателями MIFARE RFID. Она позволяет читать и записывать данные с RFID-карт, а также обрабатывать информацию, полученную от считывателя меток.
MQ2.h
Библиотека MQ2.h используется для работы с газовым датчиком MQ-2, который может измерять концентрацию различных газов. Эта библиотека предоставляет функции для настройки и использования датчика, а также обработки полученных данных.
nRF24L01.h
Библиотека nRF24L01.h используется для работы с радиомодулями, предоставляя простой и удобный интерфейс для управления ими. Она позволяет передавать и принимать данные, управлять мощностью передатчика, выбирать каналы и многое другое.
OLED_I2C.h
Библиотека OLED_I2C.h предназначена для управления OLED-дисплеями по шине I2C. Она позволяет отображать текст, символы и графику на дисплее. Библиотека поддерживает дисплеи с контроллерами SSD1306, SSD1309, SSD1322, SSD1325, SH1106 и SH1107.
OneWire.h
Библиотека OneWire.h используется в проектах с устройствами One-Wire, такими как датчики Dallas Semiconductor DS18x20. Она предоставляет интерфейс для коммуникации микроконтроллера Ардуино с устройствами и датчиками по протоколу One-Wire.
RotaryEncoder.h
Библиотека RotaryEncoder.h используется в программировании платы Ардуино для работы с энкодерами (устройствами для измерения угла поворота объекта). Она позволяет определять положение ручки поворотного энкодера и скорость её вращения.
SD.h
Библиотека SD.h используется в языке Arduino IDE для работы с SD-картами, позволяя считывать и записывать данные на карту памяти. Она поддерживает различные файловые системы и позволяет работать с текстовыми файлами различных типов.
SPI.h
Библиотека SPI.h используется для обеспечения последовательного интерфейса между микроконтроллерами и периферийными устройствами. Библиотека содержит функции для инициализации, передачи и приема данных, а также настройки SPI-соединения.
SoftwareSerial.h
Библиотека SoftwareSerial.h используется для создания программных последовательных портов на любых цифровых выводах платы Arduino. Это бывает полезно, когда у микроконтроллера ограниченное количество аппаратных последовательных портов.
Stepper.h
Библиотека Stepper.h используется для управления шаговыми двигателями от Arduino. Она позволяет задавать количество шагов, скорость и направление вращения шагового двигателя, а также обеспечивает плавную остановку и запуск двигателя.
SFE_BMP180.h
Библиотека SFE_BMP180.h предназначена для работы с датчиком температуры и давления BMP180 от Bosch Sensortec. Она обеспечивает простой и удобный интерфейс для чтения значений температуры, атмосферного давления и высоты над уровнем моря.
SparkFun_APDS9960.h
Библиотека используется для работы с ИК-датчиком APDS-9960, который может обнаруживать движение и определять направление движения. В библиотеке есть функции для настройки датчика, чтения данных и обработки полученных результатов.
SparkFun_VL53L1X.h
Библиотека SparkFun_VL53L1X.h используется для работы с дальномером VL53L1X-EZ производства SparkFun. Эта библиотека обеспечивает интерфейс для настройки дальномера, получения данных о расстоянии и обработки результатов измерений.
TM1637Display.h
Библиотека TM1637Display.h используется для работы Arduino с семисегментными дисплеями на базе драйвера TM1637. Она позволяет выводить цифры, буквы и спец символы на дисплей, а также настраивать яркость изображения на индикаторе.
TroykaCurrent.h
Библиотека TroykaCurrent.h предназначена для измерения тока в портах Arduino. Она позволяет определить текущий ток и ограничить его при превышении заданного порога, библиотека работает с различными типами аналоговых входов микроконтроллера.
Ultrasonic.h
Эта библиотека нацелена на эффективность использования ресурсов и упрощение работы с ультразвуковыми модулями. Библиотека Ultrasonic.h минималистична, сокращает выполнение кода и ненужное использование глобальных переменных в программе.
Как скачать библиотеку для Arduino IDE
Пользовательские библиотеки создаются разработчиками модулей и датчиков для Ардуино. Большинство популярных библиотек можно скачать на сайте GitHub — это сервис для совместной разработки проектов и программного обеспечения, где можно отследить историю изменений исходного кода. Чтобы собрать проекты с модулями и датчиками, вы можете скачать все необходимые файлы с библиотеками на этой странице.
Чтобы скачать новую библиотеку для Arduino, перейдите по соответствующей ссылке на сайт github.com и нажмите на кнопку «Code» В открывшейся вкладке нажмите на «Download ZIP» — тогда начнется загрузка архива с файлами на компьютер. Для всех примеров на нашем сайте использованы библиотеки, размещенные на этой странице. После загрузки zip архива необходимо будет установить файлы на компьютер.
Установка библиотек в Arduino IDE
В статье мы подробно разберем как установить новую библиотеку в среду разработки Arduino IDE.
В статье Начало работы с Arduino в Windows =>> мы подробно разобрали, как скачать и установить среду разработки Arduino IDE.
Освоившись с программным обеспечением Arduino IDE, используя встроенные функции, вы можете расширить возможности вашего Arduino, используя дополнительные библиотеки. Рано или поздно с такой необходимостью сталкивается любой приобщившийся к миру Ардуино.
Многим начинающим мастерам Ардуино очень тяжело даются основы программирования. Язык Arduino очень похож на C++, а это не самый простой для понимания язык. К счастью, создатели ардуино снабдили нас большим количеством примеров, встроенных в Arduino IDE, в том числе на русском. А сообщество программистов написало огромное количество программ и библиотек, что очень упрощает жизнь не только новичкам, но и опытным программистам.
В статье Руководство по освоению Arduino =>>Вы найдете набор программ «скетчей» (наборов команд) для первых экспериментов с Arduino с подробными описаниями на русском языке. А так же руководство с открытым исходным кодом для Arduino на русском языке. Краткое описание и пояснение особенностей языка программирования С и интерфейса Arduino.
Библиотека Ардуино – это некий программный код, хранящийся не в скетче, а во внешних файлах, которые можно подключить к вашему проекту. Библиотека облегчает подключения датчика, экрана, шилда, двигателя и так далее.
Библиотеку можно написать самостоятельно, а можно воспользоваться уже готовой (в Интернете можно найти сотни различных дополнительных библиотек).
Все многообразие библиотек в Arduino IDE можно разделить на три группы:
- Встроенные – это библиотеки, изначально установленные в среде Arduino IDE. Их не нужно скачивать и устанавливать дополнительно, они доступны для использования в программе сразу после запуска среды разработки.
- Дополнительные – это библиотеки, которые нужно самостоятельно скачивать устанавливать. Обычно такой вид библиотек разрабатывает производитель датчиков, сенсоров и других компонентов для облегчения работы с Ардуино.
- Зависимые библиотеки – устанавливаются как помощник дополнительной библиотеки, отдельно от нее не работает.
Встроенные библиотеки самые простые в использовании, они уже есть в среде разработки Arduino IDE. А вот для того, чтобы воспользоваться дополнительными и зависимыми библиотеками, их нужно сначала установить.
Используем Library Manager
Чтобы установить новую библиотеку в Arduino IDE, можно воспользоваться Library Manager, который появился в версии Arduino IDE 1.6.2.
В меню Эскиз выбираем Include Library → Manage Libraries.
После этого откроется менеджер библиотек, и вы увидите список библиотек, которые уже установлены или готовы к установке. Уже установленные библиотеки помечены как INSTALLED.
В этом примере мы будем устанавливать библиотеку Encoder. Найдите ее в списке и выберете версию, которую вы хотели бы установить. В некоторых библиотеках вам будет доступна только одна версия, поэтому не волнуйтесь, если не увидите меню выбора версии библиотеки.
После этого появится индикатор процесса установки и после ее завершения статус библиотеки Encoder сменится на INSTALLED. Теперь эта библиотека станет доступной для добавления в наши программы, используя меню Эскиз → Include Library.
Импорт библиотеки в виде файла .zip
Часто библиотеки можно встретить в виде упакованной в zip-архив папки. Название этой папки является именем библиотеки. Внутри папки обязательно будет файл .cpp и заголовочный .h файл. Также часто можно встретить файл keywords.txt, папку с кодом примеров использования этой библиотеки и другие требуемые для этой библиотеки файлы.
После скачивания библиотеки в виде zip-архива его не нужно распаковывать. Для установки запакованной библиотеки служит меню Эскиз → Include Library → Add .ZIP Library.
После этого нужно указать путь к zip-файлу библиотеки. Этот zip-файл будет распакован и помещен в папку libraries в директорию со скетчами Arduino.
Нужно отметить, что после установки библиотека становится доступной через меню Эскиз →
Include Library, но для того, чтобы стали доступны файлы примеров этой библиотеки, используя меню Файл → Образцы, необходимо перезапустить Arduino IDE.
Ручная установка библиотеки
Для ручной установки библиотеки, прежде всего, нужно закрыть приложение Arduino IDE. Затем распакуйте, скаченный zip-файл. Например, мы хотим установить гипотетическую библиотеку Robot-Kit-Arduino. Распаковав файл Robot-Kit-Arduino.zip, мы должны получить папку Robot-Kit-Arduino с файлами типа Robot-Kit-Arduino.cpp и Robot-Kit-Arduino.h внутри. Если после распаковки мы получаем файлы без папки, то нужно создать вручную папку Robot-Kit-Arduino, поместив внутрь полученные библиотечные файлы.
После этого необходимо переместить эту папку в папку libraries, расположение которой зависит от используемой вами операционной системы.
Для Windows, по умолчанию, это:
- Мои документы Arduino libraries
Для пользователей Mac OS X:
- ~/Документы/Arduino/libraries
В Linux это будет папка libraries с вашими скетчами.
Очень важно, чтобы библиотечные файлы .cpp и .h находились в отдельной папке (как в примере Robot-Kit-Arduino). Если поместить файлы .cpp и .h просто в папку libraries, то библиотека работать не будет.
После перезапуска Arduino IDE добавленная библиотека станет доступна для подключения ее к своим программам через меню Эскиз → Include Library.
0 комментариев
Robot-Kit.ru — интернет-магазин продажи товаров для роботов.
- Адрес
- Заказ Москва
- Заказ Россия
- 3D печать на заказ
- Ремонт роботов пылесосов
“Внутри” библиотеки
Библиотека, в зависимости от объема кода и настроения программиста, может быть оформлена как очень компактно, так и подробно, с кучей файлов и дополнительных папок. Рассмотрим классический состав библиотеки. Для удобства работы рекомендую включить видимость расширений файлов (Windows).
Все перечисленные ниже файлы являются обычными текстовыми файлами, открыть их можно обычным блокнотом. Рекомендую использовать “блокнот программиста” – Notepad++ (ссылка на официальный сайт), который подсвечивает синтаксис и в целом является очень удобным инструментом разработчика.
- название_библиотеки.h – заголовочный файл, самый главный файл библиотеки. Он настолько главный, что библиотека может состоять только из него одного. Находится обычно в корне библиотеки, либо в папке src(source, исходник). В этом файле обычно перечислены все классы/методы/функции/типы данных, находится информация о библиотеке, часто встречается расширенное описание для каждого метода или функции. Часто заголовочный файл является мини-документацией на библиотеку.
- Файл с расширением .cpp – файл реализаци, в котором находится основной исполнительный код программы. Обычно идёт парой к своему заголовочному .h файлу, т.е. название_библиотеки.cpp .
- keywords.txt – файл, в котором перечислены подсвечиваемые в коде названия функций, методов и прочих рабочих имён библиотеки.
- Файл library.properties содержит информацию о библиотеке для менеджера библиотек (название, версия, автор, категория и проч.)
- Папка src – в этой папке могут находиться основные файлы библиотеки ( .h , .cpp , .c ).
- Папка examples – папка с примерами использования библиотеки. Помимо перечисленных файлов и папок в папке с библиотекой могут находиться и другие служебные файлы и папки, иногда можно встретить даже полную документацию в виде текстовых файлов или html страниц.
Как работать с библиотекой?
Допустим, вы купили какой то модуль или датчик, загуглили по нему информацию, нашли статью с примером. Примеры обычно простенькие, показать как подключается и работает. Скачали библиотеку из статьи, попробовали, всё работает. Что дальше? Дальше следует открыть папку с библиотекой и посмотреть официальные примеры, разобраться как они работают и что умеют. Примеры находятся в папке examples в папке с библиотекой. Примеры обычно не раскрывают всех возможностей библиотеки, поэтому открываем и читаем заголовочный файл, который название_библиотеки.h. В нем можно найти буквально список инструментов библиотеки, очень часто с описанием для каждого. Вооружившись этой информацией, можно выжать из инструмента все возможности, которые ему прописал разработчик библиотеки.
Давайте рассмотрим стандартную библиотеку Servo, я думаю большинство с ней уже работали (смотри мой видеоурок по работе с Servo). Посмотрим примеры, которые лежат в папке с библиотекой:
/* Controlling a servo position using a potentiometer (variable resistor) by Michal Rinott modified on 8 Nov 2013 by Scott Fitzgerald http://www.arduino.cc/en/Tutorial/Knob */ #include Servo myservo; // create servo object to control a servo int potpin = 0; // analog pin used to connect the potentiometer int val; // variable to read the value from the analog pin void setup() < myservo.attach(9); // attaches the servo on pin 9 to the servo object >void loop() < val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023) val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180) myservo.write(val); // sets the servo position according to the scaled value delay(15); // waits for the servo to get there >
/* Sweep by BARRAGAN This example code is in the public domain. modified 8 Nov 2013 by Scott Fitzgerald http://www.arduino.cc/en/Tutorial/Sweep */ #include Servo myservo; // create servo object to control a servo // twelve servo objects can be created on most boards int pos = 0; // variable to store the servo position void setup() < myservo.attach(9); // attaches the servo on pin 9 to the servo object >void loop() < for (pos = 0; pos for (pos = 180; pos >= 0; pos -= 1) < // goes from 180 degrees to 0 degrees myservo.write(pos); // tell servo to go to position in variable ‘pos’ delay(15); // waits 15ms for the servo to reach the position >>
Из этих примеров мы узнали, что есть класс Servo, и нужно создать объект этого класса. В блоке setup() мы можем указать, к какому пину подключена серво (метод attach()), и можем повернуть серво на нужный угол (в градусах) при помощи метода write(). Это в принципе всё, что мы узнали из официального примера.
Теперь откроем заголовочный файл Servo.h, который находится в папке src:
#define Servo_VERSION 2 // software version of this library #define MIN_PULSE_WIDTH 544 // the shortest pulse sent to a servo #define MAX_PULSE_WIDTH 2400 // the longest pulse sent to a servo #define DEFAULT_PULSE_WIDTH 1500 // default pulse width when servo is attached #define REFRESH_INTERVAL 20000 // minumim time to refresh servos in microseconds #define SERVOS_PER_TIMER 12 // the maximum number of servos controlled by one timer #define MAX_SERVOS (_Nbr_16timers * SERVOS_PER_TIMER) #define INVALID_SERVO 255 // flag indicating an invalid servo index #if !defined(ARDUINO_ARCH_STM32F4) typedef struct < uint8_t nbr :6 ; // a pin number from 0 to 63 uint8_t isActive :1 ; // true if this channel is enabled, pin not pulsed if false >ServoPin_t ; typedef struct < ServoPin_t Pin; volatile unsigned int ticks; >servo_t; class Servo < public: Servo(); uint8_t attach(int pin); // attach the given pin to the next free channel, sets pinMode, returns channel number or 0 if failure uint8_t attach(int pin, int min, int max); // as above but also sets min and max values for writes. void detach(); void write(int value); // if value is < 200 its treated as an angle, otherwise as pulse width in microseconds void writeMicroseconds(int value); // Write pulse width in microseconds int read(); // returns current pulse width as an angle between 0 and 180 degrees int readMicroseconds(); // returns current pulse width in microseconds for this servo (was read_us() in first release) bool attached(); // return true if this servo is attached, otherwise false private: uint8_t servoIndex; // index into the channel data for this servo int8_t min; // minimum is this value times 4 added to MIN_PULSE_WIDTH int8_t max; // maximum is this value times 4 added to MAX_PULSE_WIDTH >;
Что мы можем узнать из этого кода? Достаточно много всего интересного!
- Минимальный импульс – 544 мкс
- Максимальный импульс – 2400 мкс
- Стандартный импульс после attach() – 1500 мкс – значит серво повернётся на соответствующий угол после подключения!
- Максимальное количество серво можно узнать, выведя дефайн MAX_SERVOS в порт ( Serial.print(MAX_SERVOS); ) – для Arduino NANO это будет 12 штук
- В классе Servo мы можем увидеть методы, которые не были раскрыты в примерах:
- Версия attach() с возможностью указать мин. и макс. длину импульса вручную
- detach() – отключить серво от управления
- writeMicroseconds() – подать управляющий сигнал в мкс, а не в градусах
- read() – считать текущее положение серво (последнее отправленное через write() )
- И некоторые другие
Перед кодом также находится весьма подробное описание библиотеки и расписаны некоторые тонкости. Что я хочу этим сказать: очень часто именно заголовочный файл несёт основную массу полезной информации по возможностям библиотеки, и в “статьях” о модулях и датчиках вы эту информацию скорее всего не найдёте. Всегда изучайте заголовочный файл, если нужно серьёзно поработать с каким-то модулем или вообще библиотекой в целом!
Список стандартных библиотек в Arduino IDE
Чтобы воспользоваться примером программы из стандартной библиотеки следует открыть в Arduino IDE вкладку «Файл -> Примеры» Далее перейдите на вкладку с нужной библиотекой и откройте пример скетча. Все стандартные библиотеки расположены в директории: C:Program FilesArduinolibraries. Если прокрутить вкладку с примерами ниже, то появится список всех установленных по умолчанию библиотек в Arduino IDE.
Перед тем, как использовать команды и функции в программе, необходимо подключить в скетче соответствующую библиотеку. Для этого используется директива #include, после которой в кавычках указывается имя библиотеки с расширением. Например, для того, чтобы в скетче подключить библиотеку для ультразвукового датчика расстояния HC-SR04 следует добавить в программе строчку директивы #include «Ultrasonic.h»
Список пользовательских библиотек в Arduino
Adafruit_NeoPixel.h
Библиотека Adafruit_NeoPixel.h используется для работы с адресными светодиодными лентами. Она позволяет управлять от микроконтроллера Arduino яркостью, цветом и порядком зажигания светодиодов, а также создавать различные эффекты и анимацию.
AFMotor.h
Библиотека AFMotor.h используется для управления сервомоторами и двигателями постоянного тока с помощью ШИМ-сигналов. Библиотека позволяет регулировать скорость вращения двигателя и обеспечивает плавный пуск и остановку мотора.
DallasTemperature.h
Библиотека DallasTemperature.h используется для работы платы Ардуино с датчиками температуры от компании Dallas Semiconductor. Она позволяет считывать показания температуры. Библиотека поддерживает датчики DS18B20, DS18S20 и DS1822.
DHT.h
Библиотека DHT.h используется для взаимодействия с цифровыми датчиками температуры и влажности DHT11, DHT22 и DHT01. Она предоставляет функции для чтения температуры и влажности воздуха, а также для обработки полученных данных.
EtherCard.h
Библиотека EtherCard.h используется для создания сетевых приложений на основе плат Arduino с Ethernet-шилдом. Она позволяет устанавливать соединение, отправлять и получать данные по протоколу TCP/IP и взаимодействовать с веб-серверами.
FastLED.h
Библиотека FastLED.h используется для управления светодиодными лентами и матрицами на базе WS2811 / WS2812 / WS2812B. Она позволяет задавать цвет, яркость и порядок зажигания светодиодов, создавать различные световые эффекты и анимацию.
iarduino_RTC.h
Библиотека iarduino_RTC.h используется для работы платы Ардуино с модулями Real Time Clock (RTC), которые обеспечивают точные показания времени даже при отсутствии питания. Она позволяет настроить модуль часов, получить текущее время и дату.
IRremote.h
Библиотека IRremote.h используется для работы с инфракрасными (IR) пультами дистанционного управления (ДУ) и содержит набор функций, которые позволяют принимать и отправлять сигналы инфракрасных пультов от платы Arduino.
LiquidCrystal_I2C.h
Библиотека LiquidCrystal_I2C.h используется для управления LCD-дисплеями с использованием протокола связи I2C. Она позволяет отображать текст и графику на графическом экране, а также управлять различными настройками дисплея.
MFRC522.h
Библиотека MFRC522.h используется для работы микроконтроллера Arduino с RFID-считывателями MIFARE RFID. Она позволяет читать и записывать данные с RFID-карт, а также обрабатывать информацию, полученную от считывателя меток.
MQ2.h
Библиотека MQ2.h используется для работы с газовым датчиком MQ-2, который может измерять концентрацию различных газов. Эта библиотека предоставляет функции для настройки и использования датчика, а также обработки полученных данных.
nRF24L01.h
Библиотека nRF24L01.h используется для работы с радиомодулями, предоставляя простой и удобный интерфейс для управления ими. Она позволяет передавать и принимать данные, управлять мощностью передатчика, выбирать каналы и многое другое.
OLED_I2C.h
Библиотека OLED_I2C.h предназначена для управления OLED-дисплеями по шине I2C. Она позволяет отображать текст, символы и графику на дисплее. Библиотека поддерживает дисплеи с контроллерами SSD1306, SSD1309, SSD1322, SSD1325, SH1106 и SH1107.
OneWire.h
Библиотека OneWire.h используется в проектах с устройствами One-Wire, такими как датчики Dallas Semiconductor DS18x20. Она предоставляет интерфейс для коммуникации микроконтроллера Ардуино с устройствами и датчиками по протоколу One-Wire.
RotaryEncoder.h
Библиотека RotaryEncoder.h используется в программировании платы Ардуино для работы с энкодерами (устройствами для измерения угла поворота объекта). Она позволяет определять положение ручки поворотного энкодера и скорость её вращения.
SD.h
Библиотека SD.h используется в языке Arduino IDE для работы с SD-картами, позволяя считывать и записывать данные на карту памяти. Она поддерживает различные файловые системы и позволяет работать с текстовыми файлами различных типов.
SPI.h
Библиотека SPI.h используется для обеспечения последовательного интерфейса между микроконтроллерами и периферийными устройствами. Библиотека содержит функции для инициализации, передачи и приема данных, а также настройки SPI-соединения.
SoftwareSerial.h
Библиотека SoftwareSerial.h используется для создания программных последовательных портов на любых цифровых выводах платы Arduino. Это бывает полезно, когда у микроконтроллера ограниченное количество аппаратных последовательных портов.
Stepper.h
Библиотека Stepper.h используется для управления шаговыми двигателями от Arduino. Она позволяет задавать количество шагов, скорость и направление вращения шагового двигателя, а также обеспечивает плавную остановку и запуск двигателя.
SFE_BMP180.h
Библиотека SFE_BMP180.h предназначена для работы с датчиком температуры и давления BMP180 от Bosch Sensortec. Она обеспечивает простой и удобный интерфейс для чтения значений температуры, атмосферного давления и высоты над уровнем моря.
SparkFun_APDS9960.h
Библиотека используется для работы с ИК-датчиком APDS-9960, который может обнаруживать движение и определять направление движения. В библиотеке есть функции для настройки датчика, чтения данных и обработки полученных результатов.
SparkFun_VL53L1X.h
Библиотека SparkFun_VL53L1X.h используется для работы с дальномером VL53L1X-EZ производства SparkFun. Эта библиотека обеспечивает интерфейс для настройки дальномера, получения данных о расстоянии и обработки результатов измерений.
TM1637Display.h
Библиотека TM1637Display.h используется для работы Arduino с семисегментными дисплеями на базе драйвера TM1637. Она позволяет выводить цифры, буквы и спец символы на дисплей, а также настраивать яркость изображения на индикаторе.
TroykaCurrent.h
Библиотека TroykaCurrent.h предназначена для измерения тока в портах Arduino. Она позволяет определить текущий ток и ограничить его при превышении заданного порога, библиотека работает с различными типами аналоговых входов микроконтроллера.
Ultrasonic.h
Эта библиотека нацелена на эффективность использования ресурсов и упрощение работы с ультразвуковыми модулями. Библиотека Ultrasonic.h минималистична, сокращает выполнение кода и ненужное использование глобальных переменных в программе.
Установка и подключение библиотеки к Arduino – достаточно распространенная операция для тех, кто работает с этой платформой. В них хранятся различные методы и структуры данных, которые нужны для упрощения работы с датчиками, индикаторами, модулями и другими компонентами. Это необходимо для того, чтобы не углубляться в архитектуру подключаемого модуля и сосредоточиться на создании основной программы.
Перед тем, как начать пользоваться методами и функциями библиотек, ее необходимо загрузить на Ваш компьютер, разместить в нужной папке и подключить к программе (вставить текст #include в скетч).
Существует несколько способов добавления сторонних библиотек:
- указание zip-архива
- ручное размещение в каталоге библиотек
- установка из офф. репозитория
Прежде чем добавлять сторонние библиотеки необходимо взглянуть на список уже имеющихся в Arduino IDE:
Каждая установленная библиотека содержит один или несколько примеров для работы. Они используются для того, чтобы проверить работоспособность подключенного модуля и отобразить его возможности. Для этого в Главном меню выберите Файл, затем вкладку Примеры:
Скачивание библиотеки.
На сегодняшний день существует огромное количество библиотек, которые можно скачать в интернете. Большинство библиотек имеется на сайте Github. После загрузки важно добавить ее в правильную папку. Библиотека скачивается в виде ZIP-архива.
Чтобы установить ее, не выкладывая из архива, нужно зайти в меню Скетч – Подключить библиотеку – Добавить .ZIP библиотеку.
Когда откроется окно, необходимо выбрать ту папку, где был сохранен архив с библиотекой:
Затем нужно выбрать скачанный файл и нажать «Open»:
Если в процессе программа не выдала ошибок, связанных с архивом, то библиотека установлена и ей можно пользоваться.
Установка вручную из .ZIP архива.
Перед началом установки необходимо выйти из Arduino IDE. Скачанный архив нужно распаковать. На выходе будет папка, в которой располагаются файлы библиотеки с расширением .cpp и .h и дополнительные каталоги. Папку нужно разместить в /Документы/Arduino/libraries.
Далее запускаем Arduino IDE, загруженная библиотека будет доступна через Скетч – Подключить библиотеку.
Добавление библиотеки из официального репозитория Arduino.
Для этого открываем Arduino IDE — скетч — Подключить библиотеку — Управлять библиотеками.
В окне поиска вводим поисковый запрос, например DHT22.
Редактирование библиотек или признак хороших манер.
В процессе сборки различных проектов количество подключенных библиотек растет в геометрической прогрессии. Чтобы оптимизировать процесс составления программы можно добавлять в папку с каждым отдельным проектом файлы библиотек .cpp и .h, необходимые для работы с подключенными модулями:
После запуска программы во вкладках будут находится файлы библиотек, доступные для редактирования.