===== Эксперимент 25. 7и сегментный LED индикатор ===== В современных электронных устройствах часто используются светодиодные или жидко- кристаллические 7-сегментные индикаторы для отображения цифр. В этом эксперименте мы изучим устройство такого индикатора. Индикатор состоит из 7 сегментов, выстроенных по контуру цифры 8. Каждый из сегментов можно зажигать независимо от других. Зажигая определенные сегменты, можно получить любую цифру от 0 до 9. Кроме того, индикатор имеет точку. Каждый сегмент имеет свое название, они именуются латинскими буквами от a до h. {{ :products:esp-iot:7s.2.png?nolink |}} В каждом сегменте установлен свой светодиод, и, когда на него подается напряжение, он светится. Получается, что LED-индикатор («LED» — это сокращенное названия светодиода по-английски «light emitting diode») — это сборка из 8-ми светодиодов в одном корпусе (7 сегментов и точка). Мы знаем, что у светодиода два вывода. Получается, что у 8-ми светодиодов 16 выводов, но у индикатора их всего 10. Просто для уменьшения количества выводов светодиоды внутри соединены специальным способом. У всех светодиодов соединены между собой катоды. Про такой индикатор говорят, что он «с общим катодом». {{ :products:esp-iot:7s.1.png?nolink |}} ==== Схема эксперимента ==== {{ :products:esp-iot:exp9_sch.png?nolink |}} //Рисунок 1. Электрическая принципиальная схема эксперимента// Токоограничительные резисторы обязательны! В схеме мы использовали токоограничительные резисторы на каждом светодиоде. Казалось бы проще поставить один резистор на катод, чем по резистору на каждый анод, но нет, такой вариант не является правильным. Дело в том, что ток через резистор будет зависеть от количества включенных сегментов, что будет влиять на их яркость. Иными словами — при переключении цифр на дисплее их яркость будет меняться в зависимости от количества включенных сегментов. Выглядит это очень некрасиво. {{ :products:esp-iot:exp9_mont.png?direct&600 |}} //Рисунок 2. Монтажная схема эксперимента// ==== Программный код эксперимента ==== from machine import Pin _init() ledA = Pin(14, Pin.OUT) ledB = Pin(13, Pin.OUT) ledC = Pin(4, Pin.OUT) ledD = Pin(5, Pin.OUT) ledE = Pin(12, Pin.OUT) ledF = Pin(16, Pin.OUT) ledG = Pin(15, Pin.OUT) ledA.on() ledB.off() ledC.on() ledD.on() ledE.off() ledF.on() ledG.on() ==== Дополнительное задание ==== * Измени код программы, чтобы получить другие цифры на дисплее.