Для более легкой и продуктивной работы с Arduino есть возможность использовать дополнительные библиотеки. Библиотеки Arduino — это части программы для выполнения конкретных задач. С помощью библиотек можно выполнять сложные действия всего парой строк кода, потому что кто-то другой уже написал часть кода за вас.
В Arduino IDE удобный интерфейс для работы с библиотеками ардуино. Прямо из меню программы вы можете скачать, установить и подключить в свой скетч множество библиотек. Для большинства библиотек Arduino можно посмотреть примеры использования. Это поможет понять принцип работы библиотеки. Примеры можно доработать под свои нужды и использовать для реализации своих устройств.
Существуют стандартные библиотеки, которые устанавливаются вместе с Arduino IDE. Некоторые из них даже автоматически подключаются в скетч (например Serial).
Скачать стандартные библиотеки Arduino
Скачать стандартные библиотеки можно на официальном сайте Arduino .
Там вы найдете описания и примеры использования стандартных библиотек. Так же вы можете скачать все стандартные библиотеки одним архивом . В этом архиве не только стандартные библиотеки, но и множество дополнительных самых популярных библиотек для Ардуино.
Ниже приведены подробные описания и примеры использования стандартных библиотек Arduino.
- — Библиотека для обмена данными через последовательный порт (UART).
- — Библиотека для легкого и точного управления сервоприводами.
- — Библиотека для работы с интерфейсами связи TWI/I2C. Упрощает обмен данными с устройствами, датчиками и сенсорами.
- WiFi — Подключение к интернету с использованием WiFi шилда.
- TFT — Нужна для отрисовки текста, изображений и картинок на TFT дисплее Arduino.
- Stepper — Библиотека для управления шаговыми моторами.
- LiquidCrystal — Для работы Arduino с жидкокристаллическими экранами (LCD)
- Ethernet — Для подключения к интернету с использованием .
- SD — Библиотека для записи и считывания информации с SD карт памяти.
- GSM — Библиотека для подключения Ардуино к GSM сети. Необходима для отправки и получения SMS и звонков, а так же для выхода в интернет с помощью GPRS. Используется с .
- EEPROM — Библиотека для чтения и записи в энергонезависимую память Arduino.
Очень часто одни и те же части кода кочуют из программы в программу. Например, код для работы с датчиком. Чтобы не писать этот код каждый раз заново, его выносят в отдельные файлы - библиотеки. Огромное количество готового кода уже написано другими людьми, и с помощью библиотек его можно легко использовать в своих программах.
Подключение библиотек
Библиотеки в составе Arduino IDE
Очень много библиотек идет в составе Arduino IDE. Добавить библиотеку в свой код можно из меню Эскиз Импорт библиотек… Название библиотеки :
После выбора пункта «Servo» Arduino IDE сама вставит в код нужные строчки:
#includeКонечно, если вы знаете название нужной библиотеки, можно просто написать в самом верху скетча #include
Чтобы посмотреть пример работы с библиотекой, идущей в составе Arduino IDE необходимо выбрать в меню Файл Образцы Название библиотеки Название примера
Сторонние библиотеки
Библиотек для Arduino действительно очень много. И только незначительная часть из них входит в состав Arduino IDE. Многие библиотеки можно найти на сайте GitHub .
Давайте попробуем добавить в свой проект библиотеку для работы с четырёхразрядным индикатором . Ссылка на библиотеку для работы с ним есть на странице описания товара.
Если зайти на страницу библиотеки, можно увидеть множество файлов библиотеки и примеры работы с ней. Но нас пока будет интересовать только кнопка Download ZIP
:
После нажатия на неё начнётся загрузка.zip-архива со всеми файлами библиотеки. В данном случае это будет файл QuadDisplay-master.zip . Название библиотеки может состоять только из латинских букв и цифр, при этом название не может начинаться с цифры, поэтому давайте сразу переименуем наш архив. Теперь он будет называться QuadDisplay.zip .
После загрузки архива нужно зайти в Arduino IDE и выполнить импорт библиотеки в вашу рабочую папку Sketchbook/libraries , в которой должны находится все сторонние библиотеки. Сделать это можно прямо из Arduino IDE, в меню
Эскиз
Импорт библиотек…
Добавить библиотеку…
:
Откроется диалоговое окно, в котором необходимо выбрать наш архив QuadDisplay.zip и нажать кнопку Open
.
Готово. Теперь библиотеки можно добавлять в код. Примеры работы с библиотекой доступны в меню
Файл
Sketchbook
libraries
Название библиотеки
Название примера
В Arduino 1.6.7 и выше: Файл Примеры Название библиотеки Название примера
Создание библиотеки
Обычно, при создании библиотеки создаются два файла: заголовочный файл и файл с кодом библиотеки. Давайте попробуем написать библиотеку, которая бы позволяла нам посчитать площадь круга. Создадим в директории %Sketchbook%\Arduino\libraries папку с названием нашей библиотеки (название может состоять только из латинских букв и цифр, при этом не может начинаться с цифры). Давайте назовём нашу библиотеку circleArea. Перейдём в созданную нами папку %Sketchbook%\Arduino\libraries\circleArea и создим там два файла:
circleArea.h - заголовочный файл
circleArea.cpp - файл с кодом библиотеки.
Код circleArea.h будет таким:
circleArea.h #includeКод circleArea.cpp будет таким:
circleArea.cpp #includeИспользование библиотеки в скетче будет таким:
circleArea.ino #includeОсвоившись с программным обеспечением Arduino, используя встроенные функции, вы можете расширить возможности вашего Arduino, используя дополнительные библиотеки.
Библиотека — это некоторый набор кода, который облегчает подключения датчика, экрана, шилда и так далее. Например, встроенная библиотека LiquidCrystal облегчает взаимодействие с . В Интернете можно найти сотни различных дополнительных библиотек. Для того, чтобы воспользоваться этими библиотеками, их нужно сначала установить.
Используем Library Manager
Чтобы установить новую библиотеку в Arduino IDE , можно воспользоваться Library Manager , который появился в версии .
В меню Эскиз выбираем 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-файл. Например, мы хотим установить гипотетическую библиотеку RobotoshaArduino . Распаковав файл RobotoshaArduino.zip , мы должны получить папку RobotoshaArduino с файлами типа RobotoshaArduino.cpp и RobotoshaArduino.h внутри. Если после распаковки мы получаем файлы без папки, то нужно создать вручную папку RobotoshaArduino , поместив внутрь полученные библиотечные файлы.
После этого необходимо переместить эту папку в папку libraries , расположение которой зависит от используемой вами операционной системы.
Для Windows, по умолчанию, это:
Мои документы\Arduino\libraries
Для пользователей Mac OS X :
~/Документы/Arduino/libraries
В Linux это будет папка libraries с вашими скетчами.
Очень важно, чтобы библиотечные файлы .cpp и .h находились в отдельной папке (как в примере RobotoshaArduino ). Если поместить файлы .cpp и .h просто в папку libraries , то библиотека работать не будет.
После перезапуска Arduino IDE добавленная библиотека станет доступна для подключения ее к свои программам через меню Эскиз → Include Library .
Как вы оцениваете эту публикацию?
Данный документ описывает создание библиотеки для Arduino. Объяснение начнется с написания скетча передачи кода Морзе посредством светодиода. Затем будет показано как конвертировать скетч в библиотеку. Это позволит другим пользователям легко использовать созданный код, обновлять и дополнять его.
Скетч, воспроизводящий код Морзе:
Int pin = 13; void setup() { pinMode(pin, OUTPUT); } void loop() { dot(); dot(); dot(); dash(); dash(); dash(); dot(); dot(); dot(); delay(3000); } void dot() { digitalWrite(pin, HIGH); delay(250); digitalWrite(pin, LOW); delay(250); } void dash() { digitalWrite(pin, HIGH); delay(1000); digitalWrite(pin, LOW); delay(250); }
Данный скетч посредством мигания светодиода на выводе 13 выдает сигнал SOS.
Скетч содержит ряд частей кода, которые необходимо будет перенести в библиотеку. Во-первых, это функции dot() и dash() , которые управляют миганием светодиода. Во-вторых, это переменная ledPin , определяющая какой порт ввод/вывода использовать. И наконец, вызов функции pinMode() , устанавливающий режим вывода на используемом порту ввода/вывода.
Процесс конвертации скетча в библиотеку.
Библиотека содержит два файла: заголовочный файл (с расширением.h) и файлы реализации (с расширением.cpp). Заголовочный файл содержит характеристики библиотеки, т.е. список всего что содержится в ней. Создаваемый заголовочный файл будет называться Morse.h. Для дальнейшей работы с заголовочным файлом необходимо просмотреть содержание файла реализации.
Заголовочный файл содержит класс, в котором объявляются функций и используемые переменные:
Class Morse { public: Morse(int pin); void dot(); void dash(); private: int _pin; };
Класс в данном случае это набор функций и переменных, объеденных в одном месте. Функции и переменные могут быть публичными (public ), что означает общий доступ к ним всех, кто использует библиотеку, или частными (private ), что означает доступ к ним только внутри класса. Каждый класс имеет специальную функцию конструктор, которая используется для создания экземпляра класса. Конструктор имеет тоже имя, что и класс, но не имеет типа возвращаемого значения.
Также заголовочный файл содержит еще несколько дополнительных строк. Во-первых, это директива #include , которая дает доступ к стандартным типам и постоянным языка программирования Arduino (директива по умолчанию добавляется к каждому скетчу, но не к библиотеке). Директива выглядит следующим образом (и находится выше объявления класса):
#include "WProgram.h"
В версиях Arduino 1.0 и выше нужно еще добавить:
#include Arduino.h
Также принято заключать содержимое заголовочного файла в следующую конструкцию:
#ifndef Morse_h #define Morse_h // директивы #include и код помещается здесь #endif
Это предотвращает повторное подключение нашей библиотеки, если кто-то по ошибке дважды подключит библиотеку директивой #include .
В начале кода библиотеки принято помещать комментарий о ее предназначении, авторе, дате и лицензии на библиотеку.
Готовый заголовочный файл содержит:
/* Morse.h - Library for flashing Morse code. Created by David A. Mellis, November 2, 2007. Released into the public domain. */ #ifndef Morse_h #define Morse_h #include "WProgram.h" class Morse { public: Morse(int pin); void dot(); void dash(); private: int _pin; }; #endif
Рассмотрим файл реализации Morse.cpp.
В начале кода находятся несколько директив #include . Данными директивами разрешается доступ к стандартным функциям Arduino и к характеристикам в головном файле библиотеки:
#include "WProgram.h" #include "Morse.h"
Далее по коду находится конструктор. Он используется для создания экземпляра создаваемого класса. В данном случае пользователь задает номер используемого порта ввода/вывода через параметр. Порта устанавливается в режим вывода, а номер сохраняется в частной переменной для использования в других функциях:
Morse::Morse(int pin) { pinMode(pin, OUTPUT); _pin = pin; }
Код Morse :: означает, что функция принадлежит классу Morse. Нижний пробел в начале имени переменной _ pin — принятое обозначение для частных переменных. Вообще, имя может быть любое, но согласно принятым конвенциям именования для частных переменных принято использовать префикс "_". Это также позволяет отличить от аргумента функции (в данном случае pin ).
Void Morse::dot() { digitalWrite(_pin, HIGH); delay(250); digitalWrite(_pin, LOW); delay(250); } void Morse::dash() { digitalWrite(_pin, HIGH); delay(1000); digitalWrite(_pin, LOW); delay(250); }
Общепринято помещать некоторые поясняющие комментарии в начале кода файла реализации. Полный код библиотеки:
/* Morse.cpp - Library for flashing Morse code. Created by David A. Mellis, November 2, 2007. Released into the public domain. */ #include "WProgram.h" #include "Morse.h" Morse::Morse(int pin) { pinMode(pin, OUTPUT); _pin = pin; } void Morse::dot() { digitalWrite(_pin, HIGH); delay(250); digitalWrite(_pin, LOW); delay(250); } void Morse::dash() { digitalWrite(_pin, HIGH); delay(1000); digitalWrite(_pin, LOW); delay(250); }
Использование библиотеки.
Во-первых, необходимо создать папку Morse в подпапке libraries директории блокнота. Во-вторых, требуется скопировать файлы Morse.h и Morse.cpp в созданную папку. После запуска программы Arduino в меню Sketch > ImportLibrary будет находиться библиотека Morse. Библиотека будет компилироваться совместно со скетчами, использующими ее. Если при компиляции библиотеки возникли проблемы, то необходимо проверить, чтобы ее файлы были с расширениями.cpp и.h (не должно быть никаких дополнительных расширений.pde и.txt).
Изначальный скетч, переписанный с использованием созданной библиотеки, будет выглядеть следующим образом:
#include
Несколько отличий от изначального скетча:
Во-первых, добавлена директивы #include в начало скетча. Таким образом определяется доступность библиотеки Morse и ее подключение. Неиспользуемую библиотеку можно удалить, убрав директиву #include.
Во-вторых, создается экземпляр класса Morse, называемый morse :
Morse morse(13);
При выполнении данной строки (перед выполнением функции setup() ) вызывается конструктор для класса Morse и принимает аргумент, данный в примере (13).
При этом функция setup() ничего не содержит, т.к. вызов функции pinMode() произошел внутри библиотеки (когда был создан экземпляр класса).
В-третьих, для вызова функций dot() и dash() необходимо прибавить префикс morse . - имя используемого экземпляра. Может быть несколько экземпляров класса Morse, каждый со своим номером порта, хранящимся в локальной переменной _pin . Вызовом функции конкретного экземпляра определяются какие переменные, используются во время вызова. При наличии следующих двух строк:
Morse morse(13); Morse morse2(12);
внутри вызова morse2.dot() , переменная _pin будет иметь значение 12.
К сожалению автоматическая подсветка кода не работает с подключаемыми библиотеками. Для того чтобы подсветка заработала необходимо создать файл с названием keywords.txt . Пример:
Morse KEYWORD1 dash KEYWORD2 dot KEYWORD2
Напротив каждой строки через табуляцию стоит зарезервированное слово, и опять через табуляцию тип слова. Классы соответствуют зарезервированному слову KEYWORD1 и окрашены в оранжевый цвет; функции - KEYWORD2 и окрашены в коричневый. Для распознавания слов необходимо перезапустить среду разработки Arduino.
Созданную библиотеку желательно всегда сопровождают примером ее применения. Для этого создается папка examples в директории Morse . Затем копируется созданный ранее скетч SOS в данную папку. (Файл скетча можно найти через меню Sketch > ShowSketchFolder ). После перезапуска Arduino в меню File > Sketchbook > Examples будет находиться пункт Library-Morse, содержащий пример. Также необходимо добавить комментарии о том, как лучше использовать библиотеку.
Многие скетчи (программы) работают с библиотеками. Библиотека облегчает работу с определённым модулем или одним из типов модулей. Например, если Вы хотите вывести текст на LCD дисплей без подключения библиотеки, то Вам нужно передать ему несколько байт команд и данных, что займет несколько строк кода, а главное, что Вам нужно знать тип микроконтроллера под управлением которого работает LCD дисплей, назначение команд которыми он управляется, знать архитектуру его памяти, адреса и назначение регистров, для чего потребуется найти и перечитать его datasheet. В то время как при написании кода с использованием библиотеки (например LiquidCrystal_I2C.h) Вы сможете вывести текст на дисплей вызвав всего одну функцию библиотеки: lcd.print("my text");
Перед тем как начать пользоваться методами и функциями библиотеки, её нужно скачать (загрузить на Ваш компьютер), установить (разместить в нужной папке) и подключить (вставить текст "#include <файл.h>" в скетч).
Скачивание библиотеки:
Если в наших уроках, описаниях или примерах используется библиотека, то мы указываем ссылку на скачивание этой библиотеки. Все наши библиотеки находятся в zip архиве, но не спешите доставать файлы из архива, это может не понадобиться, т.к. Arduino IDE сама может распаковывать архивы и размещать библиотеки в нужных папках (см. дальше).
Если Вы скачали архив библиотеки с сайта не указывая путь для сохранения файла, то скаченный (загруженный) Вами файл скорее всего находится в папке: Этот компьютер > Загрузки.
Установка библиотеки:
После того как Вы скачали (загрузили) библиотеку на свой компьютер, её нужно установить. Установить библиотеку можно вручную или сделать это средствами Arduino IDE:
Установка библиотеки средствами Arduino IDE:
Войдите в меню: Скетч > Подключить библиотеку > Добавить.ZIP библиотеку... .
![](https://i1.wp.com/iarduino.ru/img/upload/b5c466a0aab428e59c81afd9f11ec98d.jpg)
В появившемся окне нажмите на иконку «Этот компьютер » и выберите папку «Загрузки ». Если при скачивании ZIP архива с сайта, Вы указывали путь для сохранения файла, то вместо папки «Загрузки» укажите путь к файлу.
![](https://i1.wp.com/iarduino.ru/img/upload/ff8654e501aac4fa55ec3169285678db.jpg)
Выберите ZIP файл библиотеки, который Вы скачали. Название файла может не соответствовать названию библиотеки. После чего нажмите на кнопку «Открыть » (Open ).
![](https://i1.wp.com/iarduino.ru/img/upload/6704c62cd44a737d38fd35f202d03d75.jpg)
На этом установка библиотеки завершена, можно приступить к её подключению в скетч.
Установка библиотеки вручную:
Распакуйте скаченный Вами ZIP архив и поместите папку (имя папки обычно совпадает с названием библиотеки) из данного архива в папку: Этот компьютер > Документы > Arduino > libraries .
![](https://i1.wp.com/iarduino.ru/img/upload/50117cf8f3fb628ded5f2300b82fecc3.jpg)
Если во время копирования Arduino IDE была запущена (открыта), то нужно закрыть все окна этой программы, после чего запустить (открыть) Arduino IDE и можно приступать к подключению библиотеки в скетч.
Примечание: папка libraries есть не только по указанному выше пути, но и в папке программы Arduino IDE (где находится файл arduino.exe). Скопировав библиотеку в эту папку, она тоже установится, но Мы не рекомендуем это делать. Дело в том, что программа Arduino IDE постоянно развивается и количество её версий постоянно растёт. Если Вы захотите установить новую версию Arduino IDE, то библиотеки находящиеся в папке Этот компьютер > Документы > Arduino > libraries, будут доступны и в старой, и в новой (установленной) версии Arduino IDE, а библиотеки находящиеся в папке libraries программы Arduino IDE старой версии (которая была установлена ранее) будут доступны только в ней (пока Вы их не скопируете в новую).
Подключение библиотеки:
Для того чтобы подключить библиотеку, нужно написать всего одну строку в начале скетча: "#include <файл.h>", например:
#include
Некоторые библиотеки работают используя методы и функции других библиотек, тогда нужно подключать две библиотеки, сначала подключается та, методы и функции которой использует вторая, например:
#include
Для работы с большинством библиотек, нужно создать объект (экземпляр класса библиотеки), через который будут доступны их функции и методы, например:
LiquidCrystal_I2C lcd(0x27,20,4); // lcd это объект библиотеки LiquidCrystal_I2C // через объект обращаются к функциям и методам библиотеки
Вместо lcd можно написать любое слово или сочетание букв и цифр, это название объекта через который можно обращаться к методам и функциям библиотеки. Если Вместо lcd Вы написали myLCD, то и ко всем методам и функциям библиотеки LiquidCrystal_I2C, нужно обращаться через указанное Вами имя объекта, например: myLCD.print("my text");
Примеры из библиотек:
Большинство библиотек содержат примеры. Это небольшие скетчи (программы) которые раскрывают функционал библиотеки. Наиболее удобный способ просмотра примеров, с помощью средств Arduino IDE. Выберите пункт меню: Файл > Примеры , откроется список с названиями библиотек у которых есть примеры. Наведите курсор на название библиотеки и Вы увидите список примеров содержащихся в ней, клик на примере приведёт к появлению нового окна Arduino IDE со скетчем примера.
![](https://i2.wp.com/iarduino.ru/img/upload/e5466b2c4bc952c3f4f718c26883a782.jpg)
Альтернативный способ просмотра примеров заключается в запуске файлов скетчей из папки:
путь
> libraries
> название библиотеки
> examples
> название примера
.
Поиск библиотек:
Библиотеки можно искать самостоятельно, а можно воспользоваться функционалом Arduino IDE.
Выберите пункт меню: Скетч > Подключить библиотеку > Управлять библиотеками... .
![](https://i2.wp.com/iarduino.ru/img/upload/84081fe61bb7a14535c8fb729de51fe3.jpg)
Откроется «Менеджер библиотек », в котором можно найти интересующую Вас библиотеку введя её название в строку поиска, дополнительно можно установить пункты «Тип» и «Тема».
![](https://i0.wp.com/iarduino.ru/img/upload/2c971af249495790431c9e9fe50a411a.jpg)
Нажатие на описании библиотеки приведёт к появлению вкладки «Версия » и кнопки «Установка ». После нажатия на кнопку «Установка» можно приступать к подключению библиотеки в скетч "#include <файл.h>".