Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1
  • 2

ТЕМА: Контроллер подогрева сидений ТЗ

Контроллер подогрева сидений ТЗ 20 июнь 2016 21:04 #1

  • Amplifier
  • Amplifier аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 78
  • Спасибо получено: 3
Контроллер включает подогрев сидений, если напряжение сети выше 13В и температура ниже установленой подстроечником и установленым в прошивке паказанием ADC.
Выключает, если напряжение упало ниже 13В или достигнута так же установленая температура...

По прошивке.
PB4, (ADC2) - измеряет напряжение сети.
PB3, (ADC3) - измеряет температуру нагревателя.
PB2, = кнопка включения (фиксируемая).
PB1, = выход включения подогрева.

Логика работы:
Микроконтроллер при подачи питания включает (на время не более 10мин) подогрев сидений, если все нижеприведенные условия соблюдаются одновременно:
1. Если на порт PB2 лог. 0, (кнопка включена)
2. Напряжение сети выше 13В, (ADC2>240)
3. Если температура ниже XXградС. (ADC3>700)

Микроконтроллер выключает подогрев, если:
1. Если на порт PB2 лог. 1, (кнопка выключена), или
2. Напряжение упало ниже 13В, (ADC2<240) или
3. Если температура выше XXградС, (ADC3<600).

По схеме:
Питание микросхемы 5V, NTC1 - термодатчик 10К, R2 - подстроечник. По моим подсчетам регулярует температуру выключения 16-41градС.

Если схема правильная - собираю.
Проект не спешный.
Спасибо.
Вложения:
Последнее редактирование: 20 июнь 2016 21:05 от Amplifier.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 20 июнь 2016 21:48 #2

  • Igr44
  • Igr44 аватар
  • Не в сети
  • I live here
  • der tod der russischen schweinen
  • Сообщений: 874
  • Спасибо получено: 41
41градС это яйца смятку. Зачем такая высокая температура?
Последнее редактирование: 20 июнь 2016 21:49 от Igr44.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 20 июнь 2016 22:31 #3

  • Amplifier
  • Amplifier аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 78
  • Спасибо получено: 3
Igr44 пишет:
41градС это яйца смятку. Зачем такая высокая температура?

Если тэн подогрева будет лежать непосредственно на датчике, то схема как раз отключит нагреватель, пока температурой прогреет обшивку сидения.Тем более, может кто-то захочет потеплее.
В любом случае я перепробую варианты в реальных условиях, как оно работает и отпишусь.

Я думал настраивать температуру так:
1. Выставляеш подстоечник на максимум (10кОм).
2. Садишся на сидение, включаеш и, когда температура будет приятной для тела,
3. Крутиш подстроечник, пока реле не выключит подогрев.
Он включится, когда температура упадёт на 10-14°С ниже выставленой.

Думал ешё вариант без подстоечника: на 5 ногу микрик, который сохранит показания ADC3, но не верю в EEPROM и пока не верю хватит ли памяти...
Последнее редактирование: 20 июнь 2016 22:57 от Amplifier.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 20 июнь 2016 23:11 #4

  • Igr44
  • Igr44 аватар
  • Не в сети
  • I live here
  • der tod der russischen schweinen
  • Сообщений: 874
  • Спасибо получено: 41
ну не знаю. У меня передние сидушки с подогревом ( штатным)оббивка серый велюр, так подогрев даже в холода максимум 15-20 градусов. И нету никаких плавных регулировок два положения нагрева включателя и все. Они то и нужны максимум 10 минут когда очень сильный мороз, чтобы не садиться в холодную машину.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 20 июнь 2016 23:24 #5

  • Vakula
  • Vakula аватар
  • на форуме
  • Moderator
  • ich bin Ukrainian
  • Сообщений: 692
  • Спасибо получено: 65
Тут бы в пору использовать энкодер (но лучше таки переменный резистор) с двумя индицирующими светодиодами. Нагревается, включен красный. В режиме ожидания - зеленый.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 20 июнь 2016 23:24 #6

  • Amplifier
  • Amplifier аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 78
  • Спасибо получено: 3
Я в прошлой своей машине поставил регулируемый подогрев от Ауди. Пользовался редко и окуратно. Всё равно моей попе не понравилось. Поэтому и хочу, чтоб можно было отрегулировать под себя. Тоесть чтоб моё сидение еле нагревало.
Сейчас у меня и у друга (одинаковые машины) есть оригинальный подогрев, который отключается термопредохранителем на биметалической пластине. Они умерли. Хочу вылечить максимально простым устройством, но, имея возможность расширить функционал, максимально разумным.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 20 июнь 2016 23:31 #7

  • Amplifier
  • Amplifier аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 78
  • Спасибо получено: 3
Vakula пишет:
Тут бы в пору использовать энкодер (но лучше таки переменный резистор) с двумя индицирующими светодиодами...
У меня фиксируемая кнопка, в кнопке лампочка на 1.2w. Подсветка зелёная. Думал интегрировать двухцветный светодиод для контроля состояния...
Увидим...
Переменный резистор исключительно для одноразовой настройки температуры. Он будет спрятан на плате.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 21 июнь 2016 11:49 #8

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4069
  • Спасибо получено: 1393
Amplifier пишет:
Микроконтроллер при подачи питания включает (на время не более 10мин) подогрев сидений...
То есть, независимо от того, прогрелись сидения или нет, через 10 минут нагреватель отключается? И когда он включится в следующий раз?
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 21 июнь 2016 12:13 #9

  • Amplifier
  • Amplifier аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 78
  • Спасибо получено: 3
Soir пишет:
То есть, независимо от того, прогрелись сидения или нет, через 10 минут нагреватель отключается? И когда он включится в следующий раз?

Да, независимо от того, прогрелись сидения или нет, через 10 минут нагреватель отключается.
Включится только тогда, когда температура упадет (или будет при включении) ниже на 10-20град установленой. Тоесть пересчитав делитель напряжения в 10бит АЦП, получил таие данные:

При выставленом подстоечнике на 10кОм:
Если АЦП меньше 600 - (температура выше 41градусов) - выключить,
Если АЦП больше 700 - (температура ниже 20градусов) - включить.
При выставленом подстоечнике на 5кОм температура вкл\выкл следуюшая:
АЦП 600 - температура приблизительно 27градусов
АЦП 700 - температура приблизительно 13градусов
Отак.
Плату можно паять?
Спасибо.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 21 июнь 2016 13:09 #10

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4069
  • Спасибо получено: 1393
Amplifier пишет:
Да, независимо от того, прогрелись сидения или нет, через 10 минут нагреватель отключается.
Включится только тогда, когда температура упадет (или будет при включении) ниже на 10-20град установленой.
Между двумя этмии предложениями есть противоречие. Это во-первых. А во-вторых 10 или 20?

Amplifier пишет:
При выставленом подстоечнике на 10кОм...

При выставленом подстоечнике на 5кОм......
Это что, на разные подстроечнки разные прошивки?
Amplifier пишет:
Плату можно паять?
Не спешите, Вам же было не к спеху...
Сначала я разберусь, напишу хотя бы тестовую прошивку, а потом уже паять...
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 21 июнь 2016 14:17 #11

  • Amplifier
  • Amplifier аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 78
  • Спасибо получено: 3
Soir пишет:
Amplifier пишет:
Да, независимо от того, прогрелись сидения или нет, через 10 минут нагреватель отключается.
Включится только тогда, когда температура упадет (или будет при включении) ниже на 10-20град установленой.
Между двумя этмии предложениями есть противоречие. Это во-первых. А во-вторых 10 или 20?
Согласен. Выключить через 10 мин ИЛИ по достижению заданой температуры, или при падении напряжения ниже 13В или выключена кнопка.
МК включит подогрев если соблюдаются все условия, в т.ч. температура ниже заданого значения АЦП.
Тут розкажу подробнее. NTC терморезистор имеет нелинейную зависимость сопротивления от температуры. Т.е, чем больше ми подстроечником сдвигаем температуру вниз, тем большую разницу температуры ми имеем за счет разницы номиналов подстроечного резистора и показаний номинала терморезистора от температуры.

Я просчитал АЦП по температуре исходя от того, что при суме сопротивления термодатчика и подстроечника 14кОм (АЦП=600) выключать подогрев, а при суме 22кОм (АЦП=700) включать.
Пример показаний сопротивления от температуры, при заданом номинале подстроечника:
- если подстроечник выставлен на 10кОм, то терморезистор имеет 4кОм (14-10кОм) при температуре 47град (температура выключения), а при температуре 20град имеет 12кОм (22-10кОм) (включение).
- если подстроечник выставлен на 5кОм, то терморезистор имеет 9кОм (14-5кОм) при температуре 27град, соответственно имеет 17кОм (22-5кОм) при температуре 13град.

Номиналы для расчета АЦП подбирал с условием дальнейшего теста.
Когда все соберу и перепробую на разных типах подогрева - отпишусь по точным показаниям АЦП(3), которые в конце надо будет вписать в финальную прошивку.
Soir пишет:
Amplifier пишет:
Плату можно паять?
Не спешите, Вам же было не к спеху...
Сначала я разберусь, напишу хотя бы тестовую прошивку, а потом уже паять...
Ок. Просто уточняю нет ли серьезных замечаний по начальной схеме.



Последнее редактирование: 21 июнь 2016 14:18 от Amplifier.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 21 июнь 2016 14:30 #12

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4069
  • Спасибо получено: 1393
Amplifier пишет:
Выключить через 10 мин ИЛИ по достижению заданой температуры...
Немного не то я имел ввиду. Допустим ситуация. Включился нагрев, прошло 10 минут, температура не достигнута. Но по таймеру произойдет отключение. Значит опять произойдет включение... Зачем было выключать?
Amplifier пишет:
Тут розкажу подробнее. NTC терморезистор имеет нелинейную зависимость сопротивления от температуры...
Как-нибудь на досуге с интересом почитаю. А пока определитесь, какое будет сопротивление подстроечника и по нему назовите пределы. А то я что-то начинаю запутываться.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 21 июнь 2016 14:55 #13

  • Amplifier
  • Amplifier аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 78
  • Спасибо получено: 3
Soir пишет:
Amplifier пишет:
Выключить через 10 мин ИЛИ по достижению заданой температуры...
Немного не то я имел ввиду. Допустим ситуация. Включился нагрев, прошло 10 минут, температура не достигнута. Но по таймеру произойдет отключение. Значит опять произойдет включение... Зачем было выключать?
Понял. Через 10мин просто выключить. До следующей подачи питания на МК подогрев не включать.
Soir пишет:
Amplifier пишет:
Тут розкажу подробнее. NTC терморезистор имеет нелинейную зависимость сопротивления от температуры...
Как-нибудь на досуге с интересом почитаю. А пока определитесь, какое будет сопротивление подстроечника и по нему назовите пределы. А то я что-то начинаю запутываться.
Номинал подстроечника 10кОм. Он может быть выставлен в положение от 0-10кОм.
По ADC3 давайте так:
При включении питания МК, давать разрешение на включение подогрева если ADC3>680,
Если МК включил подогрев, выключить по ADC<610, или если выключена кнопка....
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 21 июнь 2016 18:06 #14

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4069
  • Спасибо получено: 1393
С этим пока разобрались, теперь подробности на примерах.
1. Включили питание, температура низкая, напряжение высокое, кнопка нажата. Тут все ясно, запускаем обогрев. Если по ходу разогрева, снижается напряжение ниже 13V, что происходит? Отключение? Отключение насовсем или если через секунду напряжение восстановится, то нагрев продолжить?
2. Включили питание, температура низкая, напряжение низкое, кнопка нажата. Запуск не происходит из-за низкого напряжения. А если через секунду напряжение поднимется, включить обогрев, или уже все?
3. Аналогично п.2, только манипуляции с кнопкой.
4. Включили питание, температура высокая, напряжение высокое, кнопка нажата. Через секунду температура снизилась. Включать обогрев, или уже все?

Ну и всевозможные комбинации этих ситуаций.

Если систематизировать все эти ситуации, то два вопроса:
1. Запуск обогрева может происходить только в момент подачи питания или в любой момент работы, когда сложатся все условия и это первое включение обогревателя?
2. Каким должно быть поведение устройства, если произошло кратковременное прерывания нагрева до выхода на заданную температуру и до истечения времени 10 минут?

---
Чтобы не запутаться окончательно, предлагаю такой вариант.
1. В течении 10 минут после подачи питания если температура ниже заданной, программа проверяет состояние кнопки и напряжение питания.
- Если напряжение выше заданного порога и кнопка нажата - включается нагреватель.
- Если напряжение питания снижается, нагреватель отключается, но программа продолжает работать.
- Если кнопка отжата, нагреватель отключается. Программа прекращает работу до следующей подачи питания.
- Если температура достигает заданной, нагреватель отключается. Программа прекращает работу до следующей подачи питания.

2. Через 10 минут, независимо от состояния входов, нагреватель отключается. Программа прекращает работу до следующей подачи питания.

Такой вариант прошивки в архиве.
Вложения:
Последнее редактирование: 12 июль 2016 19:31 от Soir. Причина: Обновление прошивки.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 21 июнь 2016 20:56 #15

  • Amplifier
  • Amplifier аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 78
  • Спасибо получено: 3
1. Если подогрев уже включен и напряжение упало ниже 13В - отключение, но если напряжение восстановится то нагрев продолжить.

2. Например заводим машину, напряжение поднимается, тогда включается обогрев. Если упало - см.п.1.

3. Кнопка. Кнопка запускает программу. Не важно когда была включена.

4. Включили питание, температура высокая, напряжение высокое, кнопка нажата. Через секунду температура снизилась. Обогрев не включать (условие: достигнута температура).


Так лучше:
1. После подачи питания программа проверяет состояние кнопки и напряжение питания.
- Если кнопка включена - начало отсчета 10мин.
- Если напряжение выше заданного порога и температура ниже указаного порога - включается нагреватель.
- Если напряжение питания снижается, нагреватель отключается, но программа продолжает работать.
- Если кнопка отжата, нагреватель отключается. Программа прекращает работу до следующей подачи питания или до повторного включения кнопкой. Таймер 10мин обнуляется. Програма начинает работать с начала.
- Если температура достигает заданной, нагреватель отключается. Программа прекращает работу до следующей подачи питания или до повторного включения кнопкой. Програма начинает работать с начала.
2. Через 10 минут, независимо от того, достигнута ли заданая температура, нагреватель отключается. Программа прекращает работу до следующей подачи питания или до повторного включения кнопкой. Програма начинает работать с начала.

Уважаемый Soir, извините за неточности и путаницу, постараюсь вам обьяснить так, как я понимаю.
1. Нажата кнопка запускает программу. Не важно включена при включении питания или включена потом. Каждое ее включение - старт программы на 10минут. Включением также считать нажату кнопку при включении питания.
Тоесть программа греет не более 10мин, или до достижения нужной температуры.
2. Почему я определил ADC3>680 и ADC<610. Если подстоечник выставлен например на 5кОм, то при температуре ниже 13градусов включить обогрев до достижения 27градусов. Если температура выше 13 градусов, то включать подогрев не нужно.
3. Контроль напряжения сети только для подстраховки работы подогрева при заведенном двигателе и исправной системе зарядки АКБ.
Спасибо вам за понимание.
Последнее редактирование: 21 июнь 2016 20:59 от Amplifier.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 22 июнь 2016 05:21 #16

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4069
  • Спасибо получено: 1393
Amplifier пишет:
...или до повторного включения кнопкой. Програма начинает работать с начала.
А перенос кнопки на вывод RESET микроконтроллера не решает эту задачу?
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 22 июнь 2016 09:50 #17

  • Amplifier
  • Amplifier аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 78
  • Спасибо получено: 3
Soir пишет:
А перенос кнопки на вывод RESET микроконтроллера не решает эту задачу?
Тоесть при нажатой кнопке - плюс 5В на RESET, при отпущеной - масса?
Не знаю, может так тоже будет хорошо.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 22 июнь 2016 10:10 #18

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4069
  • Спасибо получено: 1393
Amplifier пишет:
Тоесть при нажатой кнопке - плюс 5В на RESET, при отпущеной - масса?
Да, именно так. Если такой вариант не подходит тогда сделаю программную обработку кнопки по Вашему алгоритму. В любом случае, в прошивку надо внести изменения.

P.S.
Можно наверно, даже на питание кнопку поставить...
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 22 июнь 2016 11:17 #19

  • Amplifier
  • Amplifier аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 78
  • Спасибо получено: 3
Soir пишет:
Можно наверно, даже на питание кнопку поставить...
Давайте так и сделаем.
Кнопкой я буду подавать массу на схему. Если включено зажигание (подается +) МК запускает программу на один цикл....
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 22 июнь 2016 11:28 #20

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4069
  • Спасибо получено: 1393
Массу нагревателя лучше отдельно, или кнопка должна выдерживать соответствующий ток. Это я смотрю схему из топика.
А проще было бы наверно подавать кнопкой +12V на стабилизатор +5V. Базу транзистора подключить к массе через резистор 1-10 кОм.

Да, кстати, добавьте защитный диод параллельно катушке реле.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 22 июнь 2016 13:21 #21

  • Amplifier
  • Amplifier аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 78
  • Спасибо получено: 3
Soir пишет:
Массу нагревателя лучше отдельно...
А проще было бы наверно подавать кнопкой +12V на стабилизатор +5V...
Базу транзистора подключить к массе через резистор 1-10 кОм.
Да, кстати, добавьте защитный диод параллельно катушке реле.

Учел замечания.
Исправленая схема.
Вложения:
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 22 июнь 2016 13:43 #22

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4069
  • Спасибо получено: 1393
Тогда еще несколько.

На аналоговых входах МК желательно установить помехоподавляющие конденсаторы. В автомобиле это будет совсем не лишним.

По питанию МК, поближе к самому МК, установите керамический конденсатор 0,1 мкФ.

Еще и номиналы делителя входного напряжения не соответствуют данным АЦП, которые Вы привели, но это уже в процессе настройки.
Если бы Вы больше доверяли EEPROM, я бы сделал основные настройки через EEPROM. Тогда можно было бы настройку вести не номиналами резисторов или подстроечником, а внося данные в EEPROM при прошивке МК или может даже в виде электронной настройки...

Вместо 7805 можно применить 78L05.

P.S.
Почитайте Правила, раздел 5, п.7.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 22 июнь 2016 15:02 #23

  • Amplifier
  • Amplifier аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 78
  • Спасибо получено: 3
На аналоговых входах 0.1мкФ хватит?
По питанию понял, думал сьабилизатор LM1117 5.0, SOT-223.
Про EEPROM подумаю после тестов.
Правила прочитал.
Спасибо.
Последнее редактирование: 22 июнь 2016 15:03 от Amplifier.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 22 июнь 2016 15:36 #24

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4069
  • Спасибо получено: 1393
Amplifier пишет:
На аналоговых входах 0.1мкФ хватит?
В нормальных условиях хватит, еще и программа ведет некоторое усреднение замеров.
Администратор запретил публиковать записи гостям.

Контроллер подогрева сидений ТЗ 22 июнь 2016 20:39 #25

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4069
  • Спасибо получено: 1393
Адаптировал прошивку под последнюю версию схемы. Перезалил.
Администратор запретил публиковать записи гостям.
  • Страница:
  • 1
  • 2
Модераторы: wolf2000, Vakula, Айнцвайдрайченко