Поэкспериментируем с полноцветным светодиодом. На самом деле это сразу три светодиода в одном корпусе. Внутри находится красный, синий и зеленый светодиоды. Они соединены между собой по специальной схеме.
Рисунок 1. Внутренняя схема RGB светодиода
Как видно из схемы, аноды трех светодиодов соединены, а катоды нет. Поэтому у полноцветного светодиода 4 вывода — общий анод и три катода (бывают светодиоды, у которых, наоборот, общий катод).
Если внутри корпуса находятся красный, синий и зеленый светодиоды, то как же получаются другие цвета? Ведь полноцветный светодиод может светиться практически любым цветом. Все дело в восприятии цвета человеческим глазом. Оказывается, цвета могут смешиваться. Например, если одновременно горит красный и зеленый, то мы видим это как желтый, а красный и синий вместе дают фиолетовый.
Рисунок 2. Цветовая модель RGB
Именно так устроен монитор компьютера или дисплей твоего смартфона. Каждая точка на экране (пиксель) это на самом деле три точки (субпиксели) — красная, синяя и зеленая. Каждая из них светится с разной интенсивностью, и так получаются миллионы цветов. Когда все три субпикселя светятся на полную яркость, получается белый цвет, а когда все три погашены — мы видим черный.
Такая модель кодирования цвета называется аддитивная цветовая модель RGB (аббревиатура от английского Red, Green, Blue — Красный, Зеленый, Синий).
Кроме аддитивной существуют другие, например субтрактивная схема формирования цвета, используемая прежде всего в полиграфии для стандартной триадной печати. Она использует голубой, пурпурный и жёлтый цвета в роли основных, а также чёрный цвет. Схема CMYK обладает сравнительно с RGB меньшим цветовым охватом. Печать четырьмя красками, соответствующими CMYK, также называют печатью триадными красками.
Для того, чтобы не перепутать выводы RGB светодиода они выполнены с различной длиной.
Рисунок 3. Цоколевка RGB светодиода
Рисунок 4. Электрическая принципиальная схема эксперимента
Токоограничительные резисторы в схеме обязательны!
from machine import Pin, PWM _init() LedPinB = 15 LedPinG = 14 LedPinR = 13 ledB = Pin(LedPinB, Pin.OUT) ledG = Pin(LedPinG, Pin.OUT) ledR = Pin(LedPinR, Pin.OUT) pwmB = PWM(ledB) pwmG = PWM(ledG) pwmR = PWM(ledR) pwmB.freq(500) pwmG.freq(500) pwmR.freq(500) pwmB.duty(500) pwmG.duty(300) pwmR.duty(700)
В программе мы создали и настроили 3 объекта PWM
для трех светодиодов — красного, синего и зеленого. Задали для всех частоту ШИМ 500 герц и каждому цвету установили свою яркость. В итоге получили один суммарный цвет светодиода.
Подбери значения яркости трех цветов, чтобы получить розовый, фиолетовый и бирюзовый цвета.