Библиотека iarduino_Metro позволяет работать со всеми модулями линейки "Metro": кнопка, RGB светодиод, зуммер, датчик температуры и влажности, датчик освещенности (люксметр), расширитель выводов, LED Матрица 8x8.
Библиотека сама определяет наличие и тип модулей на шине I2C, присваивает им адреса и создаёт массив объектов для работы с найденными модулями. Стоит отметить что пользователю даже не обязательно знать адреса присвоенные модулям, так как для обращения к любому модулю достаточно знать его номер по порядку от платы управления Metro Leonardo или Metro ESP.
Данная библиотека может использовать как аппаратную, так и программную реализацию шины I2C.
О том как выбрать тип шины I2C рассказано в статье Wiki - расширенные возможности библиотек iarduino для шины I2C.
#include <Wire.h> // Подключаем библиотеку для работы с аппаратной шиной I2C.
#include <iarduino_Metro.h> // Подключаем библиотеку для работы с модулями.
Функция iarduino_Metro_Start( &Wire [, ВЫВОД ] ); // Поиск всех модулей на указанной шине, назначение им адресов и создание массива объектов Metro.
#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 // Хранит использованный для работы с модулем объем памяти ОЗУ в байтах.
Подробное описание и примеры работы с кнопкой, находится в разделе Wiki - Кнопка, I2C (Metro-модуль).
Функция Metro[ индекс ].read( [ПАРАМЕТР] ); // Чтение событий и состояний кнопки.
Функция Metro[ индекс ].set( ВРЕМЯ1 , ВРЕМЯ2 , ВРЕМЯ3 ); // Указание времени удержания кнопки.
Подробное описание и примеры работы с RGB светодиодом, находится в разделе Wiki - RGB светодиод, i2c (Metro-модуль).
Функция Metro[ индекс ].off(); // Выключение светодиода.
Функция Metro[ индекс ].on( [ ЦВЕТ [ , ДЛИТЕЛЬНОСТЬ [ , ПАУЗА [ , КОЛИЧЕСТВО ]]]] ); // Включение светодиода.
Функция Metro[ индекс ].on( [ RGB(красный,зелёный,синий) [ , ДЛИТЕЛЬНОСТЬ [ , ПАУЗА [ , КОЛ-ВО ]]]] ); // Включение светодиода.
Функция Metro[ индекс ].on( [ RGB( ФУНКЦИЯ ) [ , ДЛИТЕЛЬНОСТЬ [ , ПАУЗА ]]] ); // Включение функций перелива светодиода.
Функция Metro[ индекс ].frequency( ЧАСТОТА ); // установка частоты ШИМ светодиода.
Подробное описание и примеры работы с зуммером, находится в разделе Wiki - Зуммер, i2c (Metro-модуль).
Функция Metro[ индекс ].off(); // Выключение звука.
Функция Metro[ индекс ].on( ЧАСТОТА , ДЛИТЕЛЬНОСТЬ , ПАУЗА , КОЛИЧЕСТВО ); // Воспроизведение звука.
Подробное описание и примеры работы с датчиком, находится в разделе Wiki - Датчик DHT, i2c (Metro-модуль).
Функция Metro[ индекс ].read( [ПАРАМЕТР] ); // Чтение температуры или влажности.
Функция Metro[ индекс ].set( ТЕМПЕРАТУРА , ВЛАЖНОСТЬ ); // Указание диапазона определяющего факт изменений показаний.
Подробное описание и примеры работы с датчиком, находится в разделе Wiki - Датчик освещенности, люксметр, i2c (Metro-модуль).
Функция Metro[ индекс ].read( [ПАРАМЕТР] ); // Чтение освещённости, близости или пульсаций.
Функция Metro[ индекс ].set( ОСВЕЩЁННОСТЬ ); // Указание диапазона определяющего факт изменений показаний.
Подробное описание и примеры работы с расширителем выводов, находится в разделе Wiki - Расширитель выводов, i2c - flash (Metro-модуль).
Функция Metro[ индекс ].read( ВЫВОД [, ТИП ] ); // Чтение вывода с указанием типа уровня (логический/аналоговый).
Функция Metro[ индекс ].set( ВЫВОД , УРОВЕНЬ [, ТИП] ); // Установка уровня (с указанием его типа), или поворот сервопривода в заданный угол.
Функция Metro[ индекс ].frequency( ЧАСТОТА ); // Указание частоты сигнала ШИМ.
Подробное описание и примеры работы с LED матрицей 8x8, находится в разделе Wiki - LED Матрица 8x8, i2c (Metro-модуль).
Функция Metro[ индекс ].set( 'СИМВОЛ' ); // Вывод символа на экран матрицы.
Функция Metro[ индекс ].set( "ТЕКСТ" , СКОРОСТЬ [ , ПАУЗА ] ); // Вывод текста бегущей строки на экран матрицы.
Функция Metro[ индекс ].off( [АНИМАЦИЯ] ); // Выключение дисплея.
Функция Metro[ индекс ].on( [ МАССИВ ] , [ АНИМАЦИЯ ] ); // Включение дисплея и вывод изображения.
Функция Metro[ индекс ].on( ЯРКОСТЬ ); // Установка яркости свечения дисплея.
Функция Metro[ индекс ].on( ПОВОРОТ ); // Поворот дисплея.
Функция Metro[ индекс ].frequency( ЧАСТОТА ); // Указание частоты обновления кадров в секунду.