Как подключить библиотеку в ардуино

Содержание

Установить библиотеки в Arduino IDE очень просто. Можно сделать это двумя способами. Через интерфейс программы или копированием скачанной библиотеки в папку libraries. Рассмотрим подробнее оба варианта:

Установка библиотек через Arduino IDE

Первый вариант — это установка библиотек Ардуино из официального репозитория. Для этого необходимо запустить Arduino IDE, в верхнем меню выбрать Скетч — Подключить библиотеку — Управлять библиотеками.

Установка библиотек ардуино

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

Библиотеки Arduino установить

Второй вариант — это установка библиотеки из скачанной .zip папки. Через интерфейс Arduino IDE это можно сделать всего за пару кликов. В верхнем меню программ выбираем Скетч — Подключить библиотеку — Добавить .ZIP библиотеку. Откроется окно файлового менеджера, где необходимо выбрать папку или .zip архив с вашей библиотекой.

Еще один способ установки библиотек Ардуино

Вы можете просто перенести папки библиотек по пути:

C:\Program Files (x86)\Arduino\libraries\

После того как вы добавили свои библиотеки необходимо перезапустить Arduino IDE. Теперь вы можете использовать сторонние библиотеки в своих проектах.

Подключение библиотеки Arduino

Мало установить библиотеку. Для использования ее необходимо подключить в скетч. Сделать это очень просто. Можно в начале скетча вручную написать подобную строчку:

1 #include ESP8266WiFi.h

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

Установка и подключение библиотеки к arduino – достаточно распространенная операция, любой разработчик рано или поздно обязательно сталкивается с нею. Внешний подключаемый код во всех языках программирования используется для экономии времени. Ардуино не исключение: многие датчики, модули, экраны и двигатели требуют достаточно сложные схемы взаимодействия, которые трудно реализовывать в своем коде. Гораздо проще и быстрее скачать нужную библиотеку, быстро подключить ее вручную или с помощью Arduino IDE, а потом использовать во всех своих скетчах. В этой статье вы найдете короткую инструкцию по подключению и использованию библиотек.

Библиотеки в Arduino IDE

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

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

Как узнать список подключенных библиотек к Arduino IDE

Каждая установленная библиотека содержит один или несколько примеров для работы. Они используются для того, чтобы отобразить возможности подключенного к Ардуино устройства. Поэтому самым быстрым способом получить список всех установленных библиотек ардуино – воспользоваться списком примеров в Arduino IDE. Для этого в главном меню выберите Файл,а затем откройте подменю Примеры.

Другим способом является использование меню Скетч и подменю – Подключить библиотеку. Там вы тоже сможете увидеть список библиотек:

Список библиотек ардуино

Подключение оператором #include заголовочного h файла

Чтобы начать пользоваться библиотекой, нужно в начале программы включить заголовочный h файл директивой include. Например, подключение библиотеки LiquidCrystal.h будет выглядеть так: #include LiquidCrystal.h

Вы можете посмотреть полный пример, воспользовавшись самой библиотекой.

Как установить библиотеку. Пошаговая инструкция

Как только библиотека будет загружена на ПК, нужно начать ее установку. Установить библиотеку можно двумя способами – при помощи средств Arduino IDE и вручную.

Подключение при помощи Arduino IDE

Библиотека скачивается в виде zip-архива. Для ее включения этим способом архив не нужно распаковывать. Чтобы установить ее, нужно зайти в меню Скетч – Подключить библиотеку – Добавить .Zip библиотеку.

Когда откроется окно, нужно выбрать папку загрузки в разделе Этот компьютер. Если же после загрузки библиотеки она была сохранена в другое место, нужно указать его.

Затем нужно выбрать скачанный файл и нажать открыть.

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

Установка библиотеки вручную из zip-файла

Перед началом установки нужно выйти из Arduino IDE. Скачанный zip-файл с библиотекой нужно распаковать. В результате мы получим папку, в которой будут располагаться файлы библиотеки с расширением .cpp и .h и каталоги. Полученную папку нужно будет поместить в libraries.

В ОС Windows папку libraries можно найти по маршруту Мои документы – ардуино – libraries. В Linux это будет папка libraries со скетчами.

В конце нужно перезапустить Arduino IDE, загруженная библиотека будет доступна для включения через Скетч – Подключить библиотеку.

Создание своей библиотеки для Ардуино

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

// таким способом подключаются библиотеки в скетче #include SoftwareSerial.h #include DHT.h // команды, которые можно использовать при подключении библиотек SoftwareSerial mySerial(2, 3); DHT dht(7, DHT11);

Для работы нам потребуется лишь текстовый редактор — Блокнот. Первым делом необходимо в директории C:\Program Files\Arduino\libraries создать папку для файлов библиотеки, именно сюда устанавливаются библиотеки для Arduino. Название папки, как и имена создаваемых файлов можно придумать свое. Для примера мы будем использовать название BlinkLed, которое отражает назначение библиотеки.

Создание своей собственной библиотеки для Arduino UNO

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

digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000);

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

for (int x=0; x=5; x++)

Как написать библиотеку для Arduino IDE

Библиотека Arduino IDE должна иметь минимум два файла: заголовочный файл (с расширением .h) и файл с исходным кодом (с расширение .cpp). В первом файле содержится описание класса и переменные, второй файл содержит программный код методов. Файл keywords.txt не обязателен, но он позволяет выделять цветом в среде Arduino IDE новые типы и методы из созданной вами библиотеки.

  1. Зайдите в папку C:\Program Files\Arduino\libraries;
  2. Создайте новую папку c названием BlinkLed;
  3. Создайте текстовый документ keywords.txt;
  4. Создайте текстовый документ BlinkLed с расширением .h;
  5. Создайте текстовый документ BlinkLed с расширением .cpp.

Код для файла BlinkLed.h:

Заголовочный файл содержит класс, где объявляются функции, которые будут использоваться в скетче (в нашем случае это blink) и используемые переменные.

/* здесь размещают информацию о разработчике и инструкцию для пользователя */ // включение стандартных функций Ардуино #include Arduino.h void blink (int pin, int pause, int repeat);

Код для файла BlinkLed.cpp:

Исходный файл содержит основной код библиотеки. В нашем примере в программе используются три переменные, которые следует указывать в скетче: pin — номер порта, pause задержка в миллисекундах, repeat — количество раз выполнения цикла for.

/* здесь размещают информацию о разработчике и инструкцию для пользователя */ // включение стандартных функций Ардуино и заголовочного файла #include Arduino.h #include BlinkLed.h void blink (int pin, int pause, int repeat) < pinMode(pin, OUTPUT); for (int x=0; x=repeat; x++) < digitalWrite(pin, HIGH); delay(pause); digitalWrite(pin, LOW); delay(pause); >>

Код для файла keywords.txt:

В файле указывается подсветка синтаксиса в Arduino IDE. Функция KEYWORD1 окрашивает слово в оранжевый цвет, LITERAL1 окрашивает слово в синий цвет.

BlinkLed KEYWORD1 blink KEYWORD1

Встраивание библиотеки в Arduino IDE

Новая библиотека BlinkLed в списке примеров Arduino IDE

На этом написание библиотеки закончено. Также вы можете в папке BlinkLed создать папку examples, где можно разместить примеры программ для демонстрации работы вашей библиотеки. При открытии среды программирования Arduino IDE, созданную библиотеку можно найти через панель инструментов Файл Примеры / BlinkLed. В итоге мы можем вызвать функцию мигания светодиода с помощью одной команды.

Научимся создавать собственную библиотеку для программирования на Ардуино.

Предыдущий урок Список уроков Следующий урок

В прошлом уроке мы закончили создание класса Button – кнопка. Все проверили, отладили код, и собираемся использовать его в дальнейших проектах для Ардуино. Только как практически пользоваться созданным классом. Не очень удачно получилось.

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

Красивое и практичное решение – создать библиотеку для объекта типа Button.

Последовательность действий для создания библиотеки в программах для Ардуино.

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

Оформите свои функции как класс, прежде чем производить дальнейшие действия, а мы используем готовый класс Button из урока 8.

Библиотека должна иметь как минимум два файла:

  • заголовочный файл (расширение .h);
  • файл с исходным кодом (расширение .cpp).

В первом файле содержится описание самого класса, переменные, константы. Кода программы здесь нет. А второй файл содержит программный код методов.

Назовем новую библиотеку Button и создадим заголовочный файл Button.h.

Arduino IDE не поддерживает редактирование текстовых файлов. Редактировать файлы библиотеки можно в любой среде разработки для C++ или в текстовом редакторе, желательно с подсветкой синтаксиса. Я использую Notepad.

Заголовочный файл Button.h

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

информация о библиотеке

Все остальное содержимое h-файла мы должны заключить в конструкцию:

// проверка, что библиотека еще не подключена
#ifndef Button_h // если библиотека Button не подключена
#define Button_h // тогда подключаем ее

Эти директивы исключают повторное подключение библиотеки.

Внутри конструкции следует написать:

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

Осталось добавить описание нашего класса Button. Полностью файл Button.h выглядит так.

/*
Button.h &#8212; библиотека для цифровой обработки сигналов контактов кнопок
и сигналов других компонентов параллельным процессом
В параллельном процессе должен регулярно вызываться один из методов:
void scanState(); // метод проверки ожидание стабильного состояния сигнала
void filterAvarage(); // метод фильтрации сигнала по среднему значению
В результате формируются признаки:
для метода scanState():
&#8212; при нажатой кнопке flagPress= true
&#8212; при отжатой кнопке flagPress= false
&#8212; при нажатии на кнопку flagClick= true

для метода filterAvarage() :
&#8212; при сигнале низкого уровня flagPress= true
&#8212; при сигнале высокого уровня flagPress= false
&#8212; при изменении состояния с высокого на низкий flagClick= true

Объект типа Button при создании имеет параметры:
&#8212; номер вывода, к которому подключена кнопка или сигнал
&#8212; время обработки сигнала (умножается на период вызова метода scanState() или filterAvarage()

Button button1(12, 15); // создание объекта для кнопки, подключенной к 12 выводу
с временем фильтрации 30 мс (при цикле 2 мс)

Библиотека разработана Калининым Эдуардом
http://mypractic.ru/urok-8-cifrovaya-filtraciya-signalov-v-programmax-dlya-arduino.html
*/

// проверка, что библиотека еще не подключена
#ifndef Button_h // если библиотека Button не подключена
#define Button_h // тогда подключаем ее

// класс обработки сигналов
class Button <
public:
Button(byte pin, byte timeButton); // конструктор
boolean flagPress; // признак кнопка нажата (сигнал в низком уровне)
boolean flagClick; // признак клика кнопки (фронт)
void scanState(); // метод проверки ожидание стабильного состояния сигнала
void filterAvarage(); // метод фильтрации по среднему значению
void setPinTime(byte pin, byte timeButton); // установка номера вывода и времени фильтрации
private:
byte _buttonCount; // счетчик времени фильтрации
byte _timeButton; // время фильтрации
byte _pin; // номер вывода
>;

Исходный файл библиотеки Button.cpp.

В начале файла разместим ту же самую текстовую информацию, как и в Button.h. Неизвестно какой из файлов будет изучать пользователь.

Далее пишем директивы #include для включения стандартных функций Ардуино и заголовочного файла.

А затем коды методов нашего класса.

Полностью файл Button.cpp выглядит так:

/*
Button.h &#8212; библиотека для цифровой обработки сигналов контактов кнопок
и сигналов других компонентов параллельным процессом
В параллельном процессе должен регулярно вызываться один из методов:
void scanState(); // метод проверки ожидание стабильного состояния сигнала
void filterAvarage(); // метод фильтрации сигнала по среднему значению
В результате формируются признаки:
для метода scanState():
&#8212; при нажатой кнопке flagPress= true
&#8212; при отжатой кнопке flagPress= false
&#8212; при нажатии на кнопку flagClick= true

для метода filterAvarage() :
&#8212; при сигнале низкого уровня flagPress= true
&#8212; при сигнале высокого уровня flagPress= false
&#8212; при изменении состояния с высокого на низкий flagClick= true

Объект типа Button при создании имеет параметры:
&#8212; номер вывода, к которому подключена кнопка или сигнал
&#8212; время обработки сигнала (умножается на период вызова метода scanState() или filterAvarage()

Button button1(12, 15); // создание объекта для кнопки, подключенной к 12 выводу
с временем фильтрации 30 мс (при цикле 2 мс)

Библиотека разработана Калининым Эдуардом
http://mypractic.ru/urok-8-cifrovaya-filtraciya-signalov-v-programmax-dlya-arduino.html
*/

#include Arduino.h
#include Button.h
// метод фильтрации сигнала по среднему значению
// при сигнале низкого уровня flagPress= true
// при сигнале высокого уровня flagPress= false
// при изменении состояния с высокого на низкий flagClick= true
void Button::filterAvarage() <

if ( flagPress != digitalRead(_pin) ) <
// состояние кнопки осталось прежним
if ( _buttonCount != 0 ) _buttonCount&#8212;; // счетчик подтверждений &#8212; 1 с ограничением на 0
>
else <
// состояние кнопки изменилось
_buttonCount++; // +1 к счетчику подтверждений

if ( _buttonCount = _timeButton ) <
// состояние сигнала достигло порога _timeButton
flagPress= ! flagPress; // инверсия признака состояния
_buttonCount= 0; // сброс счетчика подтверждений

if ( flagPress == true ) flagClick= true; // признак клика кнопки
>
>
>
// метод проверки ожидание стабильного состояния сигнала
// при нажатой кнопке flagPress= true
// при отжатой кнопке flagPress= false
// при нажатии на кнопку flagClick= true
void Button::scanState() <

if ( flagPress != digitalRead(_pin) ) <
// признак flagPress = текущему состоянию кнопки
// (инверсия т.к. активное состояние кнопки LOW)
// т.е. состояние кнопки осталось прежним
_buttonCount= 0; // сброс счетчика подтверждений состояния кнопки
>
else <
// признак flagPress не = текущему состоянию кнопки
// состояние кнопки изменилось
_buttonCount++; // +1 к счетчику состояния кнопки

if ( _buttonCount = _timeButton ) <
// состояние кнопки не мянялось в течение заданного времени
// состояние кнопки стало устойчивым
flagPress= ! flagPress; // инверсия признака состояния
_buttonCount= 0; // сброс счетчика подтверждений состояния кнопки

if ( flagPress == true ) flagClick= true; // признак фронта кнопки на нажатие
>
>
>
// метод установки номера вывода и времени подтверждения
void Button::setPinTime(byte pin, byte timeButton) <

_pin= pin;
_timeButton= timeButton;
pinMode(_pin, INPUT_PULLUP); // определяем вывод как вход
>

// описание конструктора класса Button
Button::Button(byte pin, byte timeButton) <

_pin= pin;
_timeButton= timeButton;
pinMode(_pin, INPUT_PULLUP); // определяем вывод как вход
>

Для того чтобы Arduino IDE выделяла цветом новые типы и методы из нашей библиотеки можно создать файл keywords.txt.

scanState KEYWORD2
filterAvarage KEYWORD2
setPinTime KEYWORD2

Каждая строка содержит ключевое слово, табуляцию (не пробелы) и тип ключевого слова. KEYWORD1 определяет классы, KEYWORD2 – методы.

Загрузить zip-архив с тремя файлами библиотеки Button можно по этой ссылке:

Зарегистрируйтесь и оплатите. Всего 25 руб. в месяц за доступ ко всем ресурсам сайта!

Теперь нужно правильно разместить файлы библиотеки.

  • Запустил Arduino IDE.
  • Файл — Настройки — Размещение папки скетчей задал D:\Arduino Projects. Это я указал папку моих проектов Ардуино (D:\Arduino Projects).
  • В этой папке я создал папку libraries (D:\Arduino Projects\libraries).
  • В папке libraries создал папку новой библиотеки Button (D:\Arduino Projects\libraries\Button).
  • И уже в эту папку скопировал файлы Button.h, Button.cpp и keywords.txt.

Для проверки надо закрыть и заново запустить Arduino IDE. Открыть Скетч — Подключть библиотеку и посмотреть, что в списке библиотек присутствует новая библиотека Button.

Как пользоваться библиотекой.

Очень просто. В начале программы включить заголовочный файл директивой

Теперь можно пользоваться всеми открытыми методами и переменными класса Button абсолютно так же, как в предыдущем уроке.

Перепишем программу управления светодиодами из предыдущего урока. Естественно с использованием библиотеки Button.

/* Программа sketch_9_1 урока 9
* К плате Ардуино подключены 2 кнопки и светодиод
* Каждое нажатие кнопки 1 инвертирует состояние светодиода на плате Ардуино
* Каждое нажатие кнопки 2 инвертирует состояние светодиода на макетной плате */

#define LED_1_PIN 13 // светодиод 1 подключен к выводу 13
#define BUTTON_1_PIN 12 // кнопка 1 подключена к выводу 12
#define BUTTON_2_PIN 11 // кнопка 2 подключена к выводу 11
#define LED_2_PIN 10 // светодиод 2 подключен к выводу 10

boolean ledState1; // переменная светодиода 1
boolean ledState2; // переменная светодиода 2

Button button1(BUTTON_1_PIN, 15); // создание объекта для кнопки 1
Button button2(BUTTON_2_PIN, 15); // создание объекта для кнопки 2
void setup() <
pinMode(LED_1_PIN, OUTPUT); // определяем выводы светодиодов как выходы
pinMode(LED_2_PIN, OUTPUT);
>

// цикл с периодом 2 мс
void loop() <

button1.filterAvarage(); // вызов метода фильтрации по среднему для кнопки 1
button2.scanState(); // вызов метода ожидания стабильного состояния для кнопки 2

// блок управления светодиодом 1
if ( button1.flagClick == true ) <
// был клик кнопки
button1.flagClick= false; // сброс признака
ledState1= ! ledState1; // инверсия состояние светодиода
digitalWrite(LED_1_PIN, ledState1); // вывод состояния светодиода
>

// блок управления светодиодом 2
if ( button2.flagClick == true ) <
// был клик кнопки
button2.flagClick= false; // сброс признака
ledState2= ! ledState2; // инверсия состояние светодиода
digitalWrite(LED_2_PIN, ledState2); // вывод состояния светодиода
>

delay(2); // задержка 2 мс
>

Ничего лишнего. Только объекты, с которыми мы работаем.

Хороший стиль добавить в файлы библиотеки примеры. Но у нас в последующих уроках примеров будет достаточно.

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

Библиотеки для экранов, индикаторов и дисплеев

Библиотека I2C

Библиотека, предназначенная для работы периферийного устройства по протоколу I2C.

void I2C_init (void) – создание объекта, настройка на правильную частоту для шины.

uint8_t I2C_start () – установка соединения с новым устройством.

uint8_t I2C_write() – запись данных на текущее устройство.

uint8_t I2C_read_ack() – считывание байта с устройства, запрос следующего байта.

Библиотека LiquidCrystal

Стандартная библиотека, установленная в Arduino IDE. Предназначена для управления жидкокристаллическими дисплеями LCD.

#include LiquidCrystal.h. Также, чтобы не ошибиться при написании, можно подключить через меню Sketch – Import Library – LiquidCrystal.

Конструктор класса – LiquidCristal(…). Аргументами являются rs, rw, en, do…d7. Первые 3 соответствую выводам сигналов RS, RW и Enable. Выводы d соответствуют номерам шин данных, к которым подключен дисплей.

void begin(cols, rows) – метод, который инициализирует интерфейс дисплея. Аргументами являются количество знаков в строке (cols) и число строк (rows). Этот метод должен задаваться первым.

void createChar(num, data) – метод, необходимый для создания пользовательских символов.

Библиотека UTFT

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

UTFT(); – создание экземпляра UTFT.

textRus(char*st, int x, int y); – метод, позволяющий выводить строку из указателя. Например, char *dht = “Температура,С”;

textRus(string st, int x, int y); – вывод строки с указанием в параметре. Например, g.textRus(“Температура, С”, 0, 20);

Библиотека LedControl

Позволяет управлять семисегментными дисплеями, объединять массив из светодиодов в одну матрицу.

LedControl lc1= LedControl( );

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

writeArduinoOn7Segment() – отображение на дисплее всех чисел от 0 до 15. Использует функции setChar() для символов a и d и setRow() для создания макета пропущенных символов.

LedControl.shutdown() – отключение изображения.

setIntensity() – контроль яркости.

Библиотеки для работы с датой и временем ардуино

Библиотека RTClib

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

RTC_DS1307 RTC; – выбор датчика (в данном случае DS1307).

rtc.adjust(DateTime( Date, Time)); – настройка времени и календаря.

dayOfTheWeek () – вывод дня недели. Аргумент от 0 до 6, 0 – воскресенье.

Библиотека Timelib

Позволяет Ардуино получать информацию о дате и времени в данный момент.

Time(); – создание экземпляра.

setTime (t); – установка времени. Аргумент t – час, минута, секунда, день, месяц и год.

timeStatus(); – показывает, установлено ли время.

adjustTime(adjustment); – настройка времени.

Библиотека Ds1307

Библиотека для удобного взаимодействия часов DS1307 с Ардуино c использованием библиотеки Wire.

class DS1307RTC – создание объекта DS1307.

SetTime() – установка времени.

get() – считывает RTC, возвращает полученную дату в формате POSIX.

Set(time_t t) – запись даты в RTC

Библиотека DS 3231

Предназначена для управления датой и временем в модуле ds3231.

DS3231 Clock(SDA, SCL); – создание объекта DS3231, подключение к линии тактирования и линии данных.

getTime(); – считывание даты и времени с часов.

setDate(date, mon, year); – установка даты.

Системные библиотеки ардуино

Библиотека EEPROM

Стандартная библиотека. Предназначена для работы с энергонезависимой памятью (запись данных, их чтение).

EEPROM.read(); – создание объекта, считывание байта по адресу из энергонезависимой памяти.

EEPROM.write(address, value)– запись байта в энергонезависимую память.

EEPROM.put() – запись строк чисел с плавающей запятой.

EEPROM.get() – чтение строк и чисел с плавающей запятой.

Библиотека SoftwareSerial

Библиотека, которая позволяет реализовывать последовательные интерфейсы с любых цифровых пинов. Также позволяет создавать несколько последовательных портов, которые работают на скорости до 115200 бод.

SoftwareSerial mySerial(RX, TX) – создание объекта, аргументы – выводы, к которым подключены RX и TX.

Serial.begin( ); – устанавливает скорость порта для связи ардуино и компьютера.

mySerial.overflow() – проверка входного буфера на переполнение.

Библиотека Math

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

Math(); – создание экземпляра Math.

Serial.print(“cos num = “); – возвращает косинус числа.

Serial.println (fmod (double__x, double__y)); – возвращает числа по модулю.

Библиотека Scheduler

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

Scheduler; – создание экземпляра.

Scheduler.startLoop() – позволяет добавить функцию, которая будет выполняться вместе с loop().

yield() – позволяет передать управление другим задачам.

Библиотека Servo

Стандартная библиотека. Необходима для управления серводвигателями и часто используется в робототехнических проектах с манипуляторами.

Servo myservo; – создание объекта для серводвигателя..

myservo.attach(); – номер выхода, к которому подключен серводвигатель.

myservo.write(180, 30, true); – движение на 180 градусов, скорость 30, ожидание окончания движения.

Библиотека Stepper

Небходима для управления шаговым униполярным и биполярным двигателем.

const int stepsPerRevolution = ; – количество шагов, за которое двигатель проходит полный поворот.

Stepper myStepper = Stepper(steps, pin1, pin2) – создает экземпляр класса с указанным количеством шагов и выводами, к которым подключается двигатель.

Библиотеки датчиков ардуино

Библиотека DHT

Библиотека, которая позволяет считать данные с температурных датчиков DHT-11 и DHT-22.

DHT dht(DHTPIN, DHT11); – инициализирует датчик (в данном случае DHT11).

dht.begin(); – запуск датчика.

float t = dht.readTemperature(); – считывание текущего значения температуры в градусах Цельсия.

Библиотека DallasTemperature

Предназначается для работы с датчиками Dallas. Работает совместно с библиотекой OneWire.

DallasTemperature dallasSensors(oneWire); – передача объекта oneWire для работы с датчиком.

requestTemperatures() – команда считать температуру с датчика и

положить ее в регистр.

printTemperature(sensorAddress); – запрос получить измеренное значение температуры.

Библиотека Ultrasonic

Обеспечивает работу Ардуино с ультразвуковым датчиком измерения расстояния HC-SR04.

Ultrasonic ultrasonic (tig , echo) – объявление объекта, аргументы – контакт Trig и контакт Echo.

dist = ultrasonic.distanceRead(); – определение расстояния до объекта. Агрумент – сантиметры(СМ) или дюймы (INC).

Timing() – считывание длительности импульса на выходе Echo, перевод в необходимую систему счисления.

Библиотека ADXL345

Предназначается для работы с акселерометром ADXL345.

#include Adafruit_ ADXL345.h

ADXL345_ADDRESS – создание объекта, указание его адреса.

ADXL345_REG_DEVID – идентификация устройства.

ADXL345_REG_OFSX – смещение по оси Х.

ADXL345_REG_BW_RATE – управление скоростью передачи данных.

Библиотека BME280

Предназначается для работы с датчиком температуры, влажности и давления BME280.

BME280_ADDRESS – создание объекта BME280, указание его адреса.

begin(uint8_t addr = BME280_ADDRESS); – начало работы датчика.

getTemperature – получение измеренной температуры.

getPressure – получение измеренного давления.

Библиотека BMP280

Требуется для работы с датчиком атмосферного давления BMP280.

BMP280_CHIPID – создание экземпляра, указание его адреса.

getTemperature(float *temp); – получение измеренной температуры.

getPressure(float *pressure); – получение измеренного значения давления.

Библиотека BMP085

Требуется для работы с датчиком давления BMP085.

Adafruit_BMP085 bmp; – создание экземпляра BMP085.

dps.init(MODE_ULTRA_HIGHRES, 25000, true); – измерение давления, аргумент 25000 – высота над уровнем моря (в данном случае 250 м. над уровнем моря).

dps.getPressure(Pressure); – определение давления.

Библиотека FingerPrint

Требуется для работы со сканером отпечатков пальцев.

Adafruit_Fingerprint finger = Adafruit_Fingerprint(mySerial); – объявление объекта Finger. Параметр – ссылка на объектр для работы с UART, кокторому подключен модуль.

finger.begin(); – инициализация модуля отпечатков пальцев.

Func_sensor_communication(); – вызов модуля отпечатков пальцев.

Библиотеки коммуникации

Библиотека Wire

Требуется для работы с двухпроводным интерфейсом I2C.

Wire.begin() – инициализация библиотеки, подключение к шине I2C.

Wire.requestFrom() – запрос мастером байтов от ведомого устройства.

Wire.beginTransmission() – начало передачи на ведомое устройство.

Библиотека Irremote

Требуется для работы ардуино с ИК приемником.

IRrecv irrecv(RECV_PIN); – пин, к которому подключен ИК приемник.

SetPinAndButton(int ir1,int ir2,int pin) – позволяет настроить определенный выход на срабатывание при заданных значениях ir1, ir2.

Библиотека GSM

Требуется для соединения через GSM-плату с сетью GSM/GRPS. С ее помощью можно реализовать операции, свершаемые GSM-телефоном, работать с голосовыми вызовами и подключаться к сети интернет через GRPS.

GSM GSMAccess – инициализирует экземпляр класса.

gprs.powerOn() – включение питания.

GSMVoiceCall – настройка голосовых вызовов.

GPRS – настройка подключения к интернету.

GSM – управление радио-модемом.

Библиотека RFID

Требуется для соединения Ардуино и RFID-модуля.

RFID rfid(SS_PIN, RST_PIN); – создание экземпляра rfid, аргументы – пины, к которым подключен модуль.

rfid.init(); – инициализация модуля RFID.

Библиотека MFRC 522

Требуется для соединения Ардуино и MFRC522 -модуля.

MFRC522 mfrc522(SS_PIN, RST_PIN); – создание экземпляра MFRC522, аргументами указаны выходы, к которым подключен модуль.

mfrc522.PCD_Init(); – инициализация MFRC522.

Библиотека Ethershield

Новая версия https://github.com/jcw/ethercard

Требуется для подключения Ардуино к локальной сети или сети интернет. Библиотека больше не поддерживается, более новая версия Ethercard. Также существует стандартная библиотека Ethernet.

