Библиотека LedControl энергосберегающий режим

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#1 Дим » 5 декабря 2020, 22:20

Горя, светодиоды требуют довольно много энергии, поэтому если ваш проект работает на батарее, то дисплей иногда имеет смысл выключать. В библиотеке LedControl есть специальная функция, позволяющая переводить MAX72xx в спящий режим: она выключит все светодиоды на дисплее, однако все необходимые данные будут сохранены в памяти чипа. Более того, во время спящего режима чип может как принимать данные, так и обрабатывать их. Таким образом, когда чип будет выведен из спящего режима, на дисплее будут показаны обновленные данные. Ниже пример «невидимого» обратного отсчета:
Имейте в виду, что при включении Arduino чип MAX72xx всегда находится в спящем режиме.

Код: Выделить всё

LedControl lc=LedControl(...);

// выставляем начальную точку для обратного отсчета:
int i=9;
// печатаем ее на дисплей:
lc.setDigit(0,(byte)i,false);
// мы увидим цифру «9»:
delay(1000);
// теперь выключаем дисплей:
lc.shutdown(true);
// и начинаем «невидимый» обратный отсчет: 
while(i>1) {
    lc.setDigit(0,(byte)i,false);
    i--;
    delay(1000);
}
// когда дисплей включится, на дисплее будет «1», т.е.
// информация, обновившаяся во время работы спящего режима:
lc.shutdown(false);
lc.setDigit(0,(byte)i,false);
Вот прототип для функции shutdown():
/* 
 * Включаем у чипа энергосберегающий (спящий) режим:
 * Параметры:
 * int addr   Адрес дисплея, которому нужно передать команду.
 * boolean b  Если указать «true», устройство перейдет в спящий режим, 
 * а если «false», то оно будет работать в нормальном режиме.
*/
void shutdown(int addr, bool b);
[center]i love you [s]mxIni[/s] Mysql[/center]


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Программирование»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость