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

Рис.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.

Был на днях в магазине электроники. Иногда в нем появляются различные б/у радиодетали по низкой цене. На этот раз увидел микросхему , так как стоила копейки купил не задумываясь. Решил сделать простенький индикатор моно сигнала. Почему моно, а не стерео? Потому что микросхема только одна. Второй канал доделаю потом...

Распечатав с помощью лазерного принтера на глянцевой бумаге схему, приступим к переносу тонера (краски) на плату. Делаем это следующим образом: бумагу кладем на хорошо зачищенную наждачкой плату и нагретым утюгом в течении 10 минут водим по плате. Ждем пока плата остынет и под горячей водой аккуратно снимаем бумагу. Должно получиться следующее:

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

Лудим плату. После приступаем к пайке деталей. Сначала впаял микросхему. После светодиоды, а затем и остальные детали. Фото полностью готовой платы:


Работа схемы

Коротко расскажу о назначениях деталей. С помощью R2 настраиваем уровень входного сигнала. Через конденсатор С1 сигнал поступает на базу транзистора VT1, который служит усилителем. Резистор R3 задает смещение на базу транзистора. Дальше усиленный сигнал через конденсатор С2 «приходит» к диодам VD1 и VD2.

Отрицательный сигнал идет на минус, положительный на 5 ножку микросхемы. C3 и R4 служат в качестве фильтра. Чем выше напряжение на 5 ноге, тем больше загорается светодиодов. Кстати, если замкнуть 9 ножку на плюс, светодиоды будут загораться линейно. На видео можно посмотреть как эта штука работает.

Видео работы LED индикатора

В уроке узнаем о схемах подключения семисегментных светодиодных индикаторов к микроконтроллерам, о способах управления индикаторами.

Светодиодные семисегментные индикаторы остаются одними из самых популярных элементов для отображения цифровой информации.

Этому способствуют следующие их качества.

  • Низкая цена. В средствах индикации нет ничего дешевле светодиодных цифровых индикаторов.
  • Разнообразие размеров. Самые маленькие и самые большие индикаторы – светодиодные. Мне известны светодиодные индикаторы с высотой цифры от 2,5 мм, до 32 см.
  • Светятся в темноте. В некоторых приложениях это свойство чуть ли не решающее.
  • Имеют различные цвета свечения. Бывают даже двухцветные.
  • Достаточно малые токи управления. Современные светодиодные индикаторы могут подключаться к выводам микроконтроллеров без дополнительных ключей.
  • Допускают жесткие условия эксплуатации (температурный диапазон, высокая влажность, вибрации, агрессивные среды и т.п.). По этому качеству светодиодным индикаторам нет равных среди других типов элементов индикации.
  • Неограниченный срок службы.

Типы светодиодных индикаторов.

Семисегментный светодиодный индикатор отображает символ с помощью семи светодиодов – сегментов цифры. Восьмой светодиод засвечивает децимальную точку. Так что в семисегментном индикаторе 8 сегментов.

Сегменты обозначаются латинскими буквами от ”A” до ”H”.

Аноды или катоды каждого светодиода объединяются в индикаторе и образуют общий провод. Поэтому существуют индикаторы с общим анодом и общим катодом.

Светодиодный индикатор с общим анодом.

Светодиодный индикатор с общим катодом.

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

Подключать светодиодные индикаторы к микроконтроллеру необходимо через резисторы, ограничивающие ток.

Расчет резисторов такой же, как для отдельных светодиодов.

R = (U питания - U сегмента) / I сегмента

Для этой схемы: I сегмента = (5 – 1,5) / 1000 = 3,5 мА

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

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

Засветится сегмент, на управляющем выводе которого будет сформирован высокий уровень (5 В).

Мультиплексированный режим управления светодиодными (LED) индикаторами.

Для подключения каждого семисегментного индикатора к микроконтроллеру требуется восемь выводов. Если индикаторов (разрядов) 3 – 4, то задача становится практически не выполнимой. Просто не хватит выводов микроконтроллера. В этом случае индикаторы можно подключить в мультиплексированном режиме, в режиме динамической индикации.

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

Для подключения трех индикаторов потребовалось 11 выводов, а не 24, как при статическом режиме управления.

При динамической индикации в каждый момент времени горит только одна цифра. На общий вывод одного из разрядов подается сигнал высокого уровня (5 В), а на выводы сегментов поступают сигналы низкого уровня для тех сегментов, какие должны светиться в этом разряде. Через определенное время зажигается следующий разряд. На его общий вывод подается высокий уровень, а на выводы сегментов сигналы состояния для этого разряда. И так для всех разрядов в бесконечном цикле. Время цикла называется временем регенерации индикаторов. Если время регенерации достаточно мало, то человеческий глаз не заметит переключения разрядов. Будет казаться, что все разряды светятся постоянно. Для исключения мерцания индикаторов считается, что частота цикла регенерации должно быть не менее 70 Гц. Я стараюсь использовать не менее 100 Гц.

Схема динамической индикации для светодиодов с общим катодом выглядит так.

Меняется полярность всех сигналов. Теперь на общий провод активного разряда подается низкий уровень, а на сегменты, которые должны светиться – высокий уровень.

Расчет элементов динамической индикации светодиодных (LED) индикаторов.

Расчет несколько сложнее, чем для статического режима. В ходе расчета необходимо определить:

  • средний ток сегментов;
  • импульсный ток сегментов;
  • сопротивление резисторов сегментов;
  • импульсный ток общих выводов разрядов.

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

Выберем средний ток сегмента 1 мА.

Теперь рассчитаем импульсный ток сегмента. Чтобы обеспечить требуемый средний ток, импульсный ток должен быть в N раз больше. Где N число разрядов индикатора.

I сегм. имп. = I сегм. средн. * N

Для нашей схемы I сегм. имп. = 1 * 3 = 3 мА.

Рассчитываем сопротивление резисторов, ограничивающих ток.

R = (U питания - U сегмента) / I сегм. имп.

R = (5 – 1,5) / 0.003 = 1166 Ом

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

I разряда имп. = I сегм. имп. * 8

Для нашей схемы I разряда имп. = 3 * 8 = 24 мА.

  • сопротивление резисторов выбираем 1,1 кОм;
  • выводы микроконтроллера управления сегментами должны обеспечивать ток не менее 3 мА;
  • выводы микроконтроллера выбора разряда индикатора должны обеспечивать ток не менее 24 мА.

При таких значениях токов индикатор может быть подключен непосредственно к выводам платы Ардуино, без использования дополнительных ключей. Для ярких индикаторов, таких токов вполне достаточно.

Схемы с дополнительными ключами.

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

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

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

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

Для выбора разряда в этой схеме необходимо сформировать сигнал высокого уровня. Соответствующий ключ откроется и замкнет общий вывод разряда на землю.

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

Ключи для индикаторов с повышенным напряжением питания .

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

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

В этой схеме активный разряд выбирается высоким уровнем управляющего сигнала.

Между переключением разрядов индикатора на короткое время (1-5 мкс) должны выключаться все сегменты. Это время необходимо на завершение переходных процессов коммутации ключей.

Конструктивно выводы разрядов могут быть объединены как в одном корпусе многоразрядного индикатора, а может быть собран многоразрядный индикатор из отдельных одноразрядных. Более того, можете собрать индикатор из отдельных светодиодов, объединенных в сегменты. Так обычно поступают, когда необходимо собрать индикатор очень больших размеров. Все приведенные выше схемы будут справедливы и для таких вариантов.

В следующем уроке подключим семисегментный светодиодный индикатор к плате Ардуино, напишем библиотеку для управления им.

Рубрика: . Вы можете добавить в закладки.

Второй год реанимирую усилитель Солнцева, собранный 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

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

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

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