Сергей Борщ 140 17 марта, 2023 Опубликовано 17 марта, 2023 · Жалоба 5 часов назад, MaximDV сказал: Понял, принял, видимо не в ту ветку написал о помощи новичку. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 18 марта, 2023 Опубликовано 18 марта, 2023 · Жалоба В 17.03.2023 в 03:31, MaximDV сказал: Понял, принял, видимо не в ту ветку написал о помощи новичку. В обсуждении уже есть все необходимое и все достаточное, чтобы реализовать алгоритм работы с "аналоговой" клавиатурой исходя из замера АЦП. Возможно Вам будет проще, если Вы сперва сделаете аппаратную модель "многоуровневый компаратор" в каком-то симуляторе. Для подавления дребезга, кроме "гистерезиса" по уровням можно использовать софт-таймер "задержка включения". т.е. при проявлении нужной кнопочной комбинации идет накопление софт-счетчика (например с интервалом 5 мс). В случае "пропадания" этой комбинации счетчик сразу сбрасывается в 0. Если комбинация не сброшена в течение, скажем, 30-40 мс, можно выдавать сигнал/активизация "кнопка xx нажата". Думаю, выкладывать готовый код такого алгоритма, из уважения к Вам, нет смысла Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 213 19 марта, 2023 Опубликовано 19 марта, 2023 · Жалоба 10 часов назад, k155la3 сказал: уже есть все необходимое и все достаточное Кроме конденсатора параллельно контактам, который их быстро заварит, т.е. не просто лишние деньги. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Variant99 7 19 марта, 2023 Опубликовано 19 марта, 2023 · Жалоба Так не ставьте кондеры по 47 мкФ, чтобы не было больших токов разрядки. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 19 марта, 2023 Опубликовано 19 марта, 2023 · Жалоба 13 minutes ago, Variant99 said: Так не ставьте кондеры по 47 мкФ, чтобы не было больших токов разрядки. Простите, что вмешиваюсь, но разве ток разряда конденсатора определяется только его ёмкостью? I = C * dU / dt. Другими словами, если dU/dt устремиться к бесконечности, то и конденсатор малой ёмкости может выдать довольно большой ток. А такое может быть при относительно низком сопротивлении контактов кнопки и проводников к ней. Где-то на форуме уважаемый @=AK= в своё время приводил расчёты как раз применительно к тому, как долго будут служить контакты кнопки, которые замыкают конденсатор. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 213 19 марта, 2023 Опубликовано 19 марта, 2023 · Жалоба Токи ограничивают сопротивлениями, для таких случаев обычно 100 Ом, но повторю, конденсатор лишний, потому что в данном случае сопротивление источника 1 кОм и меньше, тем более, время выборки АЦП у STM32 регулируется. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 19 марта, 2023 Опубликовано 19 марта, 2023 · Жалоба 5 часов назад, Plain сказал: Кроме конденсатора параллельно контактам, который их быстро заварит Контакты кнопок могут быть окислены или загрязнены, что в автомобиле не редкость. Без конденсатора ток коммутации нужно увеличивать примерно до 10 мА, для надежного срабатывания, что в данной схеме невозможно. С другой стороны, слишком большая емкость конденсатора будет приводить к износу и подгоранию контактов, и к возможному их залипанию. Емкость в 1 нф - разумный компромисc. Кроме этого, емкость на входе АЦП в значительной мере убирает шумы и наводки, которых в данных условиях будет предостаточно. Дополнительно, очень желательно добавить программную фильтрацию - периодическое накопление и усреднение значений. Все это, еще в сочетании с описанным алгоритмом распознавания кнопок, даст вполне приемлемый результат и достаточную надежность работы. P.S. К сожалению, в данной схеме, конденсатор работает только на одну из кнопок. Если есть возможность (доступ), то нужно припаять и на две оставшиеся кнопки по конденсатору 1 нф. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 59 19 марта, 2023 Опубликовано 19 марта, 2023 · Жалоба 12 hours ago, k155la3 said: Возможно Вам будет проще, если Вы сперва сделаете аппаратную модель "многоуровневый компаратор" в каком-то симуляторе. Вот ! Мудрый совет. Запишите значения с АЦП при нажатии/отпускании кнопок (одну, две, три и разные возможные комбинации) и через матлаб отточите алгоритм. Потом сгенерируйте С код и используйте в своём устройстве. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaximDV 0 19 марта, 2023 Опубликовано 19 марта, 2023 · Жалоба Есть уже показание нажатых кнопок, не могу привязать показание к действию. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 213 19 марта, 2023 Опубликовано 19 марта, 2023 · Жалоба 1 час назад, quark сказал: 10 мА, для надежного срабатывания Кто/где такое требует? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaximDV 0 19 марта, 2023 Опубликовано 19 марта, 2023 · Жалоба При показании АЦП 0 отправка сообщения CAN, при 1385 - другое сообщение и 2668 - аналогично. Выше выкладывал main.c . Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 19 марта, 2023 Опубликовано 19 марта, 2023 · Жалоба 18 минут назад, Plain сказал: Кто/где такое требует? Это примерное значение. Из опыта применения кнопок и концевиков в автомобильной технике. Это обсуждалось много раз на Форуме... Давно... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 19 марта, 2023 Опубликовано 19 марта, 2023 · Жалоба 27 минут назад, MaximDV сказал: При показании АЦП 0 отправка сообщения CAN, при 1385 - другое сообщение и 2668 - аналогично. И в чем проблема? Заменить одни значения на другие? При показании АЦП 0 отправка сообщения CAN, при 1024 - другое сообщение и 2048 - аналогично. Вам все "разжевали и в рот положили". Осталось только "проглотить". Извините. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaximDV 0 19 марта, 2023 Опубликовано 19 марта, 2023 · Жалоба 1 минуту назад, quark сказал: И в чем проблема? Заменить одни значения на другие? При показании АЦП 0 отправка сообщения CAN, при 1024 - другое сообщение и 2048 - аналогично. Вам все "разжевали и в рот положили". Осталось только "проглотить". Извините. Все просто, я новичок в программировании и не понимаю как это сделать. Кучу видео и статей посмотрел, ни один пример не помог. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 19 марта, 2023 Опубликовано 19 марта, 2023 · Жалоба 9 минут назад, MaximDV сказал: Все просто, я новичок в программировании и не понимаю как это сделать. Кучу видео и статей посмотрел, ни один пример не помог. И не поможет. Поскольку вы не "начинающий", так как "начинать" ничего не собираетесь. Вы правильно предположили - не в тот раздел Форума обратились. Вам лучше сюда: https://electronix.ru/forum/index.php?app=forums&module=forums&controller=forums&id=227 Или сюда: https://electronix.ru/forum/index.php?app=forums&module=forums&controller=forums&id=24 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться