Общие сведения:
Trema модуль - Четырехразрядный индикатор LED, FLASH-I2C - является устройством вывода информации получаемой по шине I2С.
Модуль относится к серии «Flash», а значит к одной шине I2C можно подключить более 100 модулей, так как их адрес на шине I2C (по умолчанию 0x09), хранящийся в энергонезависимой памяти, можно менять программно.
Модуль является устройством вывода информации, его можно использовать для отображения чисел (в том числе и отрицательных), времени, температуры и некоторых символов.
Видео:
Спецификация:
- Напряжение питания: 3,3 В или 5 В, поддерживаются оба напряжения.
- Ток потребляемый модулем: до 10 мА.
- Интерфейс: I2C.
- Скорость шины I2C: 100 кбит/с.
- Адрес на шине I2C: устанавливается программно (по умолчанию 0x09).
- Уровень логической 1 на линиях шины I2C: Vcc.
- Количество разрядов индикатора: 4.
- Частота обновления выводимых данных: от 1 до 255 Гц.
- Рабочая температура: от -20 до +70 °С.
- Габариты: 30 х 30 мм.
- Вес: 15 г.
Подключение:
Перед подключением модуля ознакомьтесь с разделом "Смена адреса модуля на шине I2C" в данной статье.
На плате модуля расположен разъем из 4 выводов для подключения к шине I2C.
- SCL - вход/выход линии тактирования шины I2C.
- SDA - вход/выход линии данных шины I2C.
- Vcc - вход питания 3,3 или 5 В.
- GND - общий вывод питания.
Модуль удобно подключать 3 способами, в зависимости от ситуации:
Способ - 1: Используя проводной шлейф и Piranha UNO
Используя провода «Папа — Мама», подключаем напрямую к контроллеру Piranha UNO.
Способ - 2: Используя Trema Set Shield
Модуль можно подключить в любую верхнюю колодку Trema Set Shield.
Способ - 3: Используя проводной шлейф и Shield
Используя 3-х проводной шлейф, к Trema Shield, Trema-Power Shield, Motor Shield, Trema Shield NANO и тд.
Способ - 4: Подключение к программной шине I2C
При использовании программной шины I2C, модуль можно подключить к любым выводам Arduino, но потребуется дополнительно установить библиотеку iarduino_I2C_Software.h, для создания программной шины I2C, указав номера выбранных вами выводов. О том как это сделать читайте ниже в разделе «Подключение библиотеки», а так же на странице Wiki - Расширенные возможности библиотек iarduino для шины I2C.
Подключение к Raspberry Pi Pico
Для работы с Pi Pico необходимо установить поддержку платы в Arduino IDE. Нажмите здесь для перехода на подробную статью о том, как это сделать.
В этом случае логическую часть модуля необходимо питать от 3-х вольт Pi Pico
Для работы с Pi Pico версия установленной библиотеки должна быть 1.0.1 и выше
Модуль | Pi Pico |
SDA | GP6 |
SCL | GP7 |
Vcc | 3V3(OUT) |
GND | GND |
Питание:
Входное напряжение питания модуля 3,3В или 5В постоянного тока (поддерживаются оба напряжения питания), подаётся на выводы Vcc и GND.
Подробнее о модуле:
Модуль построен на базе четырёхразрядного светодиодного индикатора, микроконтроллера STM32F030K6 и снабжён собственным стабилизатором напряжения. Модуль способен выводить числа, время, температуру и некоторые символы.
Модуль позволяет:
- Менять свой адрес на шине I2C.
- Управлять внутренней подтяжкой линий шины I2C (по умолчанию включена).
- Выводить числа, время, температуру и некоторые символы.
- Выравнивать выводимые числа по любой из 4 позиций.
- Определять направление сдвига числа от позиции по которой выполнено выравнивание.
- Задавать частоту обновления информации дисплея, от 1 до 255 Гц.
- Указывать яркость свечения всех сегментов дисплея, от 0 до 7.
- Поворачивать изображение индикатора на 180°.
- Указывать любому разряду индикатора мигать включёнными сегментами с заданной частотой.
Специально для работы с Trema модулем - Четырехразрядный индикатор LED, FLASH-I2C, нами разработана библиотека iarduino_I2C_4LED которая позволяет реализовать все функции модуля.
Подробнее про установку библиотеки читайте в нашей инструкции.
Смена адреса модуля на шине I2C:
По умолчанию все модули FLASH-I2C имеют установленный адрес 0х09. Если вы планируете подключать более 1 модуля на шину I2C, необходимо изменить адреса модулей таким образом, чтобы каждый из них был уникальным. Более подробно о том, как изменить адрес, а также о многом другом, что касается работы FLASH-I2C модулей, вы можете прочесть в этой статье.
В первой строке скетча необходимо записать в переменную newAddress адрес, который будет присвоен модулю. После этого подключите модуль к контроллеру и загрузите скетч. Адрес может быть от 0х07 до 0х7F.
uint8_t newAddress = 0x09; // Назначаемый модулю адрес (0x07 < адрес < 0x7F). // #include <Wire.h> // Подключаем библиотеку для работы с аппаратной шиной I2C, до подключения библиотеки iarduino_I2C_4LED.h #include <iarduino_I2C_4LED.h> // Подключаем библиотеку для работы с индикатором I2C-flash. iarduino_I2C_4LED dispLED; // Создаём объект dispLED для работы с функциями и методами библиотеки iarduino_I2C_4LED. // Если при объявлении объекта указать адрес, например, dispLED(0xBB), то пример будет работать с тем модулем, адрес которого был указан. void setup(){ // Serial.begin(9600); // if( dispLED.begin(&Wire) ){ // Инициируем работу с индикатором, указав ссылку на объект для работы с шиной I2C на которой находится индикатор (по умолчанию &Wire). Serial.print("Найден LED индикатор 0x"); // Serial.println( dispLED.getAddress(), HEX ); // Выводим текущий адрес модуля. if( dispLED.changeAddress(newAddress) ){ // Меняем адрес модуля на newAddress. Serial.print("Адрес изменён на 0x"); // Serial.println(dispLED.getAddress(),HEX ); // Выводим текущий адрес модуля. }else{ // Serial.println("Адрес не изменён!"); // } // }else{ // Serial.println("LED индикатор не найден!"); // } // } // // void loop(){ // } //
Данный пример использует библиотеку iarduino_I2C_4LED, которая работает только с модулями четырехразрядных LED индикаторов, а значит позволяет менять только их адреса.
Смена и сортировка адресов на шине I2C:
Изменить адрес любого I2C модуля серии «Flash» можно аппаратно, используя установщик адресов FLASH-I2C. Это модуль подключаемый к шине I2C, на плате которого размещён дисплей и кнопки управления, при помощи которых можно узнать количество любых устройств на шине I2C, и менять адреса модулей Flash-I2C не отключая их от шины, что значительно сократит время сборки ваших проектов. Модуль оснащён разъемом USB через который можно запитать как сам модуль, так и шину I2C, или можно запитать шину I2C без использования разъема USB на плате модуля. Установщик адресов пригодиться в проектах с большим количеством модулей Flash-I2C.
Изменить адрес любого I2C модуля серии «Flash» можно программно, о том как это сделать рассказано в статье Wiki - Программная установка адресов модулей FLASH-I2C. В этой статье рассмотрены примеры с использованием библиотеки iarduino_I2C_Address, которая позволяет получать адреса любых устройств на шине I2C, менять адреса модулей Flash-I2C не отключая их от шины, получать название, номер модели, версию прошивки модулей Flash-I2C, а главное - автоматически сортировать адреса модулей Flash-I2C даже если на шине есть устройства с одинаковыми адресами.
Примеры:
В данном разделе раскрыты примеры работы с модулем по шине I2C с использованием библиотеки iarduino_I2C_4LED. Сама библиотека содержит больше примеров, доступных из меню Arduino IDE: Файл / Примеры / iarduino_I2C_4LED.
Вывод времени прошедшего с момента старта скетча:
Пример выводит время в минутах и секундах.
#include <Wire.h> // Подключаем библиотеку для работы с аппаратной шиной I2C, до подключения библиотеки iarduino_I2C_4LED.h #include <iarduino_I2C_4LED.h> // Подключаем библиотеку для работы с индикатором I2C-flash. iarduino_I2C_4LED dispLED(0x09); // Создаём объект dispLED для работы с функциями и методами библиотеки iarduino_I2C_4LED, указывая адрес модуля на шине I2C. // Если объявить объект без указания адреса (iarduino_I2C_4LED dispLED;), то адрес будет найден автоматически. int i, j; // Объявляем переменные для хранения числа минут и секунд прошедших с момента старта скетча. // void setup(){ // dispLED.begin(&Wire); // Инициируем работу с индикатором, указав ссылку на объект для работы с шиной I2C на которой находится индикатор (по умолчанию &Wire). dispLED.blink(0,true); // Указываем двоеточию мигать (если оно выводится на индикатор). } // // void loop(){ // i = millis()/1000 / 60 % 60; // Получаем минуты прошедшие с момента старта скетча. j = millis()/1000 % 60; // Получаем секунды прошедшие с момента старта скетча. dispLED.print(i, j, TIME); // Выводим значения i и j как время (через двоеточие). } //
После загрузки данного примера, на дисплее начнут высвечиваться минуты и секунды прошедшие с момента старта скетча.
Описание функций библиотеки:
В данном разделе описаны функции библиотеки iarduino_I2C_4LED для работы с Trema модулем - Четырехразрядный индикатор LED, FLASH-I2C.
Функции данной библиотеки полностью совместимы с библиотекой iarduino_4LED используемой для управления Trema четырёхразрядным LED индикатором который подключается к Arduino без использования шины I2C.
Библиотека iarduino_I2C_4LED может использовать как аппаратную, так и программную реализацию шины I2C. О том как выбрать тип шины I2C рассказано ниже в разделе «Подключение библиотеки», а так же на странице Wiki - расширенные возможности библиотек iarduino для шины I2C.
Подключение библиотеки:
- Если используется аппаратная шина I2C:
#include <Wire.h> // Подключаем библиотеку для работы с аппаратной шиной I2C, до подключения библиотеки iarduino_I2C_4LED.h #include <iarduino_I2C_4LED.h> // Подключаем библиотеку для работы с индикатором. // iarduino_I2C_4LED dispLED(0x09); // Создаём объект dispLED для работы с функциями и методами библиотеки iarduino_I2C_4LED, указав адрес модуля на шине I2C (0x09). // iarduino_I2C_4LED dispLED; // Если адрес индикатора не известен, то его можно не указывать, он будет найден автоматически. // Если адрес не указан, то на шине должен находиться только один индикатор. void setup(){ // ... // dispLED.begin(&Wire); // Инициируем работу с индикатором, указав ссылку на объект для работы с шиной I2C на которой находится индикатор (по умолчанию &Wire). ... // Доступны объекты: &Wire, &Wire1, &Wire2... } //
- Если используется программная шина I2C:
#include <iarduino_I2C_Software.h> // Подключаем библиотеку для работы с программной шиной I2C, до подключения библиотеки iarduino_I2C_4LED.h SoftTwoWire sWire(3,4); // Создаём объект программной шины I2C указав выводы которым будет назначена роль линий: SDA, SCL. // #include <iarduino_I2C_4LED.h> // Подключаем библиотеку для работы с индикатором. iarduino_I2C_4LED dispLED(0x09); // Создаём объект dispLED для работы с функциями и методами библиотеки iarduino_I2C_4LED, указав адрес модуля на шине I2C (0x09). // iarduino_I2C_4LED dispLED; // Если адрес индикатора не известен, то его можно не указывать, он будет найден автоматически. // Если адрес не указан, то на шине должен находиться только один индикатор. void setup(){ // ... // dispLED.begin(&sWire); // Инициируем работу с индикатором, указав ссылку на объект для работы с шиной I2C на которой находится индикатор (по умолчанию &Wire). ... // } //
- В обоих примерах сначала подключается библиотека для работы с шиной I2C. Для аппаратной шины библиотека
Wire.h
(предустановлена в Arduino IDE), а для программной шины библиотека iarduino_I2C_Software.h. с созданием объекта которому указываются выбранные вами выводы шины, в примере выводы(3-SDA, 4-SCL)
. - Далее подключается библиотека и создаётся объект для работы с модулем.
- В коде
Setup()
, при инициализации работы с модулем указывается ссылка на объект работы с выбранной шиной I2Cbegin(&ШИНА)
. Остальные строки кода одинаковы для любой шины I2C.
Функция begin();
- Назначение: Инициализация работы с модулем.
- Синтаксис: begin( [ &ШИНА ] );
- Параметры:
- &ШИНА - Ссылка на объект для работы с шиной I2C на которой находится модуль.
- Для аппаратной шины: &Wire, &Wire1, &Wire2..., если подключена библиотека Wire.h
- Для программной шины: ссылка на объект библиотеки iarduino_I2C_Software.h.
- Параметр является не обязательным, по умолчанию используется ссылка &Wire.
- Возвращаемое значение: bool - результат инициализации (true или false).
- Примечание: По результату инициализации можно определить наличие модуля на шине.
- Пример:
if( dispLED.begin(&Wire) ){ Serial.print( "Модуль найден и инициирован!" ); } else { Serial.print( "Модуль не найден на шине I2C" ); }
Функция reset();
- Назначение: Перезагрузка модуля.
- Синтаксис: reset();
- Параметры: Нет.
- Возвращаемое значение: bool - результат перезагрузки (true или false).
- Пример:
if( dispLED.reset() ){ Serial.print( "Модуль перезагружен" ); } else { Serial.print( "Модуль не перезагружен" ); }
Функция changeAddress();
- Назначение: Смена адреса модуля на шине I2C.
- Синтаксис: changeAddress( АДРЕС );
- Параметр:
- uint8_t АДРЕС - новый адрес модуля на шине I2C (целое число от 0x08 до 0x7E)
- Возвращаемое значение: bool - результат смены адреса (true или false).
- Примечание:
- Адрес модуля сохраняется в энергонезависимую память, а значит будет действовать и после отключения питания.
- Текущий адрес модуля можно узнать функцией getAddress().
- Пример:
if( dispLED.changeAddress(0x12) ){ Serial.print( "Адрес модуля изменён на 0x12" ); } else { Serial.print( "Не удалось изменить адрес" ); }
Функция getAddress();
- Назначение: Запрос текущего адреса модуля на шине I2C.
- Синтаксис: getAddress();
- Параметры: Нет.
- Возвращаемое значение: uint8_t АДРЕС - текущий адрес модуля на шине I2C (от 0x08 до 0x7E)
- Примечание: Функция может понадобиться если адрес модуля не указан при создании объекта, а обнаружен библиотекой.
- Пример:
Serial.print( "Адрес модуля на шине I2C = 0x" ); Serial.println( dispLED.getAddress(), HEX );
Функция getVersion();
- Назначение: Запрос версии прошивки модуля.
- Синтаксис: getVersion();
- Параметры: Нет
- Возвращаемое значение: uint8_t ВЕРСИЯ - номер версии прошивки от 0 до 255.
- Пример:
Serial.print( "Версия прошивки модуля " ); Serial.println( dispLED.getVersion() );
Функция setPullI2C();
- Назначение: Управление внутрисхемной подтяжкой линий шины I2C.
- Синтаксис: setPullI2C( [ФЛАГ] );
- Параметр:
- bool ФЛАГ требующий установить внутрисхемную подтяжку линий шины I2C (true или false).
- Возвращаемое значение:
- bool - результат включения / отключения внутрисхемной подтяжки (true или false).
- Примечание:
- Вызов функции без параметра равносилен вызову функции с параметром true - установить.
- Флаг установки внутрисхемной подтяжки сохраняется в энергонезависимую память модуля, а значит будет действовать и после отключения питания.
- Внутрисхемная подтяжка линий шины I2C осуществляется до уровня 3,3 В, но допускает устанавливать внешние подтягивающие резисторы и иные модули с подтяжкой до уровня 3,3 В или 5 В, вне зависимости от состояния внутрисхемной подтяжки модуля.
- Пример:
if( dispLED.setPullI2C(true ) ){ Serial.print( "Внутрисхемная подтяжка установлена." ); } if( dispLED.setPullI2C(false) ){ Serial.print( "Внутрисхемная подтяжка отключена." ); }
Функция getPullI2C();
- Назначение: Запрос состояния внутрисхемной подтяжки линий шины I2C.
- Синтаксис: getPullI2C();
- Параметры: Нет.
- Возвращаемое значение: bool - ФЛАГ включения внутрисхемной подтяжки (true или false).
- Пример:
if( dispLED.getPullI2C() ){ Serial.print( "Внутрисхемная подтяжка включена." ); } else { Serial.print( "Внутрисхемная подтяжка отключена." ); }
Функция clear();
- Назначение: очистка индикатора
- Синтаксис: clear();
- Параметры: Нет.
- Возвращаемые значения: Нет.
- Пример:
dispLED.clear(); // Чистим LED индикатор (все диоды выключатся).
Функция light();
- Назначение: Установка яркости свечения индикатора.
- Синтаксис: light( ЧИСЛО );
- Параметры:
- uint8_t ЧИСЛО - целое число, определяющее яркость, от 0 до 7 (максимальная яркость).
- Возвращаемые значения: Нет.
- Примечание: Яркость по умолчанию = 6.
- Пример:
dispLED.light(7); // Устанавливаем максимальную яркость свечения LED индикатора.
Функция point();
- Назначение: Установка точек.
- Синтаксис: point( ПОЗИЦИЯ , СОСТОЯНИЕ );
- Параметры:
- uint8_t ПОЗИЦИЯ - целое число, указывающее позицию точки: 1, 2, 3, 4 или 0 для двоеточия.
- bool СОСТОЯНИЕ - флаг может принимать значение 0 (выключить) или 1 (включить).
- Возвращаемые значения: Нет.
- Примечание:
- Если первый параметр ПОЗИЦИЯ больше 4, то СОСТОЯНИЕ применяется ко всем точкам и двоеточию индикатора.
- Функция управляет только точками и не влияет на ранее установленные цифры.
- Пример:
dispLED.point(0, true); // Включаем двоеточие (светится только двоеточие). dispLED.point(1, true); // Включаем первую точку (светится и двоеточие и самая левая точка). dispLED.point(0, false); // Выключаем двоеточие (светится только самая левая точка).
Функция blink();
- Назначение: Управление миганием цифр и символов в указанных позициях.
- Синтаксис: blink( ПОЗИЦИЯ , СОСТОЯНИЕ );
- Параметры:
- uint8_t ПОЗИЦИЯ - целое число, указывающее позицию цифры: 1, 2, 3, 4 или 0 для двоеточия.
- bool СОСТОЯНИЕ - флаг может принимать значение 0 (не мигать) или 1 (мигать).
- Возвращаемые значения: Нет.
- Примечание:
- Если первый параметр ПОЗИЦИЯ больше 4, то СОСТОЯНИЕ применяется ко всему индикатору.
- Функция управляет только миганием и не влияет на ранее установленные цифры, символы и точки.
- Частота миганий задаётся функцией
frequ()
.
- Пример:
dispLED.blink(0, true); // Заставляем мигать двоеточие (если двоеточие включено). dispLED.blink(1, true); // Заставляем мигать первую цифру или символ, включая её точку (теперь будет мигать и двоеточие, и символ находящийся в первой позиции). dispLED.blink(0, false); // Отключаем мигание двоеточия (теперь будет мигать только цифра или символ находящаяся в первой позиции).
Функция frequ();
- Назначение: Установка частоты миганий цифр и символов указанных функцией
blink();
. - Синтаксис: frequ( ЧАСТОТА );
- Параметр:
- uint8_t ЧАСТОТА - целое число, указывающее частоту в Гц, от 1 до 4.
- Возвращаемые значения: Нет.
- Примечание:
- Частота миганий цифр и символов позиция которых указана функцией
blink();
не зависит от частоты обновления дисплея указанной функциейfps();
. - Частота по умолчанию = 1 Гц.
- Частота миганий цифр и символов позиция которых указана функцией
- Пример:
dispLED.frequ(1); // Цифры и символы индикатора определённые функцией blink() будут мигать с частотой 1 Гц.
Функция turn();
- Назначение: Разворот изображения индикатора.
- Синтаксис: turn( ФЛАГ );
- Параметр:
- bool ФЛАГ - может принимать значение 0 (без разворота) или 1 (повернуть на 180°).
- Возвращаемые значения: Нет.
- Примечание:
- Если на индикаторе есть точки и они физически расположены только снизу цифр, то при развороте изображения, точки окажутся вверху и перед цифрами.
- Пример:
dispLED.turn(1); // Развернуть изображение индикатора на 180°.
Функция setLED();
- Назначение: Установка светодиодов (сегментов) индикатора по битам.
- Синтаксис: setLED ( [[[[[ БАЙТ_№1 ] , БАЙТ_№2 ] , БАЙТ_№3 ] , БАЙТ_№4 ] , ФЛАГ ] );
- Параметры:
- БАЙТ_№1 - каждый бит этого байта включает свой светодиод (сегмент) в 1 позиции.
- БАЙТ_№2 - каждый бит этого байта включает свой светодиод (сегмент) в 2 позиции.
- БАЙТ_№3 - каждый бит этого байта включает свой светодиод (сегмент) в 3 позиции.
- БАЙТ_№4 - каждый бит этого байта включает свой светодиод (сегмент) в 4 позиции.
- bool ФЛАГ - включает двоеточие.
- Возвращаемые значения: Нет.
- Примечание:
- Каждый бит байта соответствует одному светодиоду (сегменту) в следующем порядке: hgfedcba (старший бит управляет сегментом «h», а младший бит управляет сегментом «a»).
- Все параметры являются необязательными, отсутствие параметра означает что все светодиоды (сегменты) в данной позиции будут выключены.
- Пример:
dispLED.setLED(B00000110, B01100011); // В 1 позиции включены сегменты «c» и «b» (как у цифры 1), а во 2 разряде включены сегменты «g»«f»«b»«a» (как у символа градуса), остальные разряды индикатора выключены.
Функция print();
- Назначение: Вывод числа, массива чисел, текста, времени или температуры.
- Синтаксис: print ( ЗНАЧЕНИЕ , ПАРАМЕТРЫ_ВЫВОДА_ЧИСЛА );
- Параметры:
- ЗНАЧЕНИЕ - то, что требуется вывести на индикатор, это может быть:
- Целое число (как положительное, так и отрицательное).
- Дробное число (как положительное, так и отрицательное).
- Массив (из 4 положительных целых чисел, от 0 до 9)
- Текст (из следующих символов "0123456789 abcdefghijlnopstu .,:;*-_")
- ПАРАМЕТРЫ_ВЫВОДА_ЧИСЛА - допускается указывать от 0 до 5 параметров:
- LEN1, LEN2, LEN3 или LEN4 - количество символов в выводимом числе (включая знак минус).
- POS1, POS2, POS3 или POS4 - позиция от левого края, к которой привязывается выводимое число.
- LEFT или RIGHT - направление вывода относительно указанной позиции.
- DEC или HEX - система счисления для выводимого числа.
- TIME или TEMP - отображение чисел в виде времени или числа в виде температуры.
- символ типа char - для заполнения им недостающих разрядов
- ЗНАЧЕНИЕ - то, что требуется вывести на индикатор, это может быть:
- Возвращаемые значения: Нет.
- Примечание:
- Параметры указываются только если значением является число (целое или с плавающей точкой).
- Если первым параметром (после значения) указать число, то оно будет означать количество выводимых разрядов после запятой.
- Примеры:
dispLED.print( 12345.6789 , 2 , POS1 , LEN3 , RIGHT ); // Число 12345.6789 будет выведено как 5.67
Вывод без форматирования:
dispLED.print( 1 ); // Вывод целого числа 1. |
|
dispLED.print( 3.45 ); // Вывод дробного числа 3.45 (по умолчанию выводится 1 знак после запятой) |
|
dispLED.print( -12 ); // Вывод отрицательного целого числа -12. |
|
dispLED.print( -3.45 ); // Вывод отрицательного дробного числа -3.45 |
|
dispLED.print( 250 , HEX ); // Вывод числа 250 в шестнадцатиричной системе счисления |
|
int a[4]={0,3,6,9}; dispLED.print( a ); // Вывод массива из 4 положительных цифр от 0 до 9 |
|
dispLED.print( 23 , TEMP ); // Вывод температуры |
|
dispLED.print( 23.6 , TEMP ); // Вывод температуры |
|
dispLED.print( 4 , 5 , TIME ); // Вывод времени |
|
dispLED.print( "67" ); // Вывод текста |
|
dispLED.print( "OFF" ); // Вывод текста из букв латинского алфавита |
|
dispLED.print( "8:9" ); // Вывод текста с двоеточием |
|
Вывод чисел с указанием количества знаков после запятой:
dispLED.print( 1 , 2 ); // Вывод целого числа 1 с 2 знаками после запятой |
|
dispLED.print( -2 , 1 ); // Вывод отрицательного целого числа -2 с 1 знаком после запятой |
|
dispLED.print( 3.45 , 2 ); // Вывод дробного числа 3.45 с 2 знаками после запятой |
|
dispLED.print( -3.45 , 0 ); // Вывод отрицательного дробного числа -3.45 без знаков после запятой |
|
Вывод чисел с указанием их размерности:
dispLED.print( 1 , LEN2 ); // Вывод целого числа 1 в 2 разрядах |
|
dispLED.print( -1 , LEN3 ); // Вывод отрицательного целого числа -1 в 3 разрядах |
|
dispLED.print( 2.3 , LEN3 ); // Вывод дробного числа 2.3 в 3 разрядах |
|
dispLED.print( -4.567 , 1 , LEN4 ); // Вывод дробного числа -4.567 в 4 разрядах , с 1 знаком после запятой |
|
dispLED.print( 8901 , LEN1 ); // Вывод целого числа 8901 в 1 разряде |
|
dispLED.print( 7 , LEN3 , '-' ); // Вывод числа 7 в 3 разрядах, с заполнением пустых разрядов символом '-' |
|
Указание направления сдвига чисел:
dispLED.print( 1 , RIGHT ); // Вывод целого числа 1 со сдвигом вправо от старшего разряда |
|
dispLED.print( 12 , RIGHT ); // Вывод целого числа 12 со сдвигом вправо от старшего разряда |
|
dispLED.print( 12.3 , RIGHT ); // Вывод дробного числа 12.3 со сдвигом вправо от старшего разряда |
|
dispLED.print( 1 , LEFT ); // Вывод целого числа 1 со сдвигом влево (по умолчанию) от младшего разряда |
|
dispLED.print( 12 , LEFT ); // Вывод целого числа 12 со сдвигом влево (по умолчанию) от младшего разряда |
|
dispLED.print( 12.3 , LEFT ); // Вывод дробного числа 12.3 со сдвигом влево (по умолчанию) от младшего разряда |
|
Вывод чисел с привязкой к определённой позиции от левого края:
dispLED.print( 74 , POS4 ); // Вывод целого числа 74 со сдвигом влево (по умолчанию) от 4 позиции |
|
dispLED.print( 74 , POS3 ); // Вывод целого числа 74 со сдвигом влево (по умолчанию) от 3 позиции |
|
dispLED.print( 74 , POS2 ); // Вывод целого числа 74 со сдвигом влево (по умолчанию) от 2 позиции |
|
dispLED.print( 74 , POS1 ); // Вывод целого числа 74 со сдвигом влево (по умолчанию) от 1 позиции |
|
dispLED.print( 74 , POS4 , RIGHT ); // Вывод целого числа 74 со сдвигом вправо от 4 позиции |
|
dispLED.print( 74 , POS3 , RIGHT ); // Вывод целого числа 74 со сдвигом вправо от 3 позиции |
|
dispLED.print( 74 , POS2 , RIGHT ); // Вывод целого числа 74 со сдвигом вправо от 2 позиции |
|
dispLED.print( 74 , POS1 , RIGHT ); // Вывод целого числа 74 со сдвигом вправо от 1 позиции |
|
Параметры вывода числа можно комбинировать в любой последовательности:
за исключением числа, указывающего количество знаков после запятой, оно должно быть первым после выводимого значения
dispLED.print( 12345.6789 , 2 , POS1 , LEN3 , RIGHT ); // Вывод дробного числа 12345.6789 // выводить 2 знака после запятой // POS1 - число вывести на дисплей начиная с 1 позиции от левого края // LEN3 - размерность выводимого числа 3 разряда // RIGHT - число сдвигать вправо от указанной позиции. |
|
Дополнительные функции библиотеки:
В библиотеке реализованы две дополнительные функции, применение которых может быть интересно в познавательных целях.
Функция fps();
- Назначение: Установка частоты обновления всего изображения индикатора.
- Синтаксис: fps( ЧАСТОТА );
- Параметр:
- bool ЧАСТОТА - значение от 1 до 255 Гц.
- Возвращаемые значения: Нет.
- Примечание:
- Светодиоды индикатора светятся не одновременно, а поочерёдно включаются и выключаются так, что в любой момент времени может светиться только один светодиод.
- Частота заданная данной функцией аналогична частоте кадровой развёртки дисплея, она определяет сколько раз в секунду обновится всё изображение индикатора.
- На частотах ниже 30 Гц заметно мерцание, а на частотах ниже 10 Гц можно отследить в каком порядке включаются светодиоды.
- Пример:
dispLED.fps(2); // Обновлять изображение индикатора всего 2 раза в секунду.
Функция scheme();
- Назначение: Установка схемы включения светодиодов.
- Синтаксис: scheme( СХЕМА );
- Параметр:
- uint8_t СХЕМА - может принимать одно из двух значений:
- LED_CA - светодиоды индикатора включены по схеме с общим анодом.
- LED_CC - светодиоды индикатора включены по схеме с общим катодом.
- Возвращаемые значения: Нет.
- Примечание:
- Изменение схемы включения светодиодов может быть полезно только при замене индикатора на плате модуля.
- Пример:
dispLED.scheme(LED_CA); // Указываем модулю управлять индикатором собранном по схеме с общими анодами. dispLED.scheme(LED_CC); // Указываем модулю управлять индикатором собранном по схеме с общими катодом.
Ссылки:
- Trema модуль - Четырехразрядный индикатор LED, FLASH-I2C.
- Wiki - Четырехразрядный индикатор LED, FLASH-I2C - Datasheet.
- Библиотека iarduino_I2C_4LED.
- Библиотека iarduino_I2C_Software.
- Wiki - Расширенные возможности библиотек iarduino для шины I2C.
- Wiki - Установка библиотек в Arduino IDE.
- Wiki - Программная установка адресов модулей FLASH-I2C.
Обсуждение