Библиотека GitHub

iarduino_Metro

Библиотека iarduino_Metro для Arduino: автоматическое обнаружение и управление модулями Metro (кнопка, RGB светодиод, зуммер, датчик температуры и влажности, люксметр, расширитель выводов, LED.

tremaru / iarduino_Metro Обновлено 18:01 04.06.2024 Ветка master

Описание

Библиотека iarduino_Metro позволяет работать со всеми модулями линейки "Metro": кнопка, RGB светодиод, зуммер, датчик температуры и влажности, датчик освещенности (люксметр), расширитель выводовLED Матрица 8x8.

Библиотека сама определяет наличие и тип модулей на шине I2C, присваивает им адреса и создаёт массив объектов для работы с найденными модулями. Стоит отметить что пользователю даже не обязательно знать адреса присвоенные модулям, так как для обращения к любому модулю достаточно знать его номер по порядку от платы управления Metro Leonardo или Metro ESP.

Данная библиотека может использовать как аппаратную, так и программную реализацию шины I2C.

О том как выбрать тип шины I2C рассказано в статье Wiki - расширенные возможности библиотек iarduino для шины I2C.

Подключение библиотеки для аппаратной шины I2C:

#include <Wire.h> // Подключаем библиотеку для работы с аппаратной шиной I2C.

#include <iarduino_Metro.h> // Подключаем библиотеку для работы с модулями. 

Функция iarduino_Metro_Start( &Wire [, ВЫВОД ] ); // Поиск всех модулей на указанной шине, назначение им адресов и создание массива объектов Metro.

Подключение библиотеки для программной шины I2C:

#include <iarduino_I2C_Software.h> // Подключаем библиотеку для работы с шиной.

#include <iarduino_Metro.h> // Подключаем библиотеку для работы с модулями.

SoftTwoWire sWire( SDA, SCL ); // Создаём объект работы с шиной указав её выводы.

Функция iarduino_Metro_Start( &sWire [, ВЫВОД ] ); // Поиск всех модулей на указанной шине, назначение им адресов и создание массива объектов Metro.

Назначение переменных:

Переменная Metro[ индекс ].address // Хранит текущий адрес модуля на шине I2C.

Переменная Metro[ индекс ].model // Хранит идентификатор типа модуля.

Переменная Metro[ индекс ].version // Хранит версию прошивки модуля.

Переменная Metro[ индекс ].size // Хранит использованный для работы с модулем объем памяти ОЗУ в байтах.

Назначение функций для модуля Metro - Кнопка:

Подробное описание и примеры работы с кнопкой, находится в разделе Wiki - Кнопка, I2C (Metro-модуль).

Функция Metro[ индекс ].read( [ПАРАМЕТР] ); // Чтение событий и состояний кнопки.

Функция Metro[ индекс ].set( ВРЕМЯ1 , ВРЕМЯ2 , ВРЕМЯ3 ); // Указание времени удержания кнопки.

Назначение функций для модуля Metro - RGB светодиод:

Подробное описание и примеры работы с RGB светодиодом, находится в разделе Wiki - RGB светодиод, i2c (Metro-модуль).

Функция Metro[ индекс ].off(); // Выключение светодиода.

Функция Metro[ индекс ].on( [ ЦВЕТ [ , ДЛИТЕЛЬНОСТЬ [ , ПАУЗА [ , КОЛИЧЕСТВО ]]]] ); // Включение светодиода.

Функция Metro[ индекс ].on( [ RGB(красный,зелёный,синий) [ , ДЛИТЕЛЬНОСТЬ [ , ПАУЗА [ , КОЛ-ВО ]]]] ); // Включение светодиода.

Функция Metro[ индекс ].on( [ RGB( ФУНКЦИЯ ) [ , ДЛИТЕЛЬНОСТЬ [ , ПАУЗА ]]] ); // Включение функций перелива светодиода.

Функция Metro[ индекс ].frequency( ЧАСТОТА ); // установка частоты ШИМ светодиода.

Назначение функций для модуля Metro - Зуммер:

Подробное описание и примеры работы с зуммером, находится в разделе Wiki - Зуммер, i2c (Metro-модуль).

Функция Metro[ индекс ].off(); // Выключение звука.

Функция Metro[ индекс ].on( ЧАСТОТА , ДЛИТЕЛЬНОСТЬ , ПАУЗА , КОЛИЧЕСТВО ); // Воспроизведение звука.

Назначение функций для модуля Metro - Датчик температуры и влажности:

Подробное описание и примеры работы с датчиком, находится в разделе Wiki - Датчик DHT, i2c (Metro-модуль).

Функция Metro[ индекс ].read( [ПАРАМЕТР] ); // Чтение температуры или влажности.

Функция Metro[ индекс ].set( ТЕМПЕРАТУРА , ВЛАЖНОСТЬ ); // Указание диапазона определяющего факт изменений показаний.

Назначение функций для модуля Metro - Датчик освещенности (люксметр):

Подробное описание и примеры работы с датчиком, находится в разделе Wiki - Датчик освещенности, люксметр, i2c (Metro-модуль).

Функция Metro[ индекс ].read( [ПАРАМЕТР] ); // Чтение освещённости, близости или пульсаций.

Функция Metro[ индекс ].set( ОСВЕЩЁННОСТЬ ); // Указание диапазона определяющего факт изменений показаний.

Назначение функций для модуля Metro - Расширитель выводов:

Подробное описание и примеры работы с расширителем выводов, находится в разделе Wiki - Расширитель выводов, i2c - flash (Metro-модуль).

Функция Metro[ индекс ].read( ВЫВОД [, ТИП ] ); // Чтение вывода с указанием типа уровня (логический/аналоговый).

Функция Metro[ индекс ].set( ВЫВОД , УРОВЕНЬ [, ТИП] ); // Установка уровня (с указанием его типа), или поворот сервопривода в заданный угол.

Функция Metro[ индекс ].frequency( ЧАСТОТА ); // Указание частоты сигнала ШИМ.

Назначение функций для модуля Metro - LED Матрица 8x8:

Подробное описание и примеры работы с LED матрицей 8x8, находится в разделе Wiki - LED Матрица 8x8, i2c (Metro-модуль).

Функция Metro[ индекс ].set( 'СИМВОЛ' ); // Вывод символа на экран матрицы.

Функция Metro[ индекс ].set( "ТЕКСТ" , СКОРОСТЬ [ , ПАУЗА ] ); // Вывод текста бегущей строки на экран матрицы.

Функция Metro[ индекс ].off( [АНИМАЦИЯ] ); // Выключение дисплея.

Функция Metro[ индекс ].on( [ МАССИВ ] , [ АНИМАЦИЯ ] ); // Включение дисплея и вывод изображения.

Функция Metro[ индекс ].on( ЯРКОСТЬ ); // Установка яркости свечения дисплея.

Функция Metro[ индекс ].on( ПОВОРОТ ); // Поворот дисплея.

Функция Metro[ индекс ].frequency( ЧАСТОТА ); // Указание частоты обновления кадров в секунду.