Перейти к содержанию

POlSS0N

Members
  • Постов

    51
  • Зарегистрирован

  • Посещение

Информация о POlSS0N

  • День рождения 28.10.1986

Информация

  • Пол
    Мужчина
  • Интересы
    Физика, цифровая обработка сигнала, импульсная техника.
  • Город
    Санкт-Петербург

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Достижения POlSS0N

Стажер

Стажер (3/14)

  • 10 постов на форуме
  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме
  • 10 лет  на форуме

Последние значки

2

Репутация

  1. POlSS0N

    Оптимизация кода

    Есть вот такой участок: temp += value; curval = (temp >> 14); temp <<= 10; temp >>= 10; CCPR1L=(curval >> 2); pwmt=(curval << 14) >> 10; CCP1CON=12+pwmt; TMR2IF=0; Это кусок процедуры прерывания по срабатыванию таймера TMR2 который управляет ШИМом. Собственно задача этого куска - сделать из 10-битного ШИМа псевдо 24-битный. Для этого существует 24-битное (short long) число-значение value и 24-битный текущий счетчик temp. По задумке каждый вызов таймера temp увеличивается на величину значения value и его старшие 10 бит загружаются в ШИМ и очищаются, а младшие разряды тем самым служат для возможности плавного псевдо24-битного регулирования, периодически увеличивая загружаемое значение. Однако несмотря на то, что тут использованы только сдвиги и сложения, по осциллографу видно, что за один прогон таймера эта процедура выполниться не успевает. Фактически она занимает три прогона, то есть порядка 3000 циклов. На мой взгляд тут максимум всё это дело тянет на 300-400 циклов. Можно ли как нибудь данную процедуру оптимизировать? Контроллер 16HV616@8MHZ компилятор hi-tech-picc v9.80
  2. Нашел даташиты на отдельные чип-диоды. Вобщем у всех цветастых диодов световая эффективность значительно ниже чем у белых диодов. У зеленых сравнимая, а у остальных - в 2-3-5 и даже 10 раз ниже в зависимость от цвета. Так что мой путь - теплый белый + синие для ухолоднения.
  3. Белый понятие растяжимое. С синим оттенком называется холодный белый, с желтым - теплый белый. Чему равен идеальный белый никто не знает) Ходят слухи что белый - это который соответствует спектру АЧТ с температурой 6500 кельвин, но я сколько не видел ламп с заявленной ЦТ 6500 они все синие почти как моя аватарка) RGB не хотелось только потому, что придется по три канала на каждую ленту контролировать, думал обойтись двумя, скомбинировав синий и желтый, но видать, не судьба. Остается вопрос - как найти нормальную по эффективности RGB? Даташитов на ленты где бы указывались световые характеристики нет вообще.
  4. Короче на моей ленте на три желтых диода идет 3 резистора по 33 ома. Итого 6 вольт падает на диодах и 6 на резисторах. У лучших белых диодов эффективность порядка 100 Лм/Вт. У моих "желтых" скорее всего порядка 30-50 Лм/Вт и делим пополам ибо пол мощности едят резисторы - получаем лента 15-25 Лм/Вт. Как раз в районе ламп накаливания и получается)
  5. Купил желтую диодную ленту. Оказалась оранжевой. Как найти настоящую желтую, чтобы при включении вместе с синей она давала белый, а не сиреневый, как у меня вышло) Купил две ленты по 36 ватт. В результате 72 ватта диодноленточного света светят раза в 2 слабее чем одна 12-ваттная диодная лампочка. Итого, таки я был прав эффективность там порядка ламп накаливания.
  6. Придумали интересную идею. Народ сдает на мыло задачки, администраторы группы их постят, на следующий день пишут правильный ответ. Но как оказалось, первый блин комом. Первый же "правильный ответ" оказался неправильным, ибо авторы задачи плохо читали даташит, схему из которой выложили. Но тут хотя бы автор задачи признал свою ошибку. Теперь же полный абзац) Итак, автор второй задачки утверждает (и администратор с ним согласен), что данная схема работает в автоколебательном режиме, и за счет магических переходных процессов позволяет крутить электродвигатель быстрее и с меньшими потерями!=) Сама схема собственно, вот она: Доказать автору, что данная схема не может работать потому что не может работать вообще мне не удалось) На наводящие вопросы он отвечает что там есть магические переходные процессы, в частности с момент пуска индуктивность(!) подает плюс питания на базу)) и вообще он собирал и всё "работает как часы как электронный предохранитель". Соответственно вопрос: как бы набрать в администрацию этой группы экспертный редакционный совет, чтобы хотя бы в настолько элементарные лужи не садиться на глазах у достопочтенной публики? Я лично готов участвовать в редакции за так)
  7. Вероятно я плохо объяснил проблему, либо все читали только 1 строчку. =) Я знаю какие по цвету диоды в принципе нужно иметь, чтобы это сделать. И схему тоже знаю, и контроллеры программировать умею. У меня проблема - из каких именно диодных продуктов это собрать. Если брать обычную диодную ленту с токоограничительными резисторами, у меня получится освещение по энергоэффективности не сильно выше ламп накаливания, ибо 90% мощности будут съедать эти самые резисторы. Соответственно вопрос в том, где может быть кто видел, можно найти ленты БЕЗ этих резисторов, просто ленты последовательно соединенных диодов, в которых нужно драйвером стабилизировать ток. Или может где можно заказать диодные сборки на радиаторе без драйвера? Ща например написал в оптоган, может они продадут светильники без драйвера под мою задачу))
  8. Хочу сделать освещение, чтобы я мог регулировать не только яркость, но и цветовую температуру. Соответственно мне нужны светодиодные ленты, либо модули уже собранные на радиаторе, но БЕЗ своих источников питания и без токоограничительных резисторов. В продаже же есть либо ленты с резисторами, либо светильники с встроенными драйверами, либо диодные модули без радиатора. А отдельные яркие диоды если ими набрать нужную мощность, выходят крайне дорого. что делать? Неужели придется покупать светильник и выковыривать родной драйвер, вымерять при каком токе работает там диодная сборка и прочее?
  9. Кстати, разобрал промышленный софт-стартер, и там именно так понижается стартовая мощность. При пуске он дает 1 волну из 3-х, затем в течении 0,5с увеличивает подачу до 100% и далее шунтирует симистор релешкой.
  10. Время одного преобразования - 4 мкс. Обработка результата преобразования - два int сложения и if с неравенством - около 20 инструкций по 0,5 мкс каждая. Итого дискретный шаг слежения - в районе 15 мкс. Скорость нарастания напряжения - 2*pi*50*sqrt(2)*220*cos(0)=~100 КВ/с. Умножаем - получаем неточность открытия вызванная дискретностью - 1.5 вольта, то есть порядка падения напряжения на самом симисторе. Так что попадание довольно точное. Проводил моделирование, никаких причин для беспокойства не заметил. В целом пуск через симисторы таким способом получается гораздо мягче чем через пускатель. Естественно постоянная работа в режиме пропуска волн не рекомендуется, но если нужно чтобы насос плавно подал давление, то секунда-две в таком режиме движку не повредит.
  11. Доселе невидел Спасибо за ликбез Не, я конечно, догадывался, что нечто подобное существует, однако оно по-видимому мало распространено. По меньшей мере все симисторные регуляторы, что я видел в продаже - фазные. Устройства плавного пуска. Такое простое снижение мощности требуется когда двигатель раскручивает систему с большой инерцией. Так-же полезно в мощных насосах, чтобы избежать ударов в трубах от запуска. Если имеется в виду блуждание частоты сети, то устойчива. Она же переход через ноль непосредственно контролирует.
  12. Обычный диммер, являющийся простейшим устройством регулировки переменного тока является фазным симисторным регулятором и представляет собой схему, открывающую напряжение в нагрузку в определенной фазе. Недостатком фазного управления является сильный скачок напряжения в момент включения нагрузки и требует подавление помех с помощью дросселей. Я же хочу представить идею синхронного регулирования. В этом типе регулирования нагрузка включается всегда при переходе напряжения через ноль, а регулирование осуществляется соотношением числа волн которые были поданы в нагрузку и числа пропущенных волн. Преимуществом его является практически полное отсутствие высокочастотных помех. С другой стороны недостатком является "моргание", то есть изменение средней мощности в нагрузке с низкими частотами, так что диммировать этим способом лампы освещения крайне не рекомендуется. Зато он отлично подходит для управления мощными нагрузками вроде обогревателей, и в особенности, двигателями вентиляторов, насосов, так как на них крайне неблагоприятно воздействуют те самые броски напряжения, что выдает схема фазного регулятора при включении. Простой аналоговой схемы которая бы отслеживала переход через ноль, и включала целое число волн с нужными соотношениями не существует, поэтому я пошел путем контроллера. В качестве такового подойдет почти любой простейший контроллер, имеющий два входа АЦП и по крайней мере еще один цифровой выход. Я же использовал PIC16HV616. Он имеет собственный регулятор питания, встроенный источник тактового сигнала, так что схема получилась с минимумом обвязки. Итак, прежде всего сетевое напряжение попадает через резистор на оптотранзистор. Диод VD1 защищает его светодиод от обратного включения. На вторичной части питание контроллера через резистор подается на фототранзистор и - вход АЦП контроллера AN7. Резисторы R2 и R3 нужно подобрать так, чтобы волна имела полную амплитуду от 0 до 5 вольт. На вход AN6 подается аналоговый сигнал который отвечает за регулировку мощности. Далее вывод RC5 через резистор R4 открывает оптосимистор MOC3022, который уже открывает силовой симистор BTA-41. Корпус ВТА-41 изолирован от внутренностей, так что он смазывается термопастой и сажается прямо на радиатор, который для защиты пользователя от удара током в случае повреждения симистора, заземляется. Программа контроллера должна быть устроена следующим образом: Выводы AN6, AN7 выбираются аналоговыми, остальные - цифровыми. Выводы, соответствующие AN6 и AN7 делаются входами, остальные - выходами. Настраивается прерывание по завершению преобразования. Первое преобразование запускается из main. Прерывание строится следующим образом. Работа устройства делится на 2 цикла: отслеживание напряжения и чтение аналога регулировки. Отслеживание напряжения делится на 2 фазы - фаза включения и фаза выключения. Фаза включения начинается когда значение аналога превысит около 900-1000 (из 1023). При достижении этого значения увеличиваем переменную состояния на значение мощности. Если она переполняется (после увеличения стала больше чем была), значит выставляем RC5 единицей (открываем симистор). Далее предсказываем следующее её увеличение. Если после следующего увеличения она не переполнится, значит перед следующей волной нужно выключить симистор, соответственно выставляем флаг нужно или не нужно будет его выключить. Устанавливаем флаг что фаза включения обработана. Фаза выключения начинается когда значение аналога станет ниже ~500. Читаем флаг потребности выключить симистор и если он установлен, устанавливаем RC5=0. Далее выставляем флаг ожидания фазы включения, меняем адрес читаемого аналогового входа на чтение из RC6, и выставляем флаг цикла чтения аналога регулировки. В цикле регулировки переводим прочитанный аналог в значение мощности типа int следующим образом power=analog << 6; power+= analog >> 4; таким образом изменению значения аналога 0..1023 будет соответствовать изменение значения переменной мощности от 0 до 65535. И наконец, меняем адрес читаемого аналогового входа на чтение из RC7 и выставляем флаг цикла отслеживания напряжения. Значение аналога когда нужно открывать симистор выбирается с помощью осциллографа. Если у вас нет осциллографа, приемлемое значение можно установить на слух. Когда включение нагрузки происходит при существенном напряжении, происходит характерный щелчек. Его хорошо слышно от паяльника, чайника и других приборов. Если вы нашли нужное значение, включение нагрузки при открытии симистора будет беззвучным. Управляться данная схема может как с помощью переменного резистора вручную, так и с помощью различных приборов и автоматики. Например можно легко приспособить к ней термосопротивление, согласовав его с аналоговым входом контроллера с помощью операционного усилителя, получив тем самым терморегулятор. Из автоматики идеальной будет та, что способна выдавать аналоговый выход, либо цифровой высокочастотный. Вы сможете легко согласовать такие устройства с данной схемой, избежав тем самым использования щелкающего реле. Для использования в регулировке трехфазной нагрузкой рекомендуется включать каждую из фаз при переходе через ноль (для схемы "звезда"), тем самым здорово снизив коммутационные токи двигателей. Для этого потребуется отслеживать напряжение в каждой из фаз и задействовать 3 аналоговых входа и 3 цифровых выхода. Оставшиеся 3 входа можно использовать например, для отслеживания токов по каждой фазе для защиты двигателей при обрыве фаз и прочих неприятностях.
  13. Предположим у меня есть контроллер с железной поддержкой эθернэта. пока еще нету, но планируется. Покурил даташит и там по теме того, как им пользоваться написано совершенно недостаточно. Гугл на тему Ethernet сами понимаете, что выдает. Соответственно нужен совет, где почитать: 1) физическая среда передачи совместимая с современным сетевым оборудованием. Вроде нужны специальные балансировочные трансформаторы, а может и что-то еще?. А может есть готовые модули на плату с разъемом 8P8C с одной стороны и подключением к контроллеру с другой? 2) туториал по протоколу IP - как его минимально реализовать. Чтобы не сразу закапываться в спецификацию. 3) тоже по протоколу TCP.
  14. Учебники по электронике на... Греческом языке http://kkalivas.tucsonclub.gr/index.php/2012-11-24-17-52-10
  15. Сдуру купил 5 штук, как обычно собрал на макетку, подоткнул пикит2, а он пишет - несовместимая деталь (id=0020). Посмотрел - "цешек" нет в списках поддерживаемых пикитами приборов ни второго ни третьего, а программирует его нечто PM3 стоимостью с две моих зарплаты. Вопрос - что нибудь вообще можно с ним сделать или сразу пойти подарить комунить?=) Может его можно через другой контроллер зашить?
×
×
  • Создать...