MaximDV 0 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба Привет всем, нужна помощь с кнопками от авто. 3 кнопки (джойстик для бортового компа авто) организовано так (фото прилагаю). Идея такая, эти кнопки к stm32f103 и далее команды от нажатия на кнопки по can шине. Реализовал все кроме кнопок. Пробовал через ADC, не получается 3 кнопки на один вход, видит только одну из трех. Через прерывание тоже только одна из 3х кнопок. Я прям не спец по stm32. Накинте вариантов где почитать или посмотреть. Если вдруг фото не грузиться, то кнопки работают так: На двух кнопках резисторы одна замыкает на землю (3к - 1кнопка, 1к -2кнопка, 0 - 3кнопка) На фото контакт 2 это сигнал от кнопок, контакт 3 это земля. Буду благодарен. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 203 10 марта, 2023 Опубликовано 10 марта, 2023 (изменено) · Жалоба Один контакт данного узла подключить к общему проводу, второй — через резистор 10 кОм к питанию, и на АЦП. Для подавления дребезга, данные с кнопок надо считывать не чаще 30 мс, обычно этим занимаются в прерываниях — в данном случае, коды с АЦП будут 0, 0,09, 0,23 и 1 п/ш, их разности дают три интервала между ними, далее взять их середины, они и будут искомыми точками на шкале, т.е. <0,045, <0,16, <0,61. Изменено 10 марта, 2023 пользователем Plain Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlanDrakes 1 10 марта, 2023 Опубликовано 10 марта, 2023 (изменено) · Жалоба Резистор-подтяжка какого номинала? Я бы выбрал около 1к, исходя из ваших замеров. Получаем: Кнопки отпущены - цепь разомкнута: Vadc = 3.3V (если питается от 3.3V). Нажата кнопка 1 [3к]: Получаем делитель напряжения 1:3; Vadc ~= 0.75*3.3V ~= 2.475V. [центральное] Нажата кнопка 2 [1k]: Получаем делитель напряжения 1:1; Vadc ~= 0.5*3.3V ~= 1.65V. [центральное] Нажаты кнопки 1+2 [3k || 1k]: Получаем делитель напряжения 1:0.77; Vadc ~= 1.27V [центральное] Нажата кнопка 3 [0]: Получаем... замыкание цепи АЦП на землю и напряжение около нуля. Читаем напряжение на пине каждые 10-20мс, фильтруем значения, усредняем пару-тройку выборок. Если напряжение более 0.2с стабильно в вышеописанных диапазонах (даём допуск 5-10%), то принимаем решение о том, что кнопка нажата. Если снова 3.3V - кнопки отпущены. Всё довольно просто. В теории. PS: Не забудьте добавить конденсатор фильтра на вход АЦП. Для такого делителя можно взять от сотен пикофарад до десятков нанофарад. Изменено 10 марта, 2023 пользователем AlanDrakes Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 4 часа назад, MaximDV сказал: Накинте вариантов где почитать или посмотреть. Сначала несколько уточняющих вопросов: - Какая примерно длина кабеля от блока кнопок (в джойстике) до блока управления? - Сколько проводов (в кабеле) подходит к блоку кнопок? Только два? - Кабель экранирован (в оплетке)? Можно ли заменить кабель? - Нужно ли распознавать одновременное нажатие нескольких кнопок? - Есть ли возможность заменить резисторы в джойстике и/или добавить новые? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба ТС, схема соответствует Вашей? Резисторы правильно обозначены или наоборот? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 203 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 45 минут назад, quark сказал: схема соответствует Вашей? Левый 1 кОм, правый 2 кОм. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 9 минут назад, Plain сказал: Левый 1 кОм, правый 2 кОм. Исправил в исходной схеме. А это точно? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vasily_ 54 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 1 час назад, quark сказал: Какая примерно длина кабеля от блока кнопок (в джойстике) до блока управления? В авто это обычно не меньше пары метров. 1 час назад, quark сказал: Только два? Нет, много. 1 час назад, quark сказал: Кабель экранирован (в оплетке)? Можно ли заменить кабель? Не в оплетке, заменить нельзя. Экранированный провод в данной задаче деньги на ветер. 1 час назад, quark сказал: Нужно ли распознавать одновременное нажатие нескольких кнопок? Глядя на данную схему, ответ нет. 1 час назад, quark сказал: Есть ли возможность заменить резисторы в джойстике и/или добавить новые? Нет, ибо нафиг не нужно. 4 минуты назад, quark сказал: Исправил в исходной схеме. А это точно? Да хоть и не точно, задача от этого совсем не меняется. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 4 минуты назад, Vasily_ сказал: Да хоть и не точно, задача от этого совсем не меняется. Почему-то, отвечают все, кто угодно. Только не ТС. ))) Давайте, уже, его дождемся... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaximDV 0 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба Как много вопросов. И так 1. Нажатие несколько кнопок не нужно совсем, так как это вверх - вниз - выбор 2. Расстояние 20-30 см 3. Сопротивление я обозначил правильно! 4. Схема та же самая, только сопротивления другие Я испробовал вариант сопротивление от питания к входу ADC. Брал 47к от 5в на вход ацп, а так же 3.3в. Нет явного различия в показаниях, мусор какой то. Замена резисторов на кнопках не вариант совсем. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 2 минуты назад, MaximDV сказал: 3. Сопротивление я обозначил правильно! 4. Схема та же самая, только сопротивления другие Это не понятно. Можете исправить сопротивления в схеме на рисунке, чтобы она соответствовала реальности? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaximDV 0 10 марта, 2023 Опубликовано 10 марта, 2023 (изменено) · Жалоба Что исправить? В моем фото нет никаких указателей на сопротивлений. Измерил тестером и прописал в сообщении. Фото из сервисного мануала. Изменено 10 марта, 2023 пользователем MaximDV Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 1 минуту назад, MaximDV сказал: Что исправить? В моем фото нет никаких указателей на сопротивлений. Хорошо. А померить три раза сопротивление тестером можно, нажимая по одной кнопке? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaximDV 0 10 марта, 2023 Опубликовано 10 марта, 2023 (изменено) · Жалоба Я так и сделал 100 до фига 500 раз и параметры такие : 3кОм -1кОм-0 - это нажатие кнопок по очереди. Изменений в показаний не было совсем. Изменено 10 марта, 2023 пользователем MaximDV Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 4 минуты назад, MaximDV сказал: 3кОм -1кОм-0 - это нажатие кнопок по очереди. "вверх" - 3кОм "i/set" - 1кОм "вниз" - 0кОм Так? Или в обратном порядке? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться