Программируем LED на телефоне. Светодиодный индикатор Что такое 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, но, вероятно, может работать и на других устройствах. Напишите мне, получится или не получится фокус на Вашем телефоне.

Рис.1 Расположение сегментов светодиодного индикатора

Светодиодные индикаторы являются самым простым средством для отображения символьной информации. Их конструкция представляет собой набор светодиодов, выполненных в виде сегментов определенной формы. На рис.1 приведена наиболее распространенная схема расположения сегментов, позволяющая отображать цифры 0…9 и многие другие дополнительные символы. В нутрии корпуса все светодиоды имеют общую точку соединения. Объединенными вместе могут быть аноды (общий анод) или катоды (общий катод). Самые распространенные цвета свечения - красный и зеленый. При равном токе потребления красные светодиоды, как правило, имеет большую светоотдачу. Энергопотребление зависит от напряжения питания и технологии изготовления. Ток сегмента у современных индикаторов может быть менее 1 мА.


Рис.2 Подключение индикатора при динамической индикации

Для того чтобы высветить на индикаторе необходимый символ, потребуется задействовать у микроконтроллера 8 выводов. Одну линию можно сэкономить если отказаться от сегмента H, когда в отображения точки (запятой) нет необходимости. При большем чисел используемых индикаторов количество линий ввода-вывода существенно возрастет. Два индикатора потребуют уже 16 линий, 3 индикатора - 24 и т.д. Ясно, что для большинства приложений такое расточительное использование выводов совершенно неприемлемо. Решить эту проблему можно применив динамическую индикацию. Для этого вместо непосредственного соединения сегментов с микроконтроллером, их объединяют в общие группы, как показано на рис.2. В схеме используется индикатор TOT-3361AH-LN на 3 знакоместа c общими катодами. Порт D задействован для управления светодиодами сегментов A…H. Катоды K0…K2 напрямую подключены к линиям 0…2 порта B соответственно(для индикаторов другого типа с суммарным током ≥20 мА понадобятся дополнительные буферные элементы). В начале на индикатор выводится символ, соответствующий нулевому знакоместу. При этом на линии PB0 выставляется низкий уровень напряжения, а на PB1 и PB2 высокий (иначе символ будет отображен во всех трех позициях). Через некоторый период времени выводится следующий по очередности символ и теперь уже катод K1 соединяется с землей(на линии PB1 присутствует низкий уровень, на PB0 и PB2 – высокий). Далее информация отображается в старшей позиции индикатора (на PB2 лог.0, на PB0, PB1 лог.1), затем снова в нулевой и т.д. При частоте обновления символов ≥ 50 Гц начинает проявляться инерция человеческого зрения. Мерцание (эффект от переключения) пропадает. Изображение воспринимается непрерывно, так как будто все символы светятся постоянно. Пример подпрограммы динамической индикации приведен ниже. Она принимает два параметра: код символа и номер позиции, в которой этот символ нужно отобразить.

; Поскольку индикатор содержит 3 знакоместа, подпрограмма; вывода символов должна вызываться с частотой ≥ 150 Гц (3 ; знакоместа x 50 Гц = 150 Гц). Период переключения должен; составлять 1/150 Гц = 6667 мкс, что на частоте 1 МГц у AVR ; составит 6667 циклов тактовой частоты генератора. Постоянные; промежутки времени удобнее всего отмерять таймером, работающем; в режиме сброса при совпадении (режим CTC). У ATmega8 такой; режим существует у 16-разрядного таймер-счетчика 1 и 8- ; разрядного таймер-счетчика 2. Для этих целей (в случае; использования таймер-счетчика 1) существуют два регистра; пространства РВВ: OCR1AH(старший байт), OCR1AL(младший байт). ; Когда работа схемы сравнения разрешена, то счетный регистр; TCNT1H:TCNT1L начинает после каждого приходящего импульса на; единицу увеличивать свое содержимое до тех пор, пока его; значение не сравняется со значением записанным в; OCR1AH:OCR1AL. В это момент содержимое TCNT1H:TCNT1L ; обнуляется и в РВВ TIMSK устанавливается флаг OCF1A. Если; предварительно установить бит OCIE1A в TIMSK и бит I в SREG, ; то произойдет переход на обработчик прерывания по совпадению; от модуля сравнения A. У таймера-счетчика 1 существует также; еще и второй подобный модуль сравнения B с регистрами; сравнения OCR1BH:OCR1BL функционирование которого подобно; описанному выше. .def data = R16 ;регистр с кодом символа.def pos = R17 ;регистр с номером текущей позиции индикатора.def temp = R18 ;регистр для промежуточных операций.dseg .org SRAM_START ;ячейки в SRAM для отображения buffer: .byte 3 ;на индикаторе.cseg .org 0 rjmp initial ;старт программы.org 0x0006 ;обработчика прерывания по rjmp service_T1COMPA ;совпадению от модуля сравнения A ; Период следования прерываний в режиме CTC: T=(OCR1AH:OCR1AL+1) ; /(Fclk/N),где N – коэффициент деления предделителя; частоты на входе таймера-счетчика 1. Режим работы задается; битами WGM13:WGM10 (WGM10 и WGM11 в управляющем РВВ TCCR1A, ; WGM12 и WGM13 в TCCR1B), а значение N задается битами; CS12:CS10 в регистре TCCR1A. Для периода T = 6667 мкс; (WGM13:WGM10 = 0100 – режем CTC), N =1(CS12:CS10 = 001 – ; предделитель отключен) и Fclk=1 МГц – содержимое OCR1AH:OCR1AL ; = 6667. .org 0x0020 initial: ldi temp,high(RAMEND) ;инициализация стека out SPH,temp ldi temp,low(RAMEND) out SPL,temp . clr pos clr temp ldi temp,1 ;заполняем буфер индикации числами 1…3 sts buffer,temp ldi temp,2 sts buffer+1,temp ldi temp,3 sts buffer+2,temp out TCCR1A,temp ldi temp,(1<< WGM12)|(1<< CS10) out TCCR1B,temp ldi temp,high(6667) out OCR1AH,temp ldi temp,low(6667) out OCR1AL,temp ldi temp,1<< OCIE1A out TIMSK,temp sei . service_T1COMPA: ;обработчик прерывания по совпадению OCR1A in temp,SREG ;при входе сохраняем в стеке push temp ;регистры temp, SREG clr temp ldi YH,high(buffer) ;заносим в указатель Y адрес ldi YL,low(buffer) ;буфера индикации buffer add YL,pos ;добавляем к Y смещение, что соответствует adc YH,temp ;ячейке с текущей позицией pos индикатора ld data,Y ;заносим в data кодом символа текущей позиции rcall din_ind ;вызов подпрограммы индикации inc pos ;циклически изменяем номер позиции cpi pos,3 ;индикатора 0->1->2->0 и т.д. brne PC+2 clr pos pop temp ;при выходе восстанавливаем из стека out SREG,temp ;регистры temp, SREG reti ; Подпрограмма динамической индикации; ZH:ZL – указатель для табличной конвертации; R18 – регистр для промежуточных операций; R16 – номер символа в таблицей перекодировки ind_tabl ; при входе в подпрограмму; R17 – номер позиции при входе в подпрограмму (0…2) ; флаг T при входе в подпрограмму определяет; наличие (T=1) или отсутствие (T=0) запятой din_ind: clr R18 ;очищаем вспомогательный регистр при входе ldi ZH,high(2*ind_tabl) ;заносим в указатель Z адрес начала ldi ZL,low(2*ind_tabl) ;таблицы перекодировки символов add ZL,R16 ;добавляем к указателю Z смещение, adc ZH,R18 ;соответствующее положению символа в таблице lpm R16,Z ;извлекаем в R16 из таблицы символ bld R16,7 ;заносим в старший разряд R16(сегмент H) значение clt ;запятой, которое передается через флаг T ldi R18,0b11111110 sbrc R17,0 ;если текущий разряд 1, то заносим в R18 маску ldi R18,0b11111101 ;порта B для включения катода K1 sbrc R17,1 ;если текущий разряд 2, то заносим в R18 маску ldi R18,0b11111011 ;порта B для включения катода K2 push R17 ;сохраняем в стеке регистр с номером позиции in R17,PORTB;считываем в буфер R17 текущее состояние порта ori R17,0b00000111 and R18,R17 out PORTB,R17 ;гасим все сегменты, подавая на K0…K2 лог.1 out PORTD,R16 ;выводим в порт D очередной символ out PORTB,R18 ;соединяем с землей следующий катод pop R17 ;восстанавливаем из стека регистр с номером позиции ret ind_tabl: ;таблица некоторых символов при общем катоде; HGFEDCBA HGFEDCBA символы номер в таблице.db 0b00111111, 0b00000110 ; 0,1 0, 1 .db 0b01011011, 0b01001111 ; 2,3 2, 3 .db 0b01100110, 0b01101101 ; 4,5 4, 5 .db 0b01111101, 0b00000111 ; 6,7 6, 7 .db 0b01111111, 0b01101111 ; 8,9 8, 9 .db 0b01110111, 0b01111100 ; A,b 10, 11 .db 0b01011110, 0b01011110 ; C,d 12, 13 .db 0b01111001, 0b01110001 ; E,F 14, 15 .db 0b01000000, 0b00000000 ; -,space 16, 17

Линии портов ввода-вывода у AVR имеют симметричные нагрузочные характеристики. Они допускают равные по величине втекающий и вытекающий токи до 20 мА. Поэтому с ними с одинаковым успехом могут применятся индикаторы как с общим анодом так и с общим катодом. Помимо этого выводы для подключения сегментов очень часто выполняют дополнительные функции опроса кнопок. На рис.2, например, с линией сегмента A, через токоограничивающей резистор RN соединена кнопка SBN. Периодически PD0 настраивается на ввод для считывания состояния кнопки. В роле нагрузочного сопротивления, в этом случае, выступает внутренний pull-up резистор.


Рис.3 Сокращение числа выводов микроконтроллера
а - при помощи сдвигового регистра
б - с использованием индикаторов с разной схемой подключения светодиодов

Количество выводов можно существенно сократить, если совместно с микроконтроллером использовать вспомогательные микросхемы. На рис.3а, например, показано как в этих целях используется сдвиговой регистр 74HC164 или подобный ему. Такое подключение освобождает 6 линий ввода-вывода. В некоторых случаях может оказаться оправданным применение дешифраторов семисегментного кода и счетчиков различного типа. Кроме того существует еще одна возможность экономии, основанная на использовании z-состояния линий портов. Схема на рис.3б аналогична схеме на рис.2 за тем лишь исключением, что параллельно индикатору с общим катодом HG1 дополнительно подключен трехразрядный индикатор с общим анодом HG2. Линии PB0…PB2 одновременно выполняют коммутацию анодов A0…A2 индикатора HG2 и катодов K0…K2 HG1 соответственно. Когда информация отображается в нулевой позиции HG2(анод A0), то на линии PB0 формируется высокий уровень напряжения. На линиях порта D выставляется лог.0 в тех сегментах, которые должны быть засвечены и z-состояние в сегментах, которые необходимо погасить. Когда активно младшее знакоместо HG1(катод K0) – на линии PB0 должен присутствовать низкий уровень напряжения, а в порт D выведено логическое значение при котором уровень лог.1 на линиях соответствует засвеченным сегментам и z-состояние погашенным. В случае если символы выводится в другие позиции индикатора, отличные от A0 и K0, то PB0 должна быть переведена в высокоимпедансное состояние. Естественно, что программа вывода при такой схеме переключения будет заметно сложнее приведенной на рис. Таблица символов окажется намного больше так как во-первых для каждого из них необходимо, кроме значения PORTD, надо будет хранить еще и содержимое регистра DDRD, через который соответствующие линии должны переводится в z-состояние (настраиваться на ввод). И во-вторых символам HG1 будут соответствовать иные, инверсные значения PORTD по отношению к индикатору c общим катодом HG2.

Ещё в далёком 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-оповещениями, не исчезает. После сброса настроек вам нужно будет заново ввести значения в реестре.

Наверняка вы уже видели индикаторы - "восьмёрки". Это и есть семисегментный светодиодный индикатор, который служит для отображения цифр от 0 до 9, а также децимальной точки (DP - Decimal point) или запятой.

Конструктивно такое изделие представляет собой сборку светодиодов. Каждый светодиод сборки засвечивает свой знакосегмент.

В зависимости от модели сборка может состоять из 1 - 4 семисегментных групп. Например, индикатор АЛС333Б1 состоит из одной семисегментной группы, которая способна отображать всего лишь одну цифру от 0 до 9.

А вот светодиодный индикатор KEM-5162AS уже имеет две семисегментных группы. Он является двухразрядным. Далее на фото показаны разные светодиодные семисегментные индикаторы.

Также существуют индикаторы с 4-мя семисегментными группами - четырёхразрядные (на фото - FYQ-5641BSR-11). Их можно использовать в самодельных электронных часах.

Как обозначаются семисегментные индикаторы на схемах?

Так как семисегментный индикатор - это комбинированный электронный прибор, то изображение его на схемах мало отличается от его внешнего вида.

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

Особенности семисегментных индикаторов.

Несмотря на кажущуюся простоту этой детали и у неё есть особенности.

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

Вот, например, цоколёвка уже знакомого нам 4-ёх разрядного индикатора FYQ-5641BSR-11 .

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

Кроме небольших индикаторов есть большие и даже очень большие. Их можно увидеть в общественных местах, обычно в виде настенных часов, термометров, информеров.

Чтобы увеличить размеры цифр на табло и одновременно сохранить достаточную яркость каждого сегмента, используется несколько светодиодов, включенных последовательно. Вот пример такого индикатора - он умещается на ладони. Это FYS-23011-BUB-21 .

Один его сегмент состоит из 4 светодиодов, включенных последовательно.

Чтобы засветить один из сегментов (A, B, C, D, E, F или G), нужно подать на него напряжение в 11,2 вольта (2,8V на каждый светодиод). Можно и меньше, например, 10V, но яркость тоже уменьшится. Исключение составляет децимальная точка (DP), её сегмент состоит из двух светодиодов. Для неё нужно всего 5 - 5,6 вольт.

Также в природе встречаются двухцветные индикаторы. В них встраиваются, например, красные и зелёные светодиоды. Получается, что в корпус встроено как бы два индикатора, но со светодиодами разного цвета свечения. Если подать напряжение на обе цепи светодиодов, то можно получить жёлтый цвет свечения сегментов. Вот схема соединений одного из таких двухцветных индикаторов (SBA-15-11EGWA).

Если коммутировать выводы 1 (RED ) и 5 (GREEN ) на "+" питания через ключевые транзисторы, то можно менять цвет свечения отображаемых чисел с красного на зелёный. А если же одновременно подключить выводы 1 и 5, то цвет cвечения будет оранжевым. Вот так можно баловаться с индикаторами .

Управление семисегментными индикаторами.

Для управления семисегментными индикаторами в цифровых устройствах используют регистры сдвига и дешифраторы. Например, широко распространённый дешифратор для управления индикаторами серии АЛС333 и АЛС324 - микросхема К514ИД2 или К176ИД2 . Вот пример .

А для управления современными импортными индикаторами обычно используются регистры сдвига 74HC595 . По идее, управлять сегментами табло можно и напрямую с выходов микроконтроллера. Но такую схему используют редко, так как для этого требуется задействовать довольно много выводов самого микроконтроллера. Поэтому для этой цели применяются регистры сдвига. Кроме этого, ток, потребляемый светодиодами знакосегмента, может быть больше, чем ток, который может обеспечить рядовой выход микроконтроллера.

Для управления большими семисегментными индикаторами, такими как, FYS-23011-BUB-21 применяются специализированные драйверы, например, микросхема MBI5026 .

Что внутри семисегментного индикатора?

Ну и немного вкусненького. Любой электронщик не был бы таковым, если бы не интересовался "внутренностями" радиодеталей. Вот что внутри индикатора АЛС324Б1.

Чёрные квадратики на основании - это кристаллы светодиодов. Тут же можно разглядеть золотые перемычки, которые соединяют кристалл с одним из выводов. К сожалению, этот индикатор уже работать не будет, так как были оборваны как раз эти самые перемычки . Но зато мы можем посмотреть, что скрывается за декоративной панелькой табло.

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

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

Началось все с того, что я, исследуя файловую систему своего 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, но, вероятно, может работать и на других устройствах. Напишите мне, получится или не получится фокус на Вашем телефоне.