Jump to content

Splav

Members
  • Content Count

    69
  • Joined

  • Last visited

Community Reputation

5 Обычный

About Splav

  • Rank
    Осваивающийся

Информация

  • Пол
    Мужчина
  • Город
    Украина, Керчь

Электроника

  • Стаж в электронике
    Не связан с электроникой

Recent Profile Visitors

1764 profile views
  1. Пришел в гараж два дня назад. Вентиляция работает очень странно. Вынул PIC и пошел с ним домой. Считал его. Контрольная сумма в порядке. А вот в ЕЕПРОМе вместо адекватных значений обнаружил мусор. Прошил заново нормальными значениями. Для эксперимента прошил ПИК из другой партии и другой даты выпуска. Установил новую микросхему - работает. Накануне прихода в гараж по сетям 10кВ были аварийные отключения, знакомые энергетики рассказали. Возможно это стало причиной диких помех в сетях и мусора в ЕЕПРОМе.
  2. С момента первой публикации прошло больше года. Устройство все это время продолжает работать. Пришла в голову идея сделать этот циклический таймер более универсальным. Теперь время работы для каждого из режимов хранится в ячейках в ЕЕПРОМ. И может быть изменено без вмешательства в прошивку. Все остальное, описанное в 1-ом посте, осталось без изменений. Для изменения интервалов работы необходимо изменить значения в ячейках ЕЕПРОМ на этапе программирования МК. Время работы и время ожидания двухбайтная величина. Диапазон установки - 0 -- 65535 минут или секунд, в зависимости от прошивки. 65535 сек = 1092,25 мин = 18,2 час. 65535 мин = 1092,25 час = 45,51 сут. По моему мнению этого более чем достаточно для разных вариантов использования. Работает устройство про прежнему в трех режимах. -- Время работы режим 1 - ячейки 0х00 0х01, старший и младший байты соответственно. Время простоя режим 1 - - ячейки 0х02 0х03, старший и младший байты. -- Время работы режим 2 - ячейки 0х04 0х05, старший и младший байты. Время простоя режим 2 - - ячейки 0х06 0х07, старший и младший байты. -- Время работы режим 3 - ячейки 0х08 0х09, старший и младший байты. Время простоя режим 3 - - ячейки 0х0A 0х0B, старший и младший байты. -- Например, необходимые интервалы работы для 1-го режима буду 13 часов работы и 11 часов отдыха. Для минутной прошивки, с индексом min, величины будут следующими 13час*60 = 780 мин. 780dec = 30C hex. Значит, в ячейку 0х00 запишем "03", а в ячейку 0х01 запишем "0С" 11час*60 = 660 мин. 660dec = 294 hex. Значит, в ячейку 0х02 запишем "02", а в ячейку 0х03 запишем "94" Для секундной прошивки, с индексом sec, величины будут следующими 13час*60 = 780*60 = 46800 сек. 46800dec = B6D0 hex. Значит, в ячейку 0х00 запишем "B6", а в ячейку 0х01 запишем "D0" 11час*60 = 660*60 = 39600 сек. 39600dec = 9AB0 hex. Значит, в ячейку 0х02 запишем "9A", а в ячейку 0х03 запишем "B0" Для оставшихся режимов действия аналогичны. Значения по умолчанию: режим 1 - 60/120 (работа/отдых) режим 2 - 60/60 режим 3 - 120/60 Сразу после прошивки устройство находится в 1-ом режиме. Важно!!! Перед программированием не забываем считать калибровочную константу по адресу 3FF из ЕЕПРОМ fan_cycle_timer_min.hex fan_cycle_timer_sec.hex
  3. Доброго времени суток, форумчане. Назрел вопрос, которому я не смог найти в Гугле для себя внятный ответ. Побитовые операции при косвенной адресации. Будет ли работать вот такой код: DQ_LL movlw .6 ; movwf temp ; номер порта --> temp movlw PORTA ; movwf FSR ; PORTA --> FSR bcf INDF,temp ; PORTA,6 --> 0 movlw TRISA ; movwf FSR ; TRISA --> FSR bcf INDF,temp ; TRISA,6 --> 0 return Этот кусок в нормальном виде в работающем проекте выглядит так: DQ_LL bcf PORTA,SENS_1 ; очистить защелку порта bsf STATUS, RP0 ; bcf TRISA,SENS_1 ; направление порта - выход. bcf STATUS, RP0 ; return Так же интересует можно ли проверять бит регистра? Например вот так: movlw .6 ; movwf temp ; номер порта --> temp movlw TRISA ; Порт на вход movwf FSR ; TRISA --> FSR bsf INDF,temp ; TRISA,6 --> 1 movlw PORTA ; movwf FSR ; PORTA --> FSR btfsc INDF,temp ; Если кнопка не нажата, то ... ; сделать одно... ... ; иначе, другое... return
  4. Речь шла о совершенно ином устройстве, которое бы имело бы два датчика относительной влажности и температуры. По этим датчикам считалась бы абсолютная влажность и, на основании результата о количестве влаги в воздухе, принималось бы решение о включении или остановке вентилятора. Такие вычисления явно не по зубам применяемой микросхеме. Это был случай, когда я упоминал, что такая идея и алгоритм работы мною рассматривался. Она выполнима, но для этого нужен процессор помощнее, больше ног, больше памяти, больше внешней индикации. Повторюсь, в итоге задача свелась к созданию ржавого самоката)) С возложенными на него задачами он справляется))
  5. Чем сложно то? Зашили МК, вставили, включили. Сразу включился первый режим. Индикация морганием 0,5 Гц. Клацнули на кнопку - второй режим. Индикация морганием 1Гц. Еще раз клацнули - третий режим. Индикация морганием 2Гц. Клацнули еще - отключили. И так по кругу. Все)) С ним вообще не надо работать)) Принцип включил и забыл))
  6. Устройство задумывалось простым как ржавый самокат)) Должно быть минимум деталей, минимум потребления, минимальная цена или использование всего, что есть под рукой и никакой новогодней елки с индикацией. В данном моменте программа отлажена. Проходит период опытной эксплуатации. Жду зимы. Кстати, в первом варианте свободная нога GP0/Pin7 использовалась именно так, для индикации)) GP3/Pin4 может быть или MCLR-ом или только входом.
  7. Понизить влажность вентилятором можно, заменяя более влажный воздух более сухим. Но эта задача требует много математики.
  8. Не всегда есть возможность установки дефлектора по всем правилам. Вот и приходится придумывать))
  9. Думал об этом. Без индикации очень тяжело настроить. Самое разумное это по температуре и относительной влажности высчитывать абсолютную и принимать решение об включении. Но это ресурсоемкая задача. Не хватит контроллера. С вентилятором меньшей производительности... Возможно... Но его сначала надо найти, это первое, а второе, иметь их несколько штук и оперативно менять по необходимости, в зависимости от необходимой производительности... Неудобно и хлопотно это на мой взгляд. Но спасибо за идею, я даже не задумывался над таким решением. Смысл этой поделки сводится к постоянному воздухообмену для удаления влаги. Машину в гараже не грею, поэтому решение излишне. Датчик движения... Нет необходимости, потому как на протяжении суток вентилятор периодически работает.
  10. Речь пойдет о таймере цикличного включения вентиляции гаража. Стояла задача обеспечить принудительную вентиляцию гаража. Оставлять включенным вентилятор круглые сутки - неоправданно. Включать его периодически вручную... Неудобно и лишено смысла. Поэтому было решено включать его на определенное время через разные интервалы времени, в зависимости от субъективного восприятия наличия сырости в гараже. Вменяемых вариантов в продаже я не нашел. Можно, конечно, приобрести на Али программируемый суточный таймер или что-то подобное... Да, можно, но мне кажется, что собрать из подручных деталей тоже можно, ну и мозги потренировать. За основу был выбран PIC12F675, потому что он у меня был. По уму здесь должен стоять PIC12F629, он дешевле, в нем нет АЦП, который в конструкции не используется и отключен. Итак. Время работы выбрано фиксированным и неизменным - 1 час. Время простоя - в зависимости от режима. 1 час - 2 часа - 3 часа. (Изначально я планировал другие задержки: 2-3-5 часов. На практике в моих гаражных условиях эти интервалы оказались слишком большими) Индикация осуществляется всего 1 светодиодом. Переключение режимов и управление - всего 1 кнопкой. Схема: Коротко о работе: Кнопка. Опрос кнопки 10 раз в секунду. Антидребезг и подавление помех 0,3с - 3 опроса подряд кнопка нажата. Короткое нажатие на кнопку(от 0,3 до 2 с) - переключение режимов по кругу. 1 - 2 - 3 - OFF - 1 - 2 - .... Длинное нажатие на кнопку (дольше 2 с) - смена состояния реле. Если оно было включено - выключается. Если было выключено - включается. Интервалы работы реле при этом соответствуют режиму. В режиме OFF длинное нажатие ничего не меняет. Переключение режима или смена состояния реле происходят при отпускании кнопки. Светодиод. Индикация режимов светодиодом: 1 - 1 раз в 2 секунды загорается, если реле не включено. Проблеск света. 1 раз в 2 секунды гаснет, если реле включено. Проблеск тени. 2 - 1 раз в секунду загорается, если реле не включено. 1 раз в секунду гаснет, если реле включено. 3 - 2 раза в секунду загорается, если реле не включено. 2 раза в секунду гаснет, если реле включено. OFF - загорается раз в 5 секунд. Контроль того, что МК не завис. Режимы работы. Время работы циклического таймера по режимам: 1 - 1 час работы / 3 часов отдых. 6/24 2 - 1 час работы / 2 часа отдых. 8/24 3 - 1 час работы / 1 часа отдых. 12/24 Работа. При отключении питания, пока не разрядились конденсаторы фильтра, МК отключает все выходы, сохраняет текущие данные в память, ждет 15 сек в таком состоянии и возобновляет работу, если отключение было кратковременным и емкостей фильтра питания хватило. Если отключение питания было длительным то, при возобновлении питания, загружает сохраненные данные из памяти и продолжает работу. При первом включении, после программирования МК, устройство работает в 1-ом режиме. Программа писалась в MPLab X IDE v4.05. Прошивка:fan_cycle_timer.hex Плата для устройства не разрабатывалась. Все было собрано на макетке. В блоке питания использован стандартный трансформатор для монтажа на плату ТПК 2х9V с 2-мя вторичными обмотками на 9В. Использовал только одну из них. Вторая - не подключена, в "воздухе" Реле - HLS-14F1D-DC12V-C. С обмотка на 12В, и одной группой переключающих контактов на 10А/240VAC. Устройство собрано в корпусе щитка для автоматов на 8 модулей. Производитель VIKO. Закреплена плата на щиток через резьбовые дистанционные втулки с резьбой М3. В качестве вентилятора - вытяжной вентилятор диаметром 125мм ВЕНТС 125С Устройство на данный момент отработало в гараже все лето, температура воздуха в тени доходила до 32 градусов. Перегревов элементов и зависаний контроллера пока не было. Несколько фото для общего представления о конструкции.
  11. Кабель 1,5 метра. В силиконовой оболочке, noname, изначально установлен один феррит, второй сам поставил. Фотик с ним работал нормально. Поэтому похоже что он жив. Плохое качество кабеля не исключаю. Подлючал все к ноуту. Может просто день такой тогда был. Короткий шнурок проблему решил. Сразу.
  12. С опозданием, но поделюсь решением проблемы. PIC KIT3 MPLABX часто отказывалась видеть программатор, видела его через раз, зависала. С МК вообще русская рулетка была. Думал что уложил программатор. Причиной оказался слишком длинный USB кабель, хотя он был с феритами на обоих концах. Воткнул коротеньким шнурком от USB диска - все стало на свои места, проблем нет.
  13. Существующую схему в студию. Всасывание для каждого насоса отдельное со своими граблями? Нагнетание насосов как выполнено? Невозвратники стоят? Если стоят, то с какой стороны насоса. Схему "водяной" части в студию. Эжектора стоят на всасывающем патрубке насоса? Контроль холостого хода насоса сделать на датчике давления на нагнетающем трубопроводе и таймере, что бы исключить ложные срабатывания. Можно купить ПЛК Logo, а можно собрать на релюхах, смотря какой бюджет. Нужны исходные данные, схемы и чертежи того, что есть.
  14. Была похожая проблема. Решил простой схемой. Где К1 и К2 реле времени (тип реле - тут уж что у вас в распоряжении, я собирал на сименсах, просто они были), а К3 исполнительное реле (либо слаботочное, либо контактор, все зависит какие у вас требования и что есть в распоряжении). Работает просто. На К1 накручиваете время цикла, на К2 время, в течение которого нужно действие устройства. Когда К1 срабатывает, включается К2 и К3. На К2 начинается отчет времени, после его истечения реле размыкает свой контакт, обесточивая К1 и возвращая его в прежнее состояние, отчет начинается снова.
×
×
  • Create New...