Запрошуємо, Гість
Ім'я користувача: Пароль: Запам’ятати мене
  • Сторінка:
  • 1
  • 2

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

Контроллер подогрева сидений ТЗ 20 черв. 2016 19:04 #1

  • Amplifier
  • Amplifier аватар
  • Оффлайн
  • I'm here long time
  • Дописи: 92
  • Подяка отримана: 6
Контроллер включает подогрев сидений, если напряжение сети выше 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 19:05 від Amplifier.
Адміністратор заборонив доступ на запис.

Контроллер подогрева сидений ТЗ 20 черв. 2016 19:48 #2

  • Igr44
  • Igr44 аватар
  • Оффлайн
  • I live here
  • der tod der russischen schweinen
  • Дописи: 1238
  • Подяка отримана: 56
41градС это яйца смятку. Зачем такая высокая температура?
Останнє редагування: 20 черв. 2016 19:49 від Igr44.
Адміністратор заборонив доступ на запис.

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

  • Amplifier
  • Amplifier аватар
  • Оффлайн
  • I'm here long time
  • Дописи: 92
  • Подяка отримана: 6
Igr44 пише:
41градС это яйца смятку. Зачем такая высокая температура?

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

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

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

Контроллер подогрева сидений ТЗ 20 черв. 2016 21:11 #4

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

Контроллер подогрева сидений ТЗ 20 черв. 2016 21:24 #5

  • Vakula
  • Vakula аватар
  • онлайн
  • Moderator
  • ich bin Ukrainian
  • Дописи: 1648
  • Подяка отримана: 357
  • ukraine-medal sxem.org Sponsor 2019 Author
Тут бы в пору использовать энкодер (но лучше таки переменный резистор) с двумя индицирующими светодиодами. Нагревается, включен красный. В режиме ожидания - зеленый.
Адміністратор заборонив доступ на запис.

Контроллер подогрева сидений ТЗ 20 черв. 2016 21:24 #6

  • Amplifier
  • Amplifier аватар
  • Оффлайн
  • I'm here long time
  • Дописи: 92
  • Подяка отримана: 6
Я в прошлой своей машине поставил регулируемый подогрев от Ауди. Пользовался редко и окуратно. Всё равно моей попе не понравилось. Поэтому и хочу, чтоб можно было отрегулировать под себя. Тоесть чтоб моё сидение еле нагревало.
Сейчас у меня и у друга (одинаковые машины) есть оригинальный подогрев, который отключается термопредохранителем на биметалической пластине. Они умерли. Хочу вылечить максимально простым устройством, но, имея возможность расширить функционал, максимально разумным.
Адміністратор заборонив доступ на запис.

Контроллер подогрева сидений ТЗ 20 черв. 2016 21:31 #7

  • Amplifier
  • Amplifier аватар
  • Оффлайн
  • I'm here long time
  • Дописи: 92
  • Подяка отримана: 6
Vakula пише:
Тут бы в пору использовать энкодер (но лучше таки переменный резистор) с двумя индицирующими светодиодами...
У меня фиксируемая кнопка, в кнопке лампочка на 1.2w. Подсветка зелёная. Думал интегрировать двухцветный светодиод для контроля состояния...
Увидим...
Переменный резистор исключительно для одноразовой настройки температуры. Он будет спрятан на плате.
Адміністратор заборонив доступ на запис.

Контроллер подогрева сидений ТЗ 21 черв. 2016 09:49 #8

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Amplifier пише:
Микроконтроллер при подачи питания включает (на время не более 10мин) подогрев сидений...
То есть, независимо от того, прогрелись сидения или нет, через 10 минут нагреватель отключается? И когда он включится в следующий раз?
Адміністратор заборонив доступ на запис.

Контроллер подогрева сидений ТЗ 21 черв. 2016 10:13 #9

  • Amplifier
  • Amplifier аватар
  • Оффлайн
  • I'm here long time
  • Дописи: 92
  • Подяка отримана: 6
Soir пише:
То есть, независимо от того, прогрелись сидения или нет, через 10 минут нагреватель отключается? И когда он включится в следующий раз?

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

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

Контроллер подогрева сидений ТЗ 21 черв. 2016 11:09 #10

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Amplifier пише:
Да, независимо от того, прогрелись сидения или нет, через 10 минут нагреватель отключается.
Включится только тогда, когда температура упадет (или будет при включении) ниже на 10-20град установленой.
Между двумя этмии предложениями есть противоречие. Это во-первых. А во-вторых 10 или 20?

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

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

Контроллер подогрева сидений ТЗ 21 черв. 2016 12:17 #11

  • Amplifier
  • Amplifier аватар
  • Оффлайн
  • I'm here long time
  • Дописи: 92
  • Подяка отримана: 6
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 12:18 від Amplifier.
Адміністратор заборонив доступ на запис.

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Amplifier пише:
Выключить через 10 мин ИЛИ по достижению заданой температуры...
Немного не то я имел ввиду. Допустим ситуация. Включился нагрев, прошло 10 минут, температура не достигнута. Но по таймеру произойдет отключение. Значит опять произойдет включение... Зачем было выключать?
Amplifier пише:
Тут розкажу подробнее. NTC терморезистор имеет нелинейную зависимость сопротивления от температуры...
Как-нибудь на досуге с интересом почитаю. А пока определитесь, какое будет сопротивление подстроечника и по нему назовите пределы. А то я что-то начинаю запутываться.
Адміністратор заборонив доступ на запис.

Контроллер подогрева сидений ТЗ 21 черв. 2016 12:55 #13

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

Контроллер подогрева сидений ТЗ 21 черв. 2016 16:06 #14

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
С этим пока разобрались, теперь подробности на примерах.
1. Включили питание, температура низкая, напряжение высокое, кнопка нажата. Тут все ясно, запускаем обогрев. Если по ходу разогрева, снижается напряжение ниже 13V, что происходит? Отключение? Отключение насовсем или если через секунду напряжение восстановится, то нагрев продолжить?
2. Включили питание, температура низкая, напряжение низкое, кнопка нажата. Запуск не происходит из-за низкого напряжения. А если через секунду напряжение поднимется, включить обогрев, или уже все?
3. Аналогично п.2, только манипуляции с кнопкой.
4. Включили питание, температура высокая, напряжение высокое, кнопка нажата. Через секунду температура снизилась. Включать обогрев, или уже все?

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

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

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

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

Такой вариант прошивки в архиве.
Долучення:
Останнє редагування: 12 лип. 2016 17:31 від Soir. Причина: Обновление прошивки.
Адміністратор заборонив доступ на запис.

Контроллер подогрева сидений ТЗ 21 черв. 2016 18:56 #15

  • Amplifier
  • Amplifier аватар
  • Оффлайн
  • I'm here long time
  • Дописи: 92
  • Подяка отримана: 6
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 18:59 від Amplifier.
Адміністратор заборонив доступ на запис.

Контроллер подогрева сидений ТЗ 22 черв. 2016 03:21 #16

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Amplifier пише:
...или до повторного включения кнопкой. Програма начинает работать с начала.
А перенос кнопки на вывод RESET микроконтроллера не решает эту задачу?
Адміністратор заборонив доступ на запис.

Контроллер подогрева сидений ТЗ 22 черв. 2016 07:50 #17

  • Amplifier
  • Amplifier аватар
  • Оффлайн
  • I'm here long time
  • Дописи: 92
  • Подяка отримана: 6
Soir пише:
А перенос кнопки на вывод RESET микроконтроллера не решает эту задачу?
Тоесть при нажатой кнопке - плюс 5В на RESET, при отпущеной - масса?
Не знаю, может так тоже будет хорошо.
Адміністратор заборонив доступ на запис.

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Amplifier пише:
Тоесть при нажатой кнопке - плюс 5В на RESET, при отпущеной - масса?
Да, именно так. Если такой вариант не подходит тогда сделаю программную обработку кнопки по Вашему алгоритму. В любом случае, в прошивку надо внести изменения.

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

Контроллер подогрева сидений ТЗ 22 черв. 2016 09:17 #19

  • Amplifier
  • Amplifier аватар
  • Оффлайн
  • I'm here long time
  • Дописи: 92
  • Подяка отримана: 6
Soir пише:
Можно наверно, даже на питание кнопку поставить...
Давайте так и сделаем.
Кнопкой я буду подавать массу на схему. Если включено зажигание (подается +) МК запускает программу на один цикл....
Адміністратор заборонив доступ на запис.

Контроллер подогрева сидений ТЗ 22 черв. 2016 09:28 #20

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Массу нагревателя лучше отдельно, или кнопка должна выдерживать соответствующий ток. Это я смотрю схему из топика.
А проще было бы наверно подавать кнопкой +12V на стабилизатор +5V. Базу транзистора подключить к массе через резистор 1-10 кОм.

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

Контроллер подогрева сидений ТЗ 22 черв. 2016 11:21 #21

  • Amplifier
  • Amplifier аватар
  • Оффлайн
  • I'm here long time
  • Дописи: 92
  • Подяка отримана: 6
Soir пише:
Массу нагревателя лучше отдельно...
А проще было бы наверно подавать кнопкой +12V на стабилизатор +5V...
Базу транзистора подключить к массе через резистор 1-10 кОм.
Да, кстати, добавьте защитный диод параллельно катушке реле.

Учел замечания.
Исправленая схема.
Долучення:
Адміністратор заборонив доступ на запис.

Контроллер подогрева сидений ТЗ 22 черв. 2016 11:43 #22

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Тогда еще несколько.

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

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

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

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

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

Контроллер подогрева сидений ТЗ 22 черв. 2016 13:02 #23

  • Amplifier
  • Amplifier аватар
  • Оффлайн
  • I'm here long time
  • Дописи: 92
  • Подяка отримана: 6
На аналоговых входах 0.1мкФ хватит?
По питанию понял, думал сьабилизатор LM1117 5.0, SOT-223.
Про EEPROM подумаю после тестов.
Правила прочитал.
Спасибо.
Останнє редагування: 22 черв. 2016 13:03 від Amplifier.
Адміністратор заборонив доступ на запис.

Контроллер подогрева сидений ТЗ 22 черв. 2016 13:36 #24

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Amplifier пише:
На аналоговых входах 0.1мкФ хватит?
В нормальных условиях хватит, еще и программа ведет некоторое усреднение замеров.
Адміністратор заборонив доступ на запис.

Контроллер подогрева сидений ТЗ 22 черв. 2016 18:39 #25

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Адаптировал прошивку под последнюю версию схемы. Перезалил.
Адміністратор заборонив доступ на запис.
  • Сторінка:
  • 1
  • 2
Модератори: wolf2000, Vakula, Айнцвайдрайченко, Soir