Управление RGB светодиодом Автор: Троценко Андрей

advertisement
Управление RGB светодиодом
Автор: Троценко Андрей Александрович,
Ученик 11 “Б” класса МБОУ СОШ № 1
Ст. Архонская, АНО ВЦНМО.
Научный руководитель: Макаренко Мария Дмитриевна.
Ведение
Мы каждый день используем компьютер и наверно не задумываются как же
он работает. Но компьютер сложное устройство, в котором имеется большое
число отдельных модулей, каждый из которых содержит интересные
технические решения. Я решил посмотреть глубже и первыми задачи
которые перед собой поставил:
1. Понять как работает клавиатура.
2. Рассмотреть работу RGB светодиода, потому что он похож на
работу с пикселями монитора.
3. Собрать устройство, которое будет управлять RGB светодиодом
посредством клавиатуры.
Как работает клавиатура
Клавиатура выполнена, как правило, в виде отдельного устройства,
подключаемого к компьютеру тонким кабелем. Малогабаритные блокнотные
компьютеры содержат встроенную клавиатуру.
Что же находится внутри клавиатуры? Оказывается, там есть компьютер,
который называется контроллер, который состоит из одной микросхемы и
выполняет специализированные функции. Когда вы нажимаете на клавиши,
он посылает номер нажатой клавиши в центральный компьютер.
Если рассмотреть сильно упрощенную принципиальную схему клавиатуры,
представленную на рисунке, можно заметить, что все клавиши находятся в
узлах матрицы (рис. 2.1).
Рис.2.1. Упрощенная схема клавиатуры
Все горизонтальные линии матрицы подключены через резисторы к
источнику питания +5 В. Клавиатурный компьютер имеет два порта выходной и входной. Входной порт подключен к горизонтальным линиям
матрицы (X0-X4), а выходной - к вертикальным (Y0-Y5).
Устанавливая по очереди на каждой из вертикальных линий уровень
напряжения, соответствующий логическому нулю, клавиатурный компьютер
опрашивает состояние горизонтальных линий. Если ни одна клавиша не
нажата, уровень напряжения на всех горизонтальных линиях соответствует
логической единице (так как все эти линии подключены к источнику питания
+5 В через резисторы).
Если вы нажмете на какую-либо клавишу, то соответствующая вертикальная
и горизонтальная линии окажутся замкнутыми. Когда на этой вертикальной
линии процессор установит значение логического нуля, то уровень
напряжения на горизонтальной линии также будет соответствовать
логическому нулю.
Как только на одной из горизонтальных линий появится уровень логического
нуля, клавиатурный процессор фиксирует нажатие на клавишу. Он посылает
в центральный компьютер запрос на прерывание и номер клавиши в матрице.
Аналогичные действия выполняются и тогда, когда вы отпускаете нажатую
ранее клавишу.
Номер клавиши, посылаемый клавиатурным процессором, однозначно
зависит от схемы клавиатурной матрицы, но не от обозначений, нанесенных
на поверхность клавиш. Этот номер называется скан-кодом (Scan Code).
Слово scan ("сканирование"), подчеркивает тот факт, что клавиатурный
компьютер сканирует клавиатуру для поиска нажатой клавиши.
Обычно программе нужен не порядковый номер нажатой клавиши, а код,
соответствующий обозначению на этой клавише (код ASCII).
Код ASCII не связан напрямую со скан-кодом, так как одной и той же
клавише могут соответствовать несколько значений кода ASCII в
зависимости от состояния других клавиш. Например, клавиша с
обозначением «1» используется еще и для ввода символа «!» (если она была
нажата вместе с клавишей <Shift>).
Поэтому все преобразования скан-кода в код ASCII выполняются
программно.
Работа RGB- светодиода
Начну с того что такое вообще светодиод. Светодиод- это
полупроводниковый
прибор с электронно-дырочным
переходом,
создающий оптическое
излучение при
пропускании
через
него
электрического тока в прямом направлении.
Свечение возникает при рекомбинации электронов и дырок в области p-nперехода. Значит, прежде всего нужен p-n-переход, то есть контакт двух
полупроводников с разными типами проводимости. Для этого
приконтактные слои полупроводникового кристалла легируют разными
примесями: по одну сторону акцепторными, по другую - донорскими.
Но не всякий p-n-переход излучает свет. Почему? Во-первых, ширина
запрещенной зоны в активной области светодиода должна быть близка к
энергии квантов света видимого диапазона. Во-вторых, вероятность
излучения при рекомбинации электронно-дырочных пар должна быть
высокой, для чего полупроводниковый кристалл должен содержать мало
дефектов, из-за которых рекомбинация происходит без излучения. Эти
условия в той или иной степени противоречат друг другу.
Реально, чтобы сделать оба условия, одного р-п-перехода в кристалле
оказывается недостаточно, и приходится изготавливать многослойные
полупроводниковые структуры, так называемые гетероструктуры, за
изучение которых российский физик академик Жорес Алферов получил
Нобелевскую премию 2000 года.
Теперь что такое RGB схема.
Цветовая схема RGB является аддитивной, так как применяется в
электронных устройства вывода данных, таких как монитор, телевизор и так
далее. В ее составе лежат три цвета: красный (Red), зелёный (Green) и синий
(Blue). Может возникнуть логический вопрос: а почему именно эти три
цвета? Дело в том, что видимый спектр света при попадании на сетчатку
человеческого глаза, происходит обработку нашим мозгом, который, в свою
очередь, разбивает видимый спектр на три части: зеленую, красную и синюю,
и уже основываясь на эти цвета, происходит вычитание общей информации о
цвете. Поэтому, условно можно сказать, что цветовая схема RGB отражает
модель, по которой наш глаз воспринимает окружающий мир.
Кодирование цвета с помощью модели RGB удобно представить в виде
цветового куба. Каждому цвету на экране монитора соответствует точка
внутри этого куба. Начало координат соответствует черному цвету (полное
отсутствие любого цвета). На противоположной вершине куба находится
точка, соответствующая белому цвету (максимальная яркость для каждого
цвета). Вообще, единица соответствует максимальной яркости цвета
(красного, зеленого или синего), которую может выдать монитор.
Отрезок (0, 0, 0) – (1, 1, 1) описывает градации серого цвета.
Если взять любую точку внутри куба и провести отрезок к ней от начала
координат, то мы получим плавный переход определенного цвета от темного
оттенка к светлому.
На гранях куба расположены самые насыщенные цвета, внутри куба – менее
насыщенные (начинают подмешиваться серые оттенки).
Как подключать светодиод RGB.
На этом рисунке показан RGB светодиод. Чтоб его подключить к
микроконтроллеру, arduino uno, нужно подключить каналы 1,3,4 к трем
разным ШИМ-выходам(9,10,11) на микроконтроллере, подключать каждый
канал надо через резистор в 220 Ом.
Разработка устройства
Для моего проекта я выбрал клавиатуру 3х5 клавиш, т.е . Каждый столбец
отвечает за управление каждым выводом светодиода. А клавиши,
расположенные в строке отвечают за яркость соответствующей
составляющей RGB. Первая строка самая мощная- принимает значение
интенсивности равное 255, вторая - 191, третья - 127, четвертая - 63, а
последняя пятая будет отключать светодиод, то есть отправлять на светодиод
значение- 0.
Выглядеть это будет так.
Для создания моего устройства понадобились:
Микроконтроллер, который будет считывать
все данные и производить вычисления. Я взял
программируемую плату Arduino UNO
Герконы. Они будут работать в
качестве клавиши. Я их
выбрал, потому что они более
удобны
в
использовании,
долговечны и не громоздки.
Резисторы 1кОм и 220Ом для
5вольт.
Текстолит 60мм на 50 мм
RGB
светодиод,
будем управлять
которым
Магниты,
для
замыкания
контактов на герконе
Макетная плата, 170 входов(точек)
Для начало нарисуем 3 дорожки по вертикали лаком на текстолите. Далее
буду травить плату. Травить буду с помощью специального раствора- в 100
мл перекиси водорода(3 %) размешаю 100 грамм лимонной кислоты и 3
грамма соли. Все ингредиенты в свободном доступе. Травил я при комнатной
температуре около одного часа. Далее я снял лак, под котором были
дорожки, и за лудил плату.
Все соединяется по этой схеме:
Как работает программа:
Программа проверяет каждый аналоговый вход, на наличие напряжения на
нем. Если напряжение есть, то сохраняется значение, которое попало на
аналоговый вход, и номер аналогово входа. И далее программа сравнивает
значение аналогово входа и его номер с заданными параметрами каждой
клавиши, чтоб узнать которую мы нажали. Как только программа распознала
нажатую клавишу, то по дает определённую интенсивность на определённый
канал светодиода.
Заключение
В итоге у меня получилось собрать устройство, управляющее RGB
светодиодом, которое объединяет в себе модуль клавиатуру и принцип
работы монитора. При работе с проектом я закрепил знания о RGB палитре.
Актуальность моего проекта в том, что он мог бы помочь детям на уроках
информатике или на курсах робототехники, понять принцип работы
клавиатуры и монитора. В будущем я хотел бы разработать устройство,
управляющее не одним RGB светодиодом, а несколькими, то есть сделать
устройство, работающее как монитор компьютера.
Список использованной литературы.
 Как работает клавиатура
http://www.frolov-lib.ru/books/bsp/v33/ch2_1.htm
 RGB, Википедия
https://ru.wikipedia.org/wiki/RGB
 Цветовые схемы
http://scriptcoding.ru/2014/05/08/cvetovye-shemy-yandex-obmanzrenija/
 Светодиод: устройство, принцип работы, преимущества
http://duray.ru/customers/articles/detail.php?ELEMENT_ID=69
 RGB модель, Планета информатики
http://www.inf1.info/rgb
Скетч для Arduino:
void proverka (int c, int n)
{
if (analogRead(A1)>0 )
{c=analogRead(A1);
n=1;
}
else if (analogRead(A2)>0)
{c=analogRead(A2);
n=2;
}
else if (analogRead(A3)>0)
{c=analogRead(A3);
n=3;
}
else if (analogRead(A4)>0)
{c=analogRead(A4);
n=4;
}
else if (analogRead(A5)>0)
{c=analogRead(A5);
n=5;
}
}
void stroka (int b, int n)
{
if (n=1) analogWrite(b, 255);
else if (n=2) analogWrite(b, 191);
else if (n=3) analogWrite(b, 127);
else if (n=4) analogWrite(b, 63);
else if (n=5) analogWrite(b, 0);
}
void klavisha (int c, int n)
{
int b;
if (c=217) stroka(11, n);
else if (c=429) stroka(10, n);
else if (c=665) stroka(9, n);
}
void setup() {
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
int c=0;
int n=0;
proverka(c,n);
klavisha(c,n);
}
Как делался проект
Download