Найти в Дзене
ArcadePub

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

Привет! В прошлый раз мы начали знакомство с объектно-ориентированным программированием для Ардуино. В этой теме можно написать много статей и уроков. Мы будем постепенно раскрывать эту область программирования. А сегодня посмотрим, что такое библиотека для программы на Ардуино и оформим класс led из предыдущего урока для использования кода в любом проекте. Предыдущий урок, в котором мы написали первый класс и начали разговор про объектно-ориентированное программирование моно найти по ссылке. Сегодня создадим простейшую библиотеку для управления светодиодом на основе класса из предыдущего урока. Библиотека В целом, наша библиотека уже создана. Нам нужно только оформить все файлы правильно и добавить несколько необходимых строк кода. Которые не будут менять смысла уже написанных команд в нашем классе. В первую очередь, нам нужно отделить описание библиотеки от реализации методов класса на два разных файла. Главный файл библиотеки будет иметь расширение .h Его мы будем подключать
Оглавление
Ардуино библиотека
Ардуино библиотека

Привет! В прошлый раз мы начали знакомство с объектно-ориентированным программированием для Ардуино. В этой теме можно написать много статей и уроков. Мы будем постепенно раскрывать эту область программирования. А сегодня посмотрим, что такое библиотека для программы на Ардуино и оформим класс led из предыдущего урока для использования кода в любом проекте.

Предыдущий урок, в котором мы написали первый класс и начали разговор про объектно-ориентированное программирование моно найти по ссылке.

Сегодня создадим простейшую библиотеку для управления светодиодом на основе класса из предыдущего урока.

Библиотека

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

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

Главный файл библиотеки будет иметь расширение .h

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

Возьмем описание нашего класса led и сохраним его в отдельный файл led.h

class Led {
public:
Led(int pin);
void on();
void off();
private:
int _pin;
protected:
};

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

Дополним описание класса необходимыми директивами для создания библиотеки и комментариями.

/*
Led.h - Library for turn LED on and off.
Created by Valentin, 18.10.2021.
Released into the public domain.
*/
ifndef Led_h
define Led_h
include "Arduino.h"
class Led {
public:
Led(int pin);
void on();
void off();
private:
int _pin;
protected:
};
endif

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

Конструкция ifndef предотвратит загрузку библиотеки несколько раз, если разработчик попробует это сделать.

ifndef Morse_h
define Morse_h
// the include statment and code go here...
endif

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

include "Arduino.h"

Реализация методов

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

/*
Led.cpp - Library for turn LED on and off.
Created by Valentin, 18.10.2021.
Released into the public domain.
*/
include "Arduino.h"
include "led.h"

Led::Led(int pin){
pinMode(pin, OUTPUT);
_pin = pin;
}
void Led::on(){
digitalWrite(_pin, HIGH);
}
void Led::off(){
digitalWrite(_pin, LOW);
}

В файл led.cpp вставим код реализации методов класса и подключим файлы заголовка и стандартных функций Ардуино.

Вот и все, что требуется для написания своей простой библиотеки.

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

include "led.h"
Led led(13);
void setup() {
}
void loop() {
led.on();
delay(1000);
led.off();
delay(1000);
}

Заключение

В этом уроке мы написали простейшую библиотеку на основе нашего класса led. Теперь мы сможем организовать код для проектов с использованием концепции объектно-ориентированного программирования. И уже в следующем уроке попробуем написать новую библиотеку для генератора кода морзе на Ардуино.

Где купить