Здравствуйте, товарищи! Вот смотрите, у каждого цвета, есть шестнадцатеричный код, так? например, 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 Сообщений: 19745 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: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 с точки зрения и программы для ПК и для контроллера.
Наводчик ПКП писал(а):
Извините за такое количество глупых вопросов, я реально не могу понять как это должно работать
Ну тут в качестве входного сигнала используется напряжение разной величины, а у вас планируется задание яркости цифровым кодом, так что это не много не то.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения