1

Тема: Память кнопок комфорта

Добрый день

Решаю проблему сброса состояний подогревов и вентиляции сидений, обогрева руля, AutoHold и DriveMode после выключения зажигания в своем автомобиле. Хотелось бы сделать так, чтобы состояния запоминались и восстанавливались после включения зажигания.
Для проекта использую Canny 7, вероятно будут задействованы все входы/выходы и CAN (только для чтения состояний подогрева руля, AutoHold и DriveMode).

К решению задачи подошел поэтапно: сейчас занимаюсь памятью кнопок обогревов и вентиляции сидений.
Рассматриваю только водительскую сторону (т.к. пассажирская точно такая же)
Физически присутствую 2 кнопки: подогрев и вентиляция, при нажатии замыкаются на массу, у каждой свой провод.
При одном нажатии на кнопку обогрева/вентиляции включается максимальный режим (3), при втором нажатии средний режим (2), при третьем нажатии минимальный режим (1), при четвертом нажатии обогрев/вентиляция выключаются. Если при включенном обогреве нажать на вентиляцию, то обогрев отключится, а вентиляцию включится на максимум, и наоборот: при включенной вентиляции нажатие на обогрев выключит вентиляцию, а обогрев включится на максимум.

Я пробую двумя каналами входа отслеживать количество нажатий и записывать их в энп. Вроде тут все получается.
Для проверки использую зеленый светодиод - индикатор входа, красный светодиод - индикатор выхода.
Столкнулся с проблемами при восстановлении питания с подачей сигналов (в количестве сколько в энп сохранено) на выход:
1. Диод не успевает мигнуть даже один раз (начинает и выключается)
2. Если питание выключить и снова включить, то диод даже не пытается мигнуть, как будто в энп значение сбросилось

Прошу подсказать, где я ошибаюсь в своем подходе или направить на правильный путь решения
Заранее благодарен

Вложений в сообщении

Иконка вложения Climate.cfd 3.28 кб, скачивался 10 раз, последний раз 2025-06-28 

Иконка вложения cannylab_A6jq8SSWqb.png 121.04 кб, скачивался 3 раз, последний раз 2025-06-28 

2

Re: Память кнопок комфорта

Прошу подсказать, где я ошибаюсь в своем подходе

Блоки №4 и №6 записывают свое выходное значение в регистры энергонезависимой памяти на каждом проходе диаграммы. Что будет на выходах этих блоков при первом проходе диаграммы после каждого перезапуска?

или направить на правильный путь решения

См.пример работы EEPROM в документации: https://canny.ru/docs/c7/eeprom/

3 (28-06-2025 17:59:59 отредактировано f11.a7)

Re: Память кнопок комфорта

Константин, CANNY пишет:

Прошу подсказать, где я ошибаюсь в своем подходе

Блоки №4 и №6 записывают свое выходное значение в регистры энергонезависимой памяти на каждом проходе диаграммы. Что будет на выходах этих блоков при первом проходе диаграммы после каждого перезапуска?

или направить на правильный путь решения

См.пример работы EEPROM в документации:


Спасибо!!!
Видел же это, но почему-то не распознал у себя ошибку, только учусь)

Переделал, работает как надо)

Вложений в сообщении

Иконка вложения ClimateEd.cfd 5.43 кб, скачивался 16 раз, последний раз 2025-06-28 

4

Re: Память кнопок комфорта

А не рассматривали вариант без использования ЭНП? Подключить на постоянное питание с использованием режима сна, тогда он всегда будет помнить последнее значение, и не придётся заморачиваться с использованием памяти.

5

Re: Память кнопок комфорта

wertyh2003 пишет:

А не рассматривали вариант без использования ЭНП? Подключить на постоянное питание с использованием режима сна, тогда он всегда будет помнить последнее значение, и не придётся заморачиваться с использованием памяти.

Выбрал ЭНП по двум причинам:
1. На климате нет постоянного питания, но есть зажигание, тянуть откуда-то постоянный плюс не хочется
2. Когда Canny подключен к зажиганию я могу быть уверен, что он не сажает акб на стоянке (я могу накосячить с диаграммой где-то и даже не заметить этого)

6

Re: Память кнопок комфорта

Правильно ли я понимаю, что канал можно переназначить с входа на выход в процессе выполнения диаграммы?
После появления питания секунд на 10 хотелось бы использовать канал как выход, а дальше постоянно как вход

Сейчас я задействую 8 каналов - 4 входа, 4 выхода + при подключении пришлось поставить диоды

Может есть подобные примеры?

7

Re: Память кнопок комфорта

f11.a7 пишет:

Правильно ли я понимаю, что канал можно переназначить с входа на выход в процессе выполнения диаграммы?

См.: https://canny.ru/docs/c7/io/
третий абзац, сразу после примечания

f11.a7 пишет:

После появления питания секунд на 10 хотелось бы использовать канал как выход, а дальше постоянно как вход
...
Может есть подобные примеры?

См:

Вложений в сообщении

iosw.png, 13.72 кб, 827 x 203
iosw.png 13.72 кб, скачивался 5 раз, последний раз 2025-07-02 

8

Re: Память кнопок комфорта

Продолжаю разбираться и дошел до работы с CAN...
Задача следующая: мониторить конкретный ID 559 и его D0, чтоб он был равен *1 (где * любое значение), если равен - записывать в энп 1, если не равен - 0. Далее при появлении питания, если в энп 1 выдавать 1 импульс на выход.

Не могу разобраться как  D0 проверять только на равенство *1, не проверять же 16 раз равенство 01, 11, 21 и тд?

Может есть примеры красивых решений подобных задач?

Вложений в сообщении

Иконка вложения CAN тест.cfd 3.33 кб, скачивался 8 раз, последний раз 2025-07-03 

9

Re: Память кнопок комфорта

См.: https://forum.canny.ru/viewtopic.php?id=219

10

Re: Память кнопок комфорта

Константин, CANNY пишет:
f11.a7 пишет:

Правильно ли я понимаю, что канал можно переназначить с входа на выход в процессе выполнения диаграммы?

См.:
третий абзац, сразу после примечания

f11.a7 пишет:

После появления питания секунд на 10 хотелось бы использовать канал как выход, а дальше постоянно как вход
...
Может есть подобные примеры?

См:

Столкнулся с некоторыми сложностями...
Попробовал собрать схему по аналоговым кнопкам целиком, то есть 4 канала задействованы как вход/выход и подключены к соответствующим проводам которые замыкаются на массу при нажатии кнопок, первые 10 секунд каналы работают как выход, далее все время до отключения питания как вход.
+ к этому хотел сделать задержку 1.5 секунды перед первым "нажатием" на кнопку программой (попробовал добавить соответствующие блоки на нажатие водительских кнопок).
По итогу: на выходах ничего не появляется. Проверял с диодами только без переназначенных каналов (отдельно вход, отдельно выход) - все работало.

Где то ошибаюсь с назначением каналов?

Вложений в сообщении

Иконка вложения Climate.cfd 13.65 кб, скачивался 5 раз, последний раз 2025-07-07 

11

Re: Память кнопок комфорта

Внимательно прочтите описание Регистра контроля восстановления питания здесь: https://canny.ru/docs/c7/resources/#sec … ontrollera

12

Re: Память кнопок комфорта

Константин, CANNY пишет:

Внимательно прочтите описание Регистра контроля восстановления питания здесь: https://canny.ru/docs/c7/resources/#sec … ontrollera

Перечитал, убрал свою попытку сделать паузу в 1.5 секунды.
Всегда вижу теперь на выходе 2 сигнала или ни одного.

Если убираю динамическую смену назначения канала - все работает стабильно
Искал по форуму переопределение каналов...не обнаружил, к сожалению

Извиняюсь, возможно мои вопросы вызваны непониманием иногда даже простых вещей, но хочется разобраться😥

13

Re: Память кнопок комфорта

Обратите внимание на то, что при работе канала в режиме дискретного выхода, Регистр входного значения канала продолжает функционировать. См.примечание здесь: https://canny.ru/docs/c7/io/#sec--c7-io … ogo-vyhoda

Пожалуйста, внимательно и полностью прочитайте эту страницу, особенно п.5: https://canny.ru/docs/tips_tricks/solut … ents_tips/