Страница 1 из 2
Энкодер + Attiny13 + RGB LED
Добавлено: Пн сен 21, 2009 17:33:36
AlexDX
Привет котам) Есть задумка: собрать устройство на микроконтроллере для подсветки чего-либо RGB светом. В схеме будет использоваться энкодер, для установки необходимого цвета света, микроконтроллер Attiny13 с 3-мя программными ШИМ на выходе и RGB светодиод (ну или 3). В программировании микроконтроллеров имею очень маленький опыт. Хотелось бы послушать мнения матерых котов по данному девайсу.
И еще опишу задумку работы устройства: включили. светодиод не светит. нажимаем на энкодер кратковременно, несколько раз моргает свет, силу которого устанавливаем вращением. видим соответствующий свет. так для каждого цвета. на последнем (синем) чтобы применить установки тоже кратковременно нажимаем на энкодер. все, устройство работает в статическом режиме, то есть всегда видим тот цвет, который установили. при долговременном нажатии на энкодер (около 3 сек) включается автомвтический режим, в котором покругу свет пробегает все оттенки (что-то типа R->max, G->max, R->min, B->max, G->min, R->max, B->min. и так по кругу)
Добавлено: Пн сен 21, 2009 18:44:24
AlexDX
Вот набросал примерную схему в Proteus 7.6 SP0.
Добавлено: Пн сен 21, 2009 21:29:48
AlexDX
для начала хочу сделать обработку сигналов с энкодера. идея в принципе такая: по фронту первого канала необходимо вызывать прерывание и уже в нем проверять второй канал. если на втором канале лог. 1 - значит крутим вперед, если лог. 0 - назад. скажите, на Attiny13 есть даташиты на русском? ну или на семейство? несовсем все понятно с прерыванием, как его вызвать? обычной проверкой ножки порта? P.S. что-то никто не отвечает...(
Добавлено: Пн сен 21, 2009 22:07:21
sema
даташита на русском не встречал. с контроллерами раньше дело имели? на чем пишете (си? асм?)? почему именно тини13?
хотя вру, на
www.gaw.ru есть описалово на мегу128
Добавлено: Пн сен 21, 2009 22:44:38
AlexDX
sema, да, бегущий огонь делал и крутил шаговик от принтера... на этом все закончилось. пишу на СИ в CodeVision. отлаживаю в протеусе и AVRStudio. тини - потому что маленькая, и ножек как раз хватает. посоветуете что-то другое? P.S. спасибо за ссылку)
Добавлено: Пн сен 21, 2009 23:12:15
sema
отсутствие ОЗУ для си потенциальный источник проблем, посоветую мегу8, 48, 88 или тини2313
лишние ноги это хорошо - можно выводить отладочную информацию
кстати для тини2313 где-то видел описание на великом и могучем
Добавлено: Вт сен 22, 2009 08:46:21
Секретный кот
sema писал(а):отсутствие ОЗУ для си потенциальный источник проблем
А почему отсутствие? 64 байта уже не считаются?

Добавлено: Вт сен 22, 2009 09:11:16
GP1
поищи в сети книгу А.В.Евстифеева "Микроконтроллеры AVR семейства tiny" - это качественный перевод DS по семейству.
ЗЫ: С-щный код боюсь великоват будет для тиньки
Добавлено: Вт сен 22, 2009 11:55:15
AlexDX
посмотрел даташит на мегу8 - три канала PWM, памяти побольше. наверное на ней остановлюсь. но остается много незадействованных ножек... возникает вопрос к знатокам: если к этой задумке еще прикошачить 3-4 семисегментных индикатора, чтобы не вслепую "крутить ручку", не будет ли это сказываться на работе ШИМ? у нее ведь вроде свои таймеры!?
Добавлено: Вт сен 22, 2009 14:57:54
GP1
а смысл? что на них отображаться будет?
может проще взять что-нибудь из tiny25/45/85 если памяти не хватит, а так, те же 6 ног.
Добавлено: Вт сен 22, 2009 15:15:59
ARV
да должно хватить тини13 для этой задачи даже если на Си - че там за проблемы-то? 3 канала программного ШИМ да энкодер... вон я задачку предлагал народу - так там в тини13 кучу ШИМ-каналов влепили и кучу кнопок

Добавлено: Вт сен 22, 2009 15:56:58
AlexDX
GP1 писал(а):а смысл? что на них отображаться будет?
может проще взять что-нибудь из tiny25/45/85 если памяти не хватит, а так, те же 6 ног.
будет отображаться интенсивность (скажем, в процентах)
Добавлено: Вт сен 22, 2009 16:24:42
AlexDX
коты, поможете с написанием программы и прошивкой?)
Добавлено: Вт сен 22, 2009 16:43:17
GP1
ARV писал(а):да должно хватить тини13 для этой задачи даже если на Си - че там за проблемы-то? 3 канала программного ШИМ да энкодер... вон я задачку предлагал народу - так там в тини13 кучу ШИМ-каналов влепили и кучу кнопок
дык там на асме...
AlexDX писал(а):sema...пишу на СИ в CodeVision...
я пас...

Добавлено: Вт сен 22, 2009 16:49:28
sema
Секретный кот писал(а):sema писал(а):отсутствие ОЗУ для си потенциальный источник проблем
А почему отсутствие? 64 байта уже не считаются?

потому и потенциальная

Добавлено: Ср сен 23, 2009 20:07:50
AlexDX
помогите плиз с шим... прилагаю схемку код и прошивку, там по нажатию на кнопку В1 должна меняться скважность. этого не происходит. может у кого есть хорошее описание примера ШИМ и регистров, что там к чему...?
Добавлено: Чт сен 24, 2009 06:02:30
NiceMAN
AlexDX писал(а):посмотрел даташит на мегу8 - три канала PWM, памяти побольше. наверное на ней остановлюсь. но остается много незадействованных ножек... возникает вопрос к знатокам: если к этой задумке еще прикошачить 3-4 семисегментных индикатора, чтобы не вслепую "крутить ручку", не будет ли это сказываться на работе ШИМ? у нее ведь вроде свои таймеры!?
Делаешь аппаратный ШИМ, он будет работать в фоновом режиме, плюс по прерываниям по переполнению таймера делаешь динамическую индикацию на 3-х разрядах (0-255) "яркость в у.е." .
В основном цикле программы опрашиваешь энкодер и кнопку. Превое нажатие кнопки - R +/-, второе нажатие - записал R в регистр сравнения таймера - G +/-, третье нажатие - записал G в регистр сравнения таймера - B +/-, четвертое нажатие - записал B в регистр сравнения таймера. Как то так.
Добавлено: Чт сен 24, 2009 07:07:43
NiceMAN
Если отказаться от энкодера - можешь попробовать мою схему на меге8 с 6-ю кнопками:
+R, -R, +G, -G, +B, -B.
Исходник на асме во вложении, разберешься с аппаратным ШИМом, там все просто
Добавлено: Пт сен 25, 2009 00:19:17
AlexDX
всем спасибо! ассемблер вообще не могу понять... посмотрите проект. в авр студио работет все как надо, а вот протеус не симулирует все так, как надо... интересно, почему?
Добавлено: Пт сен 25, 2009 08:10:34
GP1
для МК истина в последней инстанции - железо. а всякие там протеусы-шпротеусы это только для прикидки.