Здравствуйте, товарищи! Вот смотрите, у каждого цвета, есть шестнадцатеричный код, так? например, FFFFFF - это белый, я так понимаю он делится на три части FF_FF_FF, где каждая пара символов, есть значения основных цветов, синего, красного и зеленого, правильно? И вот в чем вопрос, как можно преобразовать hex код в rgb? ну например, с компьютера посылаю код #FFBF00 в "преобразователь" и на обычном rgb светодиоде загорается Янтарный цвет, который соответствует этому коду. Я не могу понять сам принцип работы этого преобразователя, во что этот код преобразуется, ток, напряжение или что?! Кто просвящен, расскажите пожалуйста, необразованному?!
Интересуюсь я не просто, для расширения кругозора, а есть конкретная цель: есть компьютер, с небольшим сенсорным дисплеем (как устройство ввода/вывода информации) и к нему должен быть подключен rgb светодиод, вернее много светодиодов, и на компьютере, есть программа, примерно такого вида http://images.yandex.ru/yandsearch?p=2& ... mage&lr=56 светодиоды используются как подсветка, ну и в общем, выбрал понравившийся цвет, и таким же цвето загорелась подсветка...
Заголовок сообщения: Re: Преобразование шестнадцатеричного кода в RGB
Добавлено: Пт дек 07, 2012 10:24:11
Друг Кота
Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21 Сообщений: 19837 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения:0 Медали: 1
Наводчик ПКП писал(а):
есть значения основных цветов, синего, красного и зеленого, правильно?
Не совсем. Правильно красного, зелёного и синего.
Наводчик ПКП писал(а):
И вот в чем вопрос, как можно преобразовать hex код в rgb?
Зачем его преобразовывать, он и так в RGB формате. Каждое число — количество 255-х частей яркости конкретного цвета.
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
во что этот код преобразуется, ток, напряжение или что?!
Возможно в ток (светодиоды управляются током), но скорее всего в ШИМ, т.е. контроллер принимает код и выдает на выходе прямоугольный сигнал соответствующей скважности, которая на светодиоде благодаря инертности зрения превращается в яркость.
контроллер принимает код и выдает на выходе прямоугольный сигнал соответствующей скважности, которая на светодиоде благодаря инертности зрения превращается в яркость.
получается мне нужна меняющаяся скважность, которая "зависит" от входного кода? а как понять зависимость? и потом, если следовать из википедии, этот сигнал подавать на один вход компаратора, а на второй подавать опорный сигнал и получится то,что я задумал, ведь так?
получается мне нужна меняющаяся скважность, которая "зависит" от входного кода?
Да
Наводчик ПКП писал(а):
а как понять зависимость?
В каком смысл? Чем больше код, тем меньше скважность.
Наводчик ПКП писал(а):
и потом, если следовать из википедии, этот сигнал подавать на один вход компаратора, а на второй подавать опорный сигнал и получится то,что я задумал, ведь так?
Компаратор в аналоговом виде, в каком он описан в статье в вики вам не нужен. Данные (код) у вас передаются с компьютера, значит они в цифровой форме, т.е. нужен контроллер, который эти данные воспринимает, он же и будет сам формировать ШИМ сигнал. В контроллере есть таймер, это аналог линейно изменяющегося напряжения, компаратор там тоже есть и сравнивает он значение таймера с входным кодом. При управлении с компьютера можно обойтись без контроллера, но нужен COM-порт. На него можно программно выводить некоторый аналог ШИМ, но довольно низкого разрешения и очень затратно по времени (передавать нужно постоянно).
Чем больше код? вы имеете ввиду, например, что #000000 меньше чем #000001?
Engineer_Keen писал(а):
В контроллере есть таймер, это аналог линейно изменяющегося напряжения, компаратор там тоже есть и сравнивает он значение таймера с входным кодом.
Если я правильно понял, то внутренний таймер нужно поставить на определенную частоту и подавать ее на один из входов компаратора? А какая это должна быть частота? Форма сигнала - пила? И хватит ли одного внутреннего компаратора, ведь цветов - 3? значит нужно 3 компаратора?
Engineer_Keen писал(а):
При управлении с компьютера можно обойтись без контроллера, но нужен COM-порт.
ком порт есть, но вариант с контролером мне больше по душе, на нем все будет проще реализовать, да и по usb подключить...
Извините за такое количество глупых вопросов, я реально не могу понять как это должно работать
Чтобы лучше понять работу ШИМ, собрал схему регулятора, вот такую http://www.youtube.com/watch?v=evmkTWep07M только микросхему взял в эту http://www.allcomponents.ru/fairchild/mm74c14n.htm была "под рукой", впринципе работает как и нужно, меняется яркость каждого отдельного светодиода в сборке rgb светодиода, получил намного больше оттенков(даже получилось выделить оранжевый,золотой, нежно голубой(розовый), вообщем много разных), чем при простом подключении "комбинаций" светодиодов(9 цветов), но что то мне подсказывает, что я не то делаю.....
Чем больше код? вы имеете ввиду, например, что #000000 меньше чем #000001?
Нет, есть два понятия: скважность и обратная величина - коэффициент заполнения, так вот вторая как раз при большем коде будет больше, и яркость тоже больше.
Наводчик ПКП писал(а):
Если я правильно понял, то внутренний таймер нужно поставить на определенную частоту и подавать ее на один из входов компаратора? А какая это должна быть частота?
Частота зависит от разрядности, например если цвет задавать байтом, то разрядность 8 бит, а число отсчетов 256, таким образом, если например частота контроллера 8МГц, а делитель таймера 1, то частота ШИМ будет 8000000/256=31 250кГц. Но для оптики достаточно >50-100 Гц.
Наводчик ПКП писал(а):
Форма сигнала - пила?
В контроллере все цифровое, так что такого понятия там нет, но если построить график выходного кода таймера от времени, то да, это будет пила
Наводчик ПКП писал(а):
И хватит ли одного внутреннего компаратора, ведь цветов - 3? значит нужно 3 компаратора?
Зависит от периферии контроллера, у разных контроллеров есть разное количество ШИМ каналов, но всегда можно сделать это программно. Для этого нужна одна переменная для счетчика, и несколько для сравнения (сколько каналов). Через одинаковые промежутки времени, счетчик увеличивается на 1 и если значение =0 (переполнение), все выходы включаются, а если счетчик равен одной из переменных для сравнения, то этот выход отключается.
Наводчик ПКП писал(а):
ком порт есть, но вариант с контролером мне больше по душе, на нем все будет проще реализовать, да и по usb подключить...
С контроллером тоже можно подключить через ком-порт, и это сделать гораздо проще чем через USB с точки зрения и программы для ПК и для контроллера.
Наводчик ПКП писал(а):
Извините за такое количество глупых вопросов, я реально не могу понять как это должно работать
Ну тут в качестве входного сигнала используется напряжение разной величины, а у вас планируется задание яркости цифровым кодом, так что это не много не то.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения