Защита ламп накаливания.

Блоки питания, преобразователи напряжения, UPS'ы - это здесь :)
Аватара пользователя
bond_sn
Встал на лапы
Сообщения: 113
Зарегистрирован: Пн ноя 08, 2010 12:14:55

Re: Защита ламп накаливания.

Сообщение bond_sn »

~Vlad~ можете скомпилить для 206-го ПИКа, может что-то не так делаю?
~Vlad~
Открыл глаза
Сообщения: 64
Зарегистрирован: Вс янв 10, 2010 14:24:31
Откуда: Минск, Беларусь

Re: Защита ламп накаливания.

Сообщение ~Vlad~ »

1) Лампочки, мощностью менее 40Вт, в частности 10Вт от "холодильника", через конденсатор 0.1 мкФ светиться в пол накала, лампы больной мощности из-за малого сопротивления спирали в холодном состоянии не светятся - закон Ома! В этой теме кто то уже делал эксперимент с лампочкой малой мощности и она у него постоянно светилась. Не будет лишним напомнить, что конденсаторный блок питания нужно рассматривать как источник ТОКА! 1мкФ ~ 70мА ->0,1мкФ ~ 7мА. Делаем выводы. Для мелких лампочек необходимо немного изменить схему, и включать устройство не в разрыв провода, т.о. на схему подавать 230 В а нагрузку включить в разрыв проводника симистора MT2. Функция определения трансформатора в этом случае работать не будет.

2) Скопилить не проблема, пожалуйста... учтите, что эта прошивка скомпилирована из последней модификации программы, там 2 порта для управления симистором (rev 60)...

3) У всех у кого не работает, выкладываем фото собранной платы + тип симистора + если каке-то номиналы меняли сами, то схемку с реально установленными номиналами элементов..... будем посмотреть 8)

:idea: По моему опыту, когда я только начал программировать (между прочим это был мой первый реальный проект), я столкнулся с тем, что иногда не работает плата, и как потом оказалось, дело было в том, что я в настройках программатора (ICD2) не выбрал правильный режим работы и он затирал мне константу (там надо указать диапазон программируемой памяти на 1 меньше, чем есть у контроллера, т.к. в полдней ячейки памяти содержится калибровочная константа для внутреннего генератора), или как вариант вначале читать контроллер, чтобы сохранить константу и потом его записывать, тогда все будет в порядке.
Если константа все таки затерлась, то ее можно восстановить двумя способами:
1) При помощи PicKit2, там есть встроенная опция калибровки;
2) Изменить в мой проект в начале следующим образом:

ORG 00h;
bsf OSCCAL,0;
goto $;

Необходимо отпаять R1, и на 4 ножке контроллера осциллографом наблюдать частоту 1 МГц, в случае ее отклонения изменяем содержимое регистра OSCCAL согласно даташиту и подбираем значение при котором на выходе будет частота наиболее близкая к искомой.
для подбора еще раз модифицируем код:

ORG 00h ;
movlw (0xXX | 0x01);
movwf OSCCAL ;
goto $;

где 0xXX - подбираемая константа в 16-ричном виде ( а | 0x01- это для профилактики непонимания даташитов)).
После подбора, если вам не удастся прописать ее в память контроллера, то модифицируем код:

ORG 00h ;
movlw (0xXX | 0x01);
movwf OSCCAL ;

Ну или еще вариант, только компилировать надо не в режиме симуляции в MPLABSIM (прописываем в конце программы перед словом end нашу константу, причем код в начала не меняекм, как в оригинале):

org 0x1ff ( в зависимости от контроллера адрес последней ячейки памяти!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! это для 512 байтового)
movlw 0xХХ;
end

Контроллеры данной серии стартуют не с адреса 0х00 а с последнего адреса, в который не заводе прописывается инструкция movlw 0xХХ, что мы и делаем в ручную, в случае порчи заводского значения.

8) Для Микрочипа у меня есть все программаторы, по этому других способов, кроме кошерных, предожить не могу, т.к. для себя я не вижу необходимости разбираться с потусторонними силами альтернативных способов программирования микроконтроллеров данного производителя. 8)
Вложения
DIMMER.hex
(1.46 КБ) 409 скачиваний
Аватара пользователя
bond_sn
Встал на лапы
Сообщения: 113
Зарегистрирован: Пн ноя 08, 2010 12:14:55

Re: Защита ламп накаливания.

Сообщение bond_sn »

~Vlad~ , спасибо :beer: совсем другое дело! ВТА204-800 стоял в плате, перепрошил и добавил резистор на управляющий симмистора и вуаля, все заработало :idea: . Соберу и второй екземпляр теперь, еще один такой Пик есть в наличии. Все красиво, вот только на плате резистор R2 1кОм лучше не SMD использовать, надежнее будет.
~Vlad~
Открыл глаза
Сообщения: 64
Зарегистрирован: Вс янв 10, 2010 14:24:31
Откуда: Минск, Беларусь

Re: Защита ламп накаливания.

Сообщение ~Vlad~ »

Отлично, я рад, что у вас заработало... :)

По R2 возражение принимаю. Но я руководствовался тем, что для конденсатора 0.1 uF этого вполне достаточно, даже по импульсному току, а вот для 0.22-0.47 надо ставить или выводной, или два-три последовательно SMD1206.
jes
Нашел транзистор. Понюхал.
Сообщения: 177
Зарегистрирован: Сб сен 11, 2010 14:05:53

Re: Защита ламп накаливания.

Сообщение jes »

VLAD, к вам есть несколько вопросов, может просветите.
Как задать тип процессора в самой оболочке MPLAB IDE - понятно, а вот для использования лишь одного макроассемблера - как указать тип процессора в самом исходном файле?
Стандартно это делается, например, путем включения в файл строки #include "P10f222.inc", но в исходнике у вас применены операторы условной компиляции, видимо чтобы оперативнее изменять тип процессора прямо из оболочки.

Я было попробовал заранее определить метку типа #define __10f222, но, при компиляции вывалилась куча ошибок.

И еще, вы для одних типов процессоров в строке конфигурации - включаете защиту памяти программ (_CP_ON), для других - нет (_CP_OFF).
Это связано с их аппаратными особенностями и по другому нельзя, или просто так написалось?
~Vlad~
Открыл глаза
Сообщения: 64
Зарегистрирован: Вс янв 10, 2010 14:24:31
Откуда: Минск, Беларусь

Re: Защита ламп накаливания.

Сообщение ~Vlad~ »

1) Тип процессора в коде указывается через #include, все верно, но т.к. он еще указывается и конфигурацией IDE в особом виде, то работают команды макро-подстановки и у вас возникает исключение, дублирование , либо переопределение, что не допустимо. Тип указывается всегда, это обязательно - Configure>Select Device.
Если вам надо только один типа процессора, то просто удалите все макросы, кроме содержания макроподстановки интересующего вас контроллера, ну и указать его в п.1 обязательно, т.к. это определяет настройки компилятора, мэйкера и прочих утилит, которые трудяться на наше благо и создают нам правильный .hex выглядеть будет примерно так:

IFDEF __10F222; удаляем
LIST P=10f222
#include "P10f222.inc"
__CONFIG (_CP_OFF & _WDT_OFF & _MCLRE_OFF & _MCPU_OFF & _IOSCFS_4MHZ)

ENDIF удаляем

Посмотреть или установить конфигурационные биты можно в Configure>Configuration Bits (для того, чтобы установить их в ручную, игнорируя запись в коде, надо снять галочку Configuration bit set in code).

Кстати макроподстановки, язык препроцессора, это вообще великая вещь, освоив разок вы получите кучу бонусов в виде легко перестраиваемого проекта.

2) 8) Просто так написалось видимо..., на работу устройства ни как не влияет.
jes
Нашел транзистор. Понюхал.
Сообщения: 177
Зарегистрирован: Сб сен 11, 2010 14:05:53

Re: Защита ламп накаливания.

Сообщение jes »

VLAD, большое спасибо за консультацию.
Просто думал, что есть команда в макроассемблере, позволяющая задать (определить) как бы требуемую метку заранее, а потом исходя из команд условной трансляции - он сам выберет, что компилировать.

Ну а раз так, то мне кажется, что проще загрузить саму оболочку, и уже из нее откомпилировать заново файл-исходник, изменив перед этим тип кристалла.
Просто хотел обойтись одним макроассемблером, и чтобы не сильно пришлось править исходник.
~Vlad~
Открыл глаза
Сообщения: 64
Зарегистрирован: Вс янв 10, 2010 14:24:31
Откуда: Минск, Беларусь

Re: Защита ламп накаливания.

Сообщение ~Vlad~ »

А вы компилируете через командную строку?! Если так , то я не побывал компилировать таким образом, поэтому не могу сказать как это сделать... :(
Вообще определить можно как угодно, например:
#define METKA_PIC10F222

...

IFDEF METKA_PIC10F222

...

ENDIF

__10F222 - это стандартная константа , которую понимает прекомпилятор.
METKA_PIC10F222 - это абстрактная константа.

Если вы поменяете в исходнике все эти константы, которых участвуют в прекомпилинге, например просто дописав в конце каждой 1 (__10F2221) и в начале пропишите например #define __10F2221, то скомпилируется все правильно!
Проверял в MPLAB, выбрал вообще другой контроллер, хексы абсолютно идентичные!
#define __10F222 в начале не должно вызывать ошибку, даже допускается переопределение констант #define __10F222 TEST, после такой надписи в константе __10F222 будет храниться строка TEST а не то, что там было. Скорее всего вы чтото не так делаете.
Исходник править не нужно!!! Там все в порядке.

Прилагаю файл скриншота компилятора, все по дефолту хекс генерит правильный, такой же как из мплаба!
Вложения
MPASM.jpg
(91.74 КБ) 473 скачивания
jes
Нашел транзистор. Понюхал.
Сообщения: 177
Зарегистрирован: Сб сен 11, 2010 14:05:53

Re: Защита ламп накаливания.

Сообщение jes »

Под правкой исходника я имел ввиду то, что надо будет оставлять только один активный чип, а остальные закомментировать.
Например, #include "P10f222.inc".

Во вложении то, что пишется у меня в листинге после компиляции, когда в самом начале я указываю #DEFINE __10F222;
Когда компилируется в самой оболочке - все в норме.
Видимо, переменные препроцессора не дружат с определениями в самом исходнике.
А если их заранее определить по другому - потеряется возможность использовать препроцессор для указания типа кристалла из самой оболочки.

P.S.
Все стало нормально после смены версии макроассемблера, попробовал MASM V5.43, и все ошибки ушли.
Теперь можно компилировать не загружая оболочку, мне показалось, что так гораздо быстрее, если необходимо просто сменить тип кристалла.
В начале исходника (перед самым первым оператором IFDEF) пишем строку с нужным типом кристалла, например, #DEFINE __10F222, и все.

VLADу спасибо за помощь.
Вложения
List.jpg
(42.75 КБ) 441 скачивание
~Vlad~
Открыл глаза
Сообщения: 64
Зарегистрирован: Вс янв 10, 2010 14:24:31
Откуда: Минск, Беларусь

Re: Защита ламп накаливания.

Сообщение ~Vlad~ »

Ок...

Из вашего скрина видно, что данный тип процессора не поддерживается тем макроассемблером, который вы применяли ранее.
131 Processor type is undefined
Code is being generated before the processor has been defined. Note that until the processor is defined, the opcode set is not known.

132 Unknown processor
The selected processor is not a valid processor

У Микрочипа самый лучший help, который я видел, а видел я многое)))), \Microchip\MPASM Suite\ *.chm 8)

В макроассемблере (на скрине в моем предыдущем посте) видно специальное выпадающее меню, в котором можно выбрать тип процессора и ничего в исходнике не надо делать...но ваш вариант тоже будет работать, т.к. ваше определение процессора происходит позже, следовательно оно и будет применено.
...Мы не ищем легких путей... :wink:
garikbaza
Родился
Сообщения: 11
Зарегистрирован: Пн янв 14, 2008 19:55:24
Откуда: Ua

Re: Защита ламп накаливания.

Сообщение garikbaza »

Вчера проверил. Все работает как заявлено на лампах накаливания. Только обнаружил одну неприятность. Если стоит неоновая лампа для подсветки выключателя, то режимы не переключаютя, всегда только плавный запуск. Думаю что это решается увеличением сопротивлений в цепи детектора нуля. На выходных попробую увеличить.
Автору респект!
~Vlad~
Открыл глаза
Сообщения: 64
Зарегистрирован: Вс янв 10, 2010 14:24:31
Откуда: Минск, Беларусь

Re: Защита ламп накаливания.

Сообщение ~Vlad~ »

Я думаю, что вы подключили неоновую лампу как на схеме сверху, что есть верно, но в данном случае будет приводить к тому, что вы наблюдаете. Соберите по нижней схеме и все будет работать как надо.

Схемы в приложении.

P.S.: Эффект обусловлен тем, что через неоновую лампу течет ток, небольшой, но течет, чего достаточно для того, чтобы на входе схемы было перемеренное напряжение, которое воспринимается как синхросигнал, что приводит к ошибочным состояниям автомата, и устройство не входит в режим программирования уровня яркости. Условие входа - отсутствие синхросигнала сети более 10 полупериодов, т.о., что один из входов устройства должен ПОЛНОСТЮ отключаться!
Вложения
ERROR.pdf
(7.71 КБ) 244 скачивания
garikbaza
Родился
Сообщения: 11
Зарегистрирован: Пн янв 14, 2008 19:55:24
Откуда: Ua

Re: Защита ламп накаливания.

Сообщение garikbaza »

Я так и предполагал. Сейчас попробую по Вашей схеме номер два. Хотя уверен, что будет работать правильно.

Проверил. Работает. Только неонка до конца не тухнет и чем тусклее свет, тем ярче неонка. Однако это уже на скорость не влияет
Аватара пользователя
Nico2_2
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн мар 12, 2012 12:01:15
Откуда: Тростянец, Винницкая обл, Украина

Re: Защита ламп накаливания.

Сообщение Nico2_2 »

Гляньте на это, может Вам сгодиться :)) http://radio.aliot.com.ua/?p=720
~Vlad~
Открыл глаза
Сообщения: 64
Зарегистрирован: Вс янв 10, 2010 14:24:31
Откуда: Минск, Беларусь

Re: Защита ламп накаливания.

Сообщение ~Vlad~ »

:idea: Кажись аналогичная конструкция от Протопопова где то тут уже пролетала...... 8)
garikbaza
Родился
Сообщения: 11
Зарегистрирован: Пн янв 14, 2008 19:55:24
Откуда: Ua

Re: Защита ламп накаливания.

Сообщение garikbaza »

У ТС богаче функционал. Можно включать лампы не в полный накал, сами отключаются через определенное время. По ссылке, если автор выложит исходники, то можно допильть и до такого же функционала. Однако габариты уже не те.
~Vlad~, еще раз спасибо Вам за такую штуку. Заказал деталей на 8 штук. Поставлю во всем доме, и знакомым поделаю. Без коммерческой выгоды.
~Vlad~
Открыл глаза
Сообщения: 64
Зарегистрирован: Вс янв 10, 2010 14:24:31
Откуда: Минск, Беларусь

Re: Защита ламп накаливания.

Сообщение ~Vlad~ »

garikbaza писал(а):У ТС богаче функционал. Можно включать лампы не в полный накал, сами отключаются через определенное время.


Не совсем понимаю Вас garikbaza, что вы этим хотели сказать, но если вы внимательно читали описание предложенной мною конструкции, то она тоже может включать лампы на любой яркости, и сам отключаться через 12 часов ( в исходнике настраивается).
P.S.:
Вообще по функционалу моя конструкция имела ветку с сенсором, IR каналом и звуком, реализация предполагалось на PIC10F222 но по следующим причинам разработки были прекращены:
1) У 10 пика нету флэши - это значит, что коды с кнопок пульта придется каждому сканировать чем то вбивать в код, что не кошерно.
2) Сделать по старинке, типа любой клавишей пульта - это уже реализовано, и это скучно, и даже иногда раздражает, когда ты регулируешь с пульта что то на телевизоре а у тебя при этом свет тоже подхватывается))))
3) На пиках минимального функционала с флэшей, например 12F 675, уже реализовано коллегой из-за рубежа, выложено в сети и функционал там будь здоров - зачем изобретать изобретенное))).
Отбросив все что уже есть, я остановился на том, чего нет))) и получилось то, что вы сейчас созерцаете. ( хотя в советской радио периодике можно найти решения для переключения числа ламп в люстре таким же методом (управление люстрой по двум провода....), реализовано все исключительно на реле, причем в 2010 году видел китайскую люстру с таким же функционалом, только на контроллере + радиопульт там еще был)...
Последний раз редактировалось ~Vlad~ Вт май 15, 2012 09:11:40, всего редактировалось 1 раз.
Аватара пользователя
Seriyvolk
Друг Кота
Сообщения: 4961
Зарегистрирован: Сб май 05, 2012 20:19:55
Откуда: Минск

Re: Защита ламп накаливания.

Сообщение Seriyvolk »

~Vlad~ - ТопикСтартер, это вы :)))
Прибор, защищённый предохранителем, сгорает первым, защитив предохранитель. Закон Мерфи.
~Vlad~
Открыл глаза
Сообщения: 64
Зарегистрирован: Вс янв 10, 2010 14:24:31
Откуда: Минск, Беларусь

Re: Защита ламп накаливания.

Сообщение ~Vlad~ »

Да я....
Аватара пользователя
bond_sn
Встал на лапы
Сообщения: 113
Зарегистрирован: Пн ноя 08, 2010 12:14:55

Re: Защита ламп накаливания.

Сообщение bond_sn »

~Vlad~ писал(а):3) На пиках минимального функционала с флэшей, например 12F 675, уже реализовано коллегой из-за рубежа, выложено в сети и функционал там будь здоров - зачем изобретать изобретенное))).

А ссылку можно поглядеть, проект не коммерческий?
Ответить

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