EtherShield es = EtherShield (); – подготовка веб-страницы

ether.begin(sizeof Ethernet::buffer, mymac, ); – начало работы, аргументы – адрес Mac и номер порта, к которому подключен выход CS.

Библиотека Nrf24l01

Требуется для работы с RF24-радиомодулем.

RF24 – Конструктор создает новый экземпляр драйвера. Перед тем, как использовать, нужно создать экземпляр и указать пины, к которым подключен чип (_cepin : контакт модуля Enable, cspin : контакт модуля Select).

Begin – начало работы чипа.

setChannel – каналы для связи RF.

setPayloadSize – установка фиксированного размера передачи.

getPayloadSize – получение фиксированного размера.

Библиотека TinyGPS

Требуется для чтения сообщений GPGGA и GPRMC. Помогает считывать данные о положении, дате, времени, высоте и других параметрах.

TinyGPS gps; – создание экземпляра TinyGPS.

encode () – подача на объект последовательных данных по одному символу.

gps.stats( ) – метод статистики. Показывает, получены корректные данные или нет.

Среди всего разнообразия библиотек можно выделить 3 основных группы:

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

Самым простым способом работы с библиотеками в ардуино является использование встроенных возможностей среды разработки Arduino IDE. Об этом мы поговорим в отдельной статье.

  • EEPROM
  • SD
  • SPI
  • SoftwareSerial
  • Wire
  • Вспомогательные классы
  • Serial
  • Stream
  • Mouse и Keyboard

Различные библиотеки необходимые для работы. Как и на многих других платформах, возможности среды программирования Arduino могут быть существенно расширены за счет использования библиотек.

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

Для подключения библиотеки к программе, выберите ее из меню Sketch Import Library.

Стандартные библиотеки

  • EEPROM &#8212; чтение и запись в постоянную память.
  • Ethernet &#8212; для подсоединения к Интернету через плату расширения Arduino Ethernet.
  • Firmata &#8212; для взаимодействия с приложениями на компьютере по стандартному последовательному протоколу.
  • GSM &#8212; для соединения с сетью GSM/GRPS через GSM-плату расширения.
  • LiquidCrystal &#8212; для работы с жидкокристаллическими дисплеями (LCD).
  • SD &#8212; для чтения и записи данных на SD-карту памяти.
  • Servo &#8212; для управления серводвигателями.
  • SPI &#8212; для взаимодействия с периферийными устройствами по последовательному интерфейсу SPI.
  • SoftwareSerial &#8212; для реализации последовательных интерфейсов на любых цифровых выводах. Начиная с версии Ардуино 1.0, в качестве библиотеки SoftwareSerial используется библиотека NewSoftSerial (автор Mikal Hart).
  • Stepper &#8212; для управления шаговыми двигателями.
  • TFT &#8212; для вывода текста, изображений и графических примитивов на TFT-экране Arduino.
  • WiFi &#8212; для соединения с Интернетом через плату расширения Arduino WiFi.
  • Wire &#8212; библиотека для работы с двухпроводным интерфейсом (TWI/I2C), позволяющим принимать или отправлять данные между сетью устройств или датчиков.

Библиотеки Matrix и Sprite больше не входят в состав стандартного распространяемого ПО.

Специализированные библиотеки Arduino Due

  • Audio &#8212; проигрывание аудио-файлов с SD-карты памяти.
  • Scheduler &#8212; реализация многозадачности.
  • USBHost &#8212; взаимодействие с USB-гаджетами, такими как мышь или клавиатура.

Специализированные библиотеки Esplora

  • Esplora &#8212; данная библиотека позволяет легко взаимодействовать с различными датчиками и приводами на плате Arduino Esplora.

Специализированные библиотеки Arduino Robot

  • Robot &#8212; библиотека обеспечивает доступ к функциям Arduino Robot.

Библиотеки для работы с USB (для Leonardo, Micro, Due и Esplora)

  • Keyboard &#8212; отправка сигналов нажатия клавиш подсоединенному компьютеру.
  • Mouse &#8212; управление указателем мыши на подсоединенном компьютере.

Вспомогательные библиотеки

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


Источник: t-31.ru