Программируем LED на телефоне. Светодиодные семисегментные индикаторы Что такое led статус в телефоне stark

Эта статья продолжает цикл моих публикация про организацию динамической индикации на микроконтроллерах PIC и LED индикаторах. Вот ссылки на предыдущие публикации:

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

В каждом из прерываний с интервалом 2 мс (в данном случае от таймера TMR0) подготавливается один этап динамической индикации (ДИ) согласно алгоритму, который состоит из пяти фаз управления регистром и индикатором.

2-я фаза: положительный перепад на выводе 12 регистра (ST_CP) записывает нулевое состояние регистра в выходную защелку. Здесь и далее, до начала индикации, индикатор погашен нулевым потенциалом на сегментах.

3-я фаза: посредством управления выводами регистра 14 (DS – данные) и 11 (SH_CP – тактовый) в него записывается код для управления сегментами.

4-я фаза: положительным перепадом на выводе 12 регистра данные из регистра записываются в выходную защелку, причем, из-за положительных уровней на разрядах индикатор остается погашенным.

5-я фаза: здесь на выводы разрядов индикатора подается требуемый код, и далее происходит собственно индикация.

Если в схеме задействован один 4-х разрядный индикатор, то для правильной работы он должен быть с ОК. Если требуется управлять 8-ю разрядами, то используются 8 портов МК, при этом, остальные 4 порта просто управляют разрядами (в фазе 4 на них должен быть высокий уровень). Стоит отметить, что в этом случае возможно применение индикаторов как с ОК, так и с ОА, подключая к регистру соответственно сегменты или разряды (по причинам, изложенным ниже, ДИ в первом случае предпочтительно организовать посегментную, а во втором – поразрядную).

По этой методике можно подключить два четырехразрядных индикатора к МК PIC16F676, используя один сдвиговый регистр, при этом, останутся для использования целых четыре свободных порта. , например, для такого подключения люди использовали совмещение в некоторых портах МК функций ДИ и аналоговых входов (на мой взгляд, крайне сомнительное решение), что привело к значительному усложнению схемы и к некоторым ограничениям, о чем авторы и предупреждают. Используя мою схему подключения, все решилось бы просто и красиво – входы отдельно, индикация отдельно, плюс еще два порта (включая MCLR) для кнопок.

Для тестирования данного способа управления предлагается следующая простая схема на МК PIC12F629 и индикаторе FYQ3641A, которое выдает на индикаторе попеременно слово «test» и число 1234.

Здесь решено применить посегментную ДИ (в каждый момент включен один сегмент, а на разрядных выводах присутствует код, где в каждом разряде: 0 – если в данном разряде должен гореть данный сегмент и 1 – в противном случае), при котором пиковые токи перекладываются на регистр. Почему? Этому есть две причины: первая – максимальная нагрузочная способность выходов 74HC595 35 мА против 25 мА у контроллеров PIC; вторая и главная – близкий к предельному ток через выходной порт МК теоретически может поднять выходной потенциал оного до уровня переключения входов регистра, что привело бы к ошибкам в работе. А так, в порты МК втекают токи 6-7 мА и на выходах потенциалы заведомо не превышают TTL-уровни.

Как упоминалось выше, интервал прерываний - 2 мс, что соответствует частоте обновления индикатора в 64 Гц и его свечение достаточно комфортно воспринимается глазом.

Данный способ ДИ, кроме всего прочего, позволил вдвое уменьшить количество токоограничительных резисторов (R2-R5).

Устройство собрано на так называемой «беспаечной» макетной плате.

Индикатор можно заменить на любой из серии 3641А.

Схема питается от стабилизированного источника, напряжением 5 В. Я использовал специальную плату-стабилизатор, предназначенный для использования совместно с упомянутой выше макетной платой.

Программа управления МК написана на языке Си и оттранслирована в среде .

Код в MikroC, проект , HEX-файл в приложении.

Для использования данного способа подключения в коммерческих разработках просьба связаться со мной.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
DD1 МК PIC 8-бит

PIC12F629

1 В блокнот
DD2 Регистр 74HC595 1 В блокнот
HL Индикатор FYQ3641 1 В блокнот
R1 Резистор

30 кОм

1 В блокнот
R2 Резистор

430 Ом

1 В блокнот
R3 Резистор

430 Ом

1

Второй год реанимирую усилитель Солнцева, собранный 20 лет назад. Одним из узлов усилителя является индикатор выходной мощности. В момент создания в состав усилителя входил индикатор, собранный на К155ЛА3 – 8 корпусов + обвес. Работал хорошо, но сейчас не современно. Реинкарнация на современной базе под катом.
В процессе реанимации решил соорудить новый индикатор, на современной элементной базе. Популярной в данный момент является схема индикаторов на LM3915.


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



В целом, получилось неплохо, но размытость (даже мутность) световых пятен не совсем устраивала.
В поисках светодиодной ленты набрел на линейки светодиодных индикаторов в одном корпусе на 12 сегментов, 8 из которых зеленого цвета и 4 красного.


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



Лицевая сторона каждой панели закрыта защитной наклейкой.

С внутренней стороны индикаторы залиты прозрачным компаундом

В целом даже был очень приятно удивлен качеством исполнения индикаторов – не безликое изделие.
Размеры, заявленные продавцом, в точности совпадают с реальностью. На длине выводов производитель не экономил.
Поскольку продавец не указал ни ток потребления светодиодов, ни рабочее напряжение, то счел эти данные общепринятыми, ориентировочно 2 – 3 Вольта, при токе 20-30 мА.
Однако, предварительно произвел проверку светодиодов индикатора тестером Т4.




Uf, v – напряжение, при котором светодиод начинает светиться в вольтах,
C, pf – емкость перехода в пикофарадах
В таблице светодиоды с 1 по 8 – зеленые, 9-12 – красные.
Некоторый разброс параметров присутствует, но на работе ни как не сказывается.
До того момента как индикаторы приехали, думал не заниматься травлением новой платы, а воспользоваться макеткой, но оказалось, что шаг между выводами не 2,54 мм, а ровно 2. Это собственно видно из чертежей на странице продавца, но на такие мелочи при покупке внимания не обратил.
Установив метрическую сетку в Sprint-Layout, развел плату. В процессе столкнулся еще с одной если не трудностью, то не стандартностью панели – выводы светодиодов расположены не в центре корпуса, а сдвинуты к одному краю – находятся на расстоянии 1,6 мм от центра. Это создало небольшое неудобство – мне нужно было расположить два индикатора рядом, без зазора между корпусами. Пришлось шаг сетки уменьшить до 0,25 мм и несколько раз печатать плату на бумаге, примеряя индикаторы.
В результате, получилась такая плата





Сравнение результатов:

Монтаж в схему и испытания









Фотоаппарат немного мылит свечение сегментов, но вживую все выглядит очень прилично. Каждый светодиод создает свое четко очерченное свечение, не создавая ватного пятна.
Возможно это субъективное ощущение, но индикатор ожил, скорость индикации увеличилась и стала более адекватной по сравнению с первоначальным вариантом – исчезла некая заторможенность.
Покупкой, полученным результатом, не смотря на нестандартный шаг выводов и их смещение относительно центра корпуса, крайне доволен и могу рекомендовать данный товар.
Кроме того, у продавца различные индикаторы в широком ассортименте и для разных целей.
Плата в спринте:

В первой вкладке - плата с микросхемами + плата индикатора на отдельных светодиодах. Во второй вкладке - плата для обозреваемых индикаторов.

Планирую купить +41 Добавить в избранное Обзор понравился +76 +127

Ещё в далёком 2014-ом году Nokia установила в Lumia 730/735 LED-индикаторы. Сейчас Windows 10 Mobile уже поддерживает работу светодиодов, но смартфоны пока не получили обновление прошивки, включающее данную функцию. Именно поэтому многие пользователи захотят активировать её самостоятельно.

Как включить светодиодный индикатор на вашей Nokia Lumia 730/735?

Принцип действий такой же, как и с . Нужно будет установить на смартфон CAB-файл, после чего сделать Interop Unlock и добавить в реестр несколько значений.

Предупреждение: выполнение данных инструкций может привести к самым различным последствиям. Мы не несём ответственности за то, что вы можете сделать с вашим смартфоном, и не отвечаем за нанесённый смартфону ущерб.

Предупреждение 2: вернуть смартфон в исходное состояние можно будет только с помощью Windows Device Recovery Tool. Сброс настроек только обнулит значения реестра, но все драйвера останутся в системе.

Индикация точно заработает только в Lumia 730 и 735! Лучше не пытайтесь "включать" её на других моделях, если не уверены в её существовании.

  1. Скачайте . Распакуйте его и запустите установочный пакет.
  2. Загрузите .
  3. Подключите телефон к компьютеру.
  4. Нажмите Win + X и запустите командную строку с правами администратора. В зависимости от разрядности своей ОС введите одну из следующих команд:
    64-бит: CD C:\Program Files (x86)\Windows Kits\10\Tools\Bin\i386
    32-бит: CD C:\Program Files\Windows Kits\10\Tools\Bin\i386
  5. Не закрывайте командную строку.
  6. Скопируйте адрес папки с cab-файлом, который вы скачивали из каталога обновлений Microsoft. Важно: учтите, что файл должен находиться в отдельной папке, без каких-либо других файлов. Название папки не должно содержать пробелы и кириллические буквы.
  7. Вернитесь в командную строку и введите следующее, только без квадратных скобок:
    iutool - v - p [адрес папки с cab-файлом, который вы скопировали из предыдущего пункта]
  8. Если вы всё сделали правильно, смартфон перезагрузится и начнёт устанавливать обновления. Это займёт не более 10 минут. Ни в коем случае не трогайте смартфон и не отключайте его от ПК до конца процесса.
  9. Теперь сделайте Interop Unlock согласно инструкции " ". Если он уже у вас сделан, пропустите этот шаг.
  10. Скачайте файл со значениями реестра для вашего устройства и поместите его на SD-карту. Файл для Lumia 730/735 находится .
  11. Зайдите в приложение Interop Tools , выберите This Device , затем Import Registry File .
  12. Выберите файл, который вы только что скачали, согласитесь на импорт. Если возникнет ошибка, пробуйте установить более старые версии Interop Tools.
  13. Перезагрузите смартфон.

После выполнения данных действий в настройках уведомлений для программ (Параметры - Система - Уведомления и действия - Приложение ) появится галочка, включающая LED-индикатор для них. По умолчанию светодиод будет мигать при получении уведомления от любого приложения и отключаться после просмотра оповещения.

Как настроить работу LED-индикатора?

  • Зайдите в Interop Tools , выберите This Device , далее в меню-гамбургере Registry Browser .
  • Пройдите в ветвь HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Shell \ Nocontrol \ LedAlert . Для настройки работы индикатора используются 3 ключа: Intensity , Period и Cyclecount . Первый параметр регулирует яркость диода, второй - длительность одной вспышки в миллисекундах, третий - количество вспышек. Вы можете попробовать отредактировать эти значения.

Учтите, что существуют ограничения, превышать которые лучше не стоит.

  • Intensity: от 0 до 100.
  • Cyclecount: от 1 до 2147483647.

Как включить LED-индикацию на Lumia 830?

На Lumia 830 можно отключить подсветку аппаратных кнопок, вместо чего заставить центральную кнопку (Пуск) моргать при получении уведомлений.

Для этого выполните все инструкции, описанные выше, а затем:

  • Зайдите в Interop Tools , выберите This Device , далее в меню-гамбургере Registry Browser .
  • Пройдите в ветвь HKEY_LOCAL_MACHINE \ SOFTWARE \ OEM \ Nokia \ Display \ ColorAndLight .
  • Измените значение параметра UserSettingKeyLightEnabled на 0 .
  • Перезагрузите смартфон.

При обновлении системы вся функциональность, связанная с LED-оповещениями, не исчезает. После сброса настроек вам нужно будет заново ввести значения в реестре.

Не позволяет напрямую включать-выключать светодиодный индикатор или вспышку фотокамеры, на некоторых телефонах такая возможность имеется.

Как программно помигать разноцветными огоньками, как написать свой «Фонарик» или какими еще светодиодами устройства можно управлять - об этом Вы узнаете ниже.

Началось все с того, что я, исследуя файловую систему своего HTC Desire с помощью ES Проводника , случайно наткнулся на любопытные каталоги: /sys/class/leds/blue , /sys/class/leds/flashlight и т.п.
Какой еще blue?! Я видел только оранжевый и зеленый индикатор. Но самое интересное - внутри этих каталогов оказался файл brightness с правом на запись! Чем я сразу и воспользовался.

На самом деле, это не простой файл, а интерфейс работы с драйвером светодиода. Так, записав в файл /sys/class/leds/blue/brightness положительное число, мы включим синий индикатор на корпусе телефона, записав 0 - выключим. Аналогично с индикаторами amber и green. Включив два светодиода вместе, получим новые цвета: amber + blue = purple; green + blue = aqua.

А теперь, как это все программируется
public void ledControl(String name, int brightness) {

try {

FileWriter fw = new FileWriter("/sys/class/leds/" + name + "/brightness" );

fw.write(Integer.toString(brightness));

fw.close();

} catch (Exception e) {

// Управление LED недоступно

}

}


// Включим пурпурный индикатор

ledControl("amber" , 255 );

ledControl("blue" , 255 );


// Сделаем дисплей темнее

ledControl("lcd-backlight" , 30 );


// Выключим подсветку кнопок

ledControl("button-backlight" , 0 );


// Организуем фонарик средней яркости

ledControl("flashlight" , 128 );

Приложение-пример с исходными кодами можно скачать .

Заключение
Все! Теперь телефон светится, как новогодняя елка. Код проверялся только на HTC Desire под управлением Android 2.2, но, вероятно, может работать и на других устройствах. Напишите мне, получится или не получится фокус на Вашем телефоне.

Не позволяет напрямую включать-выключать светодиодный индикатор или вспышку фотокамеры, на некоторых телефонах такая возможность имеется.

Как программно помигать разноцветными огоньками, как написать свой «Фонарик» или какими еще светодиодами устройства можно управлять - об этом Вы узнаете ниже.

Началось все с того, что я, исследуя файловую систему своего HTC Desire с помощью ES Проводника , случайно наткнулся на любопытные каталоги: /sys/class/leds/blue , /sys/class/leds/flashlight и т.п.
Какой еще blue?! Я видел только оранжевый и зеленый индикатор. Но самое интересное - внутри этих каталогов оказался файл brightness с правом на запись! Чем я сразу и воспользовался.

На самом деле, это не простой файл, а интерфейс работы с драйвером светодиода. Так, записав в файл /sys/class/leds/blue/brightness положительное число, мы включим синий индикатор на корпусе телефона, записав 0 - выключим. Аналогично с индикаторами amber и green. Включив два светодиода вместе, получим новые цвета: amber + blue = purple; green + blue = aqua.

А теперь, как это все программируется
public void ledControl(String name, int brightness) {

try {

FileWriter fw = new FileWriter("/sys/class/leds/" + name + "/brightness" );

fw.write(Integer.toString(brightness));

fw.close();

} catch (Exception e) {

// Управление LED недоступно

}

}


// Включим пурпурный индикатор

ledControl("amber" , 255 );

ledControl("blue" , 255 );


// Сделаем дисплей темнее

ledControl("lcd-backlight" , 30 );


// Выключим подсветку кнопок

ledControl("button-backlight" , 0 );


// Организуем фонарик средней яркости

ledControl("flashlight" , 128 );

Приложение-пример с исходными кодами можно скачать .

Заключение
Все! Теперь телефон светится, как новогодняя елка. Код проверялся только на HTC Desire под управлением Android 2.2, но, вероятно, может работать и на других устройствах. Напишите мне, получится или не получится фокус на Вашем телефоне.