Помогите с RGB на PIC

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Помогите с RGB на PIC

Сообщение Аlex »

Код я свой выложил Вам, попробуйте разобраться с ним. Если что, спрашивайте, ответим.
Набор программ у меня такой же как и у Soir.
А начинать, конечно же, нужно с обычной мигалки светиком. Затем можно кнопку добавить, поопрашивать её, и т.д..

PS: Не могу найти как подписаться на тему ((( Если кто знает, подскажите плиз.
Аватара пользователя
breaker
Открыл глаза
Сообщения: 47
Зарегистрирован: Чт сен 10, 2009 14:14:45
Откуда: Минск

Re: Помогите с RGB на PIC

Сообщение breaker »

7 баллов из 10- по мне так не заучка но и не неучь)) ленивый я очень-как котЭ)) :))
71 из 100 -для централизованного тестирования ваще ништяк, чесно признаться я думал что меньше наберу) учась в обычной школе а не гимназии например)

теперь по делу:
Proteus 7.6 SP0 v2.0.1 -вот такой протеус,пойдёт? или надо SP4 обязательно?
MPLAB 8.40 нету, есть MPLAB 8.30- подойдёт? или нужно найти 8.40?
компилятор не могу понять какая версия,вроде так:HI-TECH Universal toolsuite или РIСС STD 9.60 PL3 короче я хз :(
sPlan 6.0 есть) хоть что то хорошо)
Аватара пользователя
breaker
Открыл глаза
Сообщения: 47
Зарегистрирован: Чт сен 10, 2009 14:14:45
Откуда: Минск

Re: Помогите с RGB на PIC

Сообщение breaker »

скачал я вот такую книгу :
http://www.bookarchive.ru/computer/prog ... i-pic.html

решил сперва немного почитать, общее представление о том что такое МК расширить. уже возникли вопросы:

1) байт состоит из бит?
2)регистры- что это такое? как я понял это специальные байты, биты которых (их ещё флагами или разрядами называют, правильно?) можно изменить и тем самым разрешить или запретить какие нибудь функции МК.

3)в книге пишут и про AVR, я боюсь запутаться. про них тоже важно читать или можно опускать инфу про AVR?
Аватара пользователя
pazak
Прорезались зубы
Сообщения: 243
Зарегистрирован: Пт фев 26, 2010 03:33:02
Откуда: Донецк

Re: Помогите с RGB на PIC

Сообщение pazak »

Извините, что встреваю, я всё таки посоветую начать с Ассемблера для PIC. Дело в том, что когда Вы будете писАть программу на асме, Вы будете чётко представлять себе что в этот момент происходит в контроллере.
Я так понял, что Вы решили начать с PIC-ов, тогда наверное АВР не стоит трогать, потом когда разберётесь с одними можно начать разбираться с другими, иначе будет каша :dont_know:
И от себя лично посоветую сходить сюда, я начинал именно с этого.

Удачи.
С уважением.
Аватара пользователя
breaker
Открыл глаза
Сообщения: 47
Зарегистрирован: Чт сен 10, 2009 14:14:45
Откуда: Минск

Re: Помогите с RGB на PIC

Сообщение breaker »

расскажите а как именно по принципу работает ваши RGB , я так понимаю счётчики используете, а сколько? их в F628A вроде бы 3 шт., наводит на мысль что вы 3 и использовали.....а как кнопки опрашиваете?
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Помогите с RGB на PIC

Сообщение Soir »

breaker писал(а):расскажите а как именно по принципу работает ваши RGB , я так понимаю счётчики используете, а сколько? их в F628A вроде бы 3 шт., наводит на мысль что вы 3 и использовали.....а как кнопки опрашиваете?

Используется один счетчик - TMR0 для формирования временного интервала. При наступлении прерывания от переполнения TMR0 - счетчик количества прерываний (от 0 до 255 - количество градаций яркости) увеличивается на единицу. Затем по очереди значение этого счетчика сравнивается с установленными значениями яркости каждого канала, если значение счетчика меньше значения яркости - канал включается. Если больше - выключается. Вот фрагмент управляющей программы, показывающий работу со счетчиком, выполняется при каждом прерывании TMR0.
//----------
void display () {
if (count < 255) {
count ++;
}
else {
count = 0;
}
//----------
if (count < bright_R) {
led_R = 1;
}
else {
led_R = 0;
}
//----------
if (count < bright_G) {
led_G = 1;
}
else {
led_G = 0;
}
//----------
if (count < bright_B) {
led_B = 1;
}
else {
led_B = 0;
}
}
//----------
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Помогите с RGB на PIC

Сообщение Soir »

breaker писал(а):…а как кнопки опрашиваете?

Каждые примерно 0,1 сек проверяется состояние соответствующего входа от кнопки. Если кнопка нажата – выполняется увеличение или уменьшение установленного значения яркости для данного канала. На самом деле несколько сложнее. Вычисляется было ли длинное нажатие или короткое, подготавливается запись в EEPROM… Код не привожу его надо долго описывать. Я весь проект сбросил в Вам в личку, что не понятно – спрашивайте.
-Light-
Родился
Сообщения: 4
Зарегистрирован: Чт окт 21, 2010 03:01:23

Re: Помогите с RGB на PIC

Сообщение -Light- »

а можно и мне исходники скинуть, какраз нечто похожее паяю
Аватара пользователя
breaker
Открыл глаза
Сообщения: 47
Зарегистрирован: Чт сен 10, 2009 14:14:45
Откуда: Минск

Re: Помогите с RGB на PIC

Сообщение breaker »

а что если не секрет, поделитесь с нами вашими идеями? :)
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Помогите с RGB на PIC

Сообщение Soir »

-Light- писал(а):а можно и мне исходники скинуть, какраз нечто похожее паяю

Отправил в личку два варианта - без кварца и с кварцем 20МГц.
lelic
Родился
Сообщения: 13
Зарегистрирован: Вт янв 26, 2010 20:39:52
Откуда: Vitebsk BY

Re: Помогите с RGB на PIC

Сообщение lelic »

Доброго времени всем, вот это может поможет http://avrhobby.ru/index.php?option=com ... &Itemid=53.
Извените что в чужой теме ищу себе схему простого RGB контроллера, пока без результатов(, если у кого есть какой вариант - подскажите плиз. Мне нужно тоже самое что в этой теме, только управление не от кнопок, а энкондером. Крутиш ручку и меняется палитра цветов, с памятью последнего состояния. Видел в инете готовое изделие, там еще реализованно при нажатии на энкондер и врещении меняется яргость. К сожелению в программировании я ни как(.
Хочу использовать для квартирной подсветки, кнопками подбирать нужный оттенок мякго говоря неудобно, даже когда делается это редко.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Помогите с RGB на PIC

Сообщение Soir »

lelic писал(а): Мне нужно тоже самое что в этой теме, только управление не от кнопок, а энкондером. Крутиш ручку и меняется палитра цветов, с памятью последнего состояния.

Давайте Ваш энкодер. Посмотрю, что можно сделать. Это их надо 3 штуки?
lelic
Родился
Сообщения: 13
Зарегистрирован: Вт янв 26, 2010 20:39:52
Откуда: Vitebsk BY

Re: Помогите с RGB на PIC

Сообщение lelic »

Нет один, смысл такой - крутишь меняется вся палитра, (пользовался такой реализацией в автомагнитоле alpine 983х, плавно менялась подсветка панели, можно подобрать идеально в цвет подсветки приборов), т.е. от одной ручки вся радуга, оборотов конечно надо сделать много от конца до конца (точно не вспомню более 10). Энкодер можно поставить любой, но желательно по больше шагов на оборот. Незнаю но по мойму такая реализация намного лучше чем кнопочная, тем более в схеме менять ничего значительного не нужно, только вместо кнопок - энкодер к портам контроллера, а прошивку надо. Тем более очень удобно монтировать в стене, корпус взять от диммера которые продаются для регулировки освещения, нажатием можно вкл/выкл освещение.
Да и еще, 256 градаций по каждому цвету не надо, устанешь крутить, насколько я понимаю (поправте если не так) можно сделать примерно так 0-10-20-30 (извеняюсь если не корректно выразился)
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Помогите с RGB на PIC

Сообщение Soir »

lelic писал(а):... смысл такой - крутишь меняется вся палитра...
Да и еще, 256 градаций по каждому цвету не надо, устанешь крутить, насколько я понимаю (поправте если не так) можно сделать примерно так 0-10-20-30 ...

Дайте мне алгоритм по каждому цвету. То есть, покрутил на один шаг R=10, G=0, B=0; второй - R=10, G=10, B=20... Желательно, чтобы была какая-то закономерность в работе энкодера как на увеличение яркости каналов, так и на уменьшение.
lelic
Родился
Сообщения: 13
Зарегистрирован: Вт янв 26, 2010 20:39:52
Откуда: Vitebsk BY

Re: Помогите с RGB на PIC

Сообщение lelic »

R255 G0 B0
R255 G100 B0
R255 G200 B0
R180 G255 B0
R70 G255 B0
лучше открыть paint или фотошоп там по палитре сразу будет понятен алгаритм смены цвета. Я даже переборщил
0-10-20-30
, шаг можно будет и по крупнее.
Т.к я планирую собрать с нуля, мне все равно на каком контроллере это будет реализованно.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Помогите с RGB на PIC

Сообщение Soir »

lelic писал(а):R255 G0 B0
R255 G100 B0
R255 G200 B0
R180 G255 B0
R70 G255 B0
лучше открыть paint или фотошоп там по палитре сразу будет понятен алгаритм смены цвета. Я даже переборщил

Кажется понял. Белого не будет?
lelic писал(а):шаг можно будет и по крупнее.

Я имел ввиду шкалу в процентах 0-10-20...100. То есть 10 градаций каждого цвета. Теперь, я так понимаю, линию палитры нужно разбить на 10 частей?
lelic писал(а):Т.к я планирую собрать с нуля, мне все равно на каком контроллере это будет реализованно.

PIC16F628A.
lelic
Родился
Сообщения: 13
Зарегистрирован: Вт янв 26, 2010 20:39:52
Откуда: Vitebsk BY

Re: Помогите с RGB на PIC

Сообщение lelic »

То есть 10 градаций каждого цвета. Теперь, я так понимаю, линию палитры нужно разбить на 10 частей?

Да я думаю 10-15 частей каждого цвета будет достаточно.
Мда про белый я как то забыл, мне не критично, но если вас не затруднит, то может как то можно реализовать. На энкодере имеется кнопка, на нее бы повесить вкл/выкл.
Мне очень не удобно озадачивать людей своими просьбами, так что как сделаете так и будет, я благодарен за любой труд. Я в свою очередь постораюсь по быстрее дать отчет о работе данного контроллера.
Вот нашел http://www.ledart.ru/catalog/9/74/ хочется собрать упращенный вариант такого.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Помогите с RGB на PIC

Сообщение Soir »

lelic писал(а):Мда про белый я как то забыл, мне не критично, но если вас не затруднит, то может как то можно реализовать. На энкодере имеется кнопка, на нее бы повесить вкл/выкл..

Может сделать так:
кнопка на энкодере нажата - регулировка белого от 0 до 100%;
кнопка на энкодере отжата - регулировка цветной палитры.
Правда при этом будут неудобства включения/выключения из режима регулировки палитры.
Или так:
одно нажатие на кнопку включает белый и режим регулировки яркости белого;
второе нажатие включает цветной режим;
третье - выключает все.
И далее по кругу.
Выбор алгоритма за Вами, я постараюсь превратить его в прошивку.
lelic
Родился
Сообщения: 13
Зарегистрирован: Вт янв 26, 2010 20:39:52
Откуда: Vitebsk BY

Re: Помогите с RGB на PIC

Сообщение lelic »

Тогда я бы остановился на этом
одно нажатие на кнопку включает белый и режим регулировки яркости белого;
второе нажатие включает цветной режим
И далее по кругу, т.е. нажатием будет переключаться белый/цветной, а выключать лучше тогда отдельным выключателем питания.
(после китайских фонариков в которых 5 режимов и все по кругу, мне кажется это не удобно)
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Помогите с RGB на PIC

Сообщение Soir »

lelic писал(а):Тогда я бы остановился на этом
одно нажатие на кнопку включает белый и режим регулировки яркости белого;
второе нажатие включает цветной режим
И далее по кругу, т.е. нажатием будет переключаться белый/цветной, а выключать лучше тогда отдельным выключателем питания.

Если белый вывести в ноль - будет соотвествовать выключенному.
А кнопка на энкодере с фиксацией?
Ответить

Вернуться в «Периферия»