Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
04.03.2012, 02:13
|
|
Частый гость
Регистрация: 04.10.2007
Адрес: Запорожье
Сообщений: 43
Сказал спасибо: 8
Сказали Спасибо 14 раз(а) в 13 сообщении(ях)
|
Re: И снова ШИМ
Сообщение от SAHA_T
|
но я ни разу не встреча светодиода который бы замыкал из нутри но я думаю что есть смысл поставить 1 сопротивление на каждую букву и поставить плавкий предохранитель на каждую букву думаю это будет правильно так как млин перепаять заново 444 светодиода это можно с ума сойти
|
SAHA_T, веришь, они таки бывают с КЗ. И в самый неподходящий момент. А 444 диода - день работы, если упереться. Смысл здесь в том, чтоб хоть как-то резисторами выровнять токи через каждый диод.
|
|
|
Сказали "Спасибо" leartis
|
|
|
04.03.2012, 02:17
|
|
Прописка
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
|
Re: И снова ШИМ
leartis Ты знаешь я это учту и наверное я так и сделаю но сперва нужно добиться результата
|
|
|
|
04.03.2012, 02:34
|
|
Прописка
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
|
Re: И снова ШИМ
сейчас разбираюсь с исходником
и есть некоторые вопросы
#define TMR 65380L //0xFF64 : 78 мкс (при тактовой 16МГц и делителе : 1 такт 128-разрядного ШИМ -- как это расчитывается и почему не оставить частоту прежней ?
volatile unsigned int почему просто не написать int в чем отличие ?
for(i=0;i‹128;i++) { почему не 256 ведь 8 бит ?
Kanal_0=i;
_delay_ms(n);
}
|
|
|
|
04.03.2012, 02:42
|
|
Прописка
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
|
Re: И снова ШИМ
TIMSK &= ~(1‹‹TOIE1); //запрещаем Ovf1 Что за регистры такие такие ?
TIMSK |= 1‹‹TOIE1; //Разрешить Ovf1
посмотрел в стидии и не нашол на таймере такого регистра TOIE1 TOIE2-есть а вот TOIE1-нет
|
|
|
|
04.03.2012, 02:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: И снова ШИМ
По поводу необходимости дросселя, отвечу всем спрашивающим.
Ведь с самого начала нас поставили перед выбором - или балластный резистор, или ШИМ.
Таким образом, применение ШИМа предполагало полный отказ от балластников.
И что мы в этом случае имеем? Достаточно мощный ключ (транзистор), питание 5 вольт, и несколько светодиодов, соединенных параллельно. При отпирании ключа все напряжение питания приложится к светодиодам, и им (или источнику питания)будет тяжеловато.
Понятно, что ток должен ограничиваться. Чем? От резисторов мы отказались. Тогда остается применить классическую схему для ШИМ - дроссель и диод.
Да, для частоты 100Гц дроссель потребуется неслабый.
А если мы отказываемся от дросселя, то придется вернуться к резисторам. В этом случае нам потребуется тот же 5-ваттный балластник, который будет ограничивать ток группы светодиодов.
Причем, что интересно и важно учесть, сопротивление этих балластников все равно придется подбирать под каждую группу (букву), в зависимости от количества светодиодов в ней. Чтобы не было непоняток, я этот момент расшифрую.
Если топикстартер хочет при помощи ШИМ выровнять яркость свечения всех букв, то у него на каждую букву получится некоторое индивидуальное значение скважности. Если он захочет только этим и ограничиться, то тогда - да, можно на каждую группу поставить небольшой резистор, ограничивающий ток на довольно большом уровне, затем подобрать константу ШИМ для каждой буквы, и все.
Но, когда речь идет о плавной регулировке яркости в каждом канале, тогда желательно привести все нагрузки к одинаковому начальному значению яркости. То есть, чтобы при одинаковой константе ШИМ была одинаковая яркость во всех каналах. Иначе придется каждый раз умножать заданное значение яркости на индивидуальную константу. А это требует времени, и лишняя головная боль.
Впрочем, можно эту константу учесть на этапе составления таблиц эффектов. Но это тоже не комильфо.
|
|
|
Сказали "Спасибо" Alex9797
|
|
|
04.03.2012, 03:04
|
|
Прописка
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
|
Re: И снова ШИМ
Alex9797 Да я с тобой полностью согласен и это еще раз доказывает что проще на каждый светодиод поставить сопротивление и запитать от 5 в не балуясь и тогда яркость каждого светодиода будет одинакова, но в этом нам помог leartis
for(i=0;i‹128;i++) { где 128 это максимальная яркость светодиода, правильно я понимаю
Kanal_0=i;
_delay_ms(n);
}
|
|
|
|
04.03.2012, 03:06
|
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: И снова ШИМ
Сообщение от SAHA_T
|
не пойму зачем мне дроселя ставить ведь индукции никакой нет
|
Управление с помощью ШИМ - это просто ключ ( полевой транзистор), который периодически замыкает нагрузку к полному напряжению питания на некоторое время и также периодически отключает. Если время замыкания равно половине периода, т.е. 50% замкнут, 50% разомкнут, то среднее напряжение на нагрузке равно половине питания. Причём, вторая половина питания нигде не рассеивается ввиде тепла. Что есть хорошо.
У Вас светодиоды, и не хочется использовать резисторы для ограгничения тока, а хочется подключить напрямую к ШИМу. Но тогда если в первой половине периода подать полное 5В напряжение питания, то ток через светодиод будет очень большой и светодиод просто сгорит. Все 444 светодиода сгорят.
Поэтому ставят индуктивность для усреднения тока. После неё этот средний ток можно регулировать скважностью ШИМа.
|
|
|
Сказали "Спасибо" Yurkin2007
|
|
|
04.03.2012, 03:16
|
|
Прописка
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
|
Re: И снова ШИМ
Yurkin2007 Спасибо за доскональное объяснение, теперь я точно понял, но сразу встречный вопрос как в данной ситуации рассчитывается индукция дроселя ведь она напрямую связанна с током нагрузки ?
|
|
|
|
04.03.2012, 03:21
|
|
Прописка
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
|
Re: И снова ШИМ
dosikus ткни плиз носом где в исходнике leartis расписано побитное присвоение яркости как ты приводил на примере
WM_PORT = Data;
if((Counter++)›=PWM_MAX)Counter=0;
Data = 0;
if (Counter ‹ PWM_val[0]) Data |= 0x01;
if (Counter ‹ PWM_val[1]) Data |= 0x02;
if (Counter ‹ PWM_val[2]) Data |= 0x04;
if (Counter ‹ PWM_val[3]) Data |= 0x08;
if (Counter ‹ PWM_val[4]) Data |= 0x10;
if (Counter ‹ PWM_val[5]) Data |= 0x20;
if (Counter ‹ PWM_val[6]) Data |= 0x40;
if (Counter ‹ PWM_val[7]) Data |= 0x80;
я не пойму как именно leartis изменяет яркость
leartis-давай колись
|
|
|
|
04.03.2012, 03:26
|
|
Частый гость
Регистрация: 04.10.2007
Адрес: Запорожье
Сообщений: 43
Сказал спасибо: 8
Сказали Спасибо 14 раз(а) в 13 сообщении(ях)
|
Re: И снова ШИМ
Сообщение от SAHA_T
|
сейчас разбираюсь с исходником
и есть некоторые вопросы
#define TMR 65380L //0xFF64 : 78 мкс (при тактовой 16МГц и делителе : 1 такт 128-разрядного ШИМ -- как это расчитывается и почему не оставить частоту прежней ?
volatile unsigned int почему просто не написать int в чем отличие ?
for(i=0;i‹128;i++) { почему не 256 ведь 8 бит ?
Kanal_0=i;
_delay_ms(n);
}
|
При частоте ШИМ в 100 Гц и разрядности 7 бит (128 градаций яркости) - период счетчика ШИМ равен 1/( 100*128 )=0,000078125 сек=78 мкс. Это кусок программы из рабочего проекта - ну вот так решил.
8 бит для Меги оказалось многовато, там было больше 16-ти каналов. Визуально разницы между 7 и 8 не заметил.
Цитата:
|
TIMSK &= ~(1‹‹TOIE1); //запрещаем Ovf1 Что за регистры такие такие ?
TIMSK |= 1‹‹TOIE1; //Разрешить Ovf1
|
TIMSK - регистр разрешения прерываний от таймеров
TOIE1 - флаг разрешения прерывания от таймера 1 в регистре TIMSK
В данном случае использовал таймер 1. Можно другой
Ovf1 - не обращай внимания, это обозначение прерывания по переполнению от таймера 1, исторически сложилось
PS. На всякий случай - программа написана в AVR Studio 5 (WinAVR)
Последний раз редактировалось leartis; 04.03.2012 в 03:34.
|
|
|
Сказали "Спасибо" leartis
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:23.
|
|