Как создать библиотеку в Arduino IDE

Как написать библиотеку для Ардуино и встроить ее в среду Arduino IDE? Продемонстрируем на примере создание библиотеки «BlinkLed» для мигания светодиода.


Arduino IDE. Как создать библиотеку в Ардуино

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

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

В среде 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++) {
     digitalWrite(13, HIGH);
     delay(1000);
     digitalWrite(13, LOW);
     delay(1000); 
}

Как написать библиотеку для 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 в списке примеров Arduino IDE

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

// подключаем библиотеку BlinkLed.h
#include <BlinkLed.h>

void setup() {
}

void loop() {
  /*
    используем новую команду blink и указываем в скобках через запятую:
    номер порта, время задержки, количество раз включения светодиода
  */
  blink (13, 500, 10);
}

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

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5,00 out of 5)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *