x893 59 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 2 minutes ago, quark said: "вверх" - 3кОм "i/set" - 1кОм "вниз" - 0кОм Так? Или в обратном порядке? Законы Ома и Киргофа от этого не зависят. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 213 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 23 минуты назад, MaximDV сказал: 47к от 5в на вход ацп, а так же 3.3в. Нет явного различия в показаниях, мусор какой то 47 кОм перебор, 10 кОм максимум, а лучше 1 кОм. Если датчик подключён правильно, но на показания АЦП не влияет, то логично, что не он виноват, а программа. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaximDV 0 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба С языка сняли! Но именно в такой последовательности и было. 1 минуту назад, Plain сказал: 47 кОм перебор, 10 кОм максимум, а лучше 1 кОм. Если датчик подключён правильно, но на показания АЦП не влияет, то логично, что не он виноват, а программа. А что много кода надо чтоб увидеть что принимает АЦП? В ячейке есть показание но они не отличаются радикально. Похоже на мусор, постоянно изменяется даже в покое. Может конечно из за 47к. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 59 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 8 minutes ago, MaximDV said: С языка сняли! Но именно в такой последовательности и было. А что много кода надо чтоб увидеть что принимает АЦП? В ячейке есть показание но они не отличаются радикально. Похоже на мусор, постоянно изменяется даже в покое. Может конечно из за 47к. Присоедините переменный резистор 10К на вход АЦП и потренируйтесь. А потом уже можно и к кнопкам переходить. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 4 минуты назад, x893 сказал: Законы Ома и Киргофа от этого не зависят. Спасибо. А то, "мужики-то не знают" (c). ))) 3 минуты назад, MaximDV сказал: С языка сняли! Но именно в такой последовательности и было. Понятно. Значит реальная схема немного другая: Вопросов у меня пока больше нет. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 59 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба Just now, quark said: Спасибо. А то, "мужики-то не знают" (c). ))) Видимо не знают. Можно теорию почитать https://electrocredible.com/multiple-buttons-on-one-analog-pin-arduino-adc/ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 213 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 16 минут назад, MaximDV сказал: много кода надо чтоб увидеть что принимает АЦП? Мы не в курсе Вашей квалификации по STM32 на данный момент, ни на чём конкретно проводятся опыты, т.е. перечень аппаратуры и её происхождение. Обычно начинают с помигивания светодиодом — это в наличии? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaximDV 0 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба Вроде все в первом сообщении написал, какое железо и какие у меня познания в STM32. Спасибо вам за помощь. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 213 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба Электронный компонент "stm32f103" сам по себе абсолютно неработоспособен — он должен быть соответственно требованиям его производителя припаян на печатную плату и обвешан ещё компонентами, где-то под сотню количеством. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 59 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 2 minutes ago, Plain said: Электронный компонент "stm32f103" сам по себе абсолютно неработоспособен — он должен быть соответственно требованиям его производителя припаян на печатную плату и обвешан ещё компонентами, где-то под сотню количеством. Сегодня вроде не 1 апреля. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба Напряжение Vin на входе ADC: Нажатых кнопок нет - 1 * VDD Нажата кнопка "Вверх" - 0,6 * VDD Нажата кнопка "i/Set" - 0,33 * VDD Нажата кнопка "Вниз" - 0 * VDD Алгоритм распознавания кнопок: 1. Vin > 0,5*VDD : 1.1 Vin > 0,75*VDD -> Нажатых кнопок нет; 1.2 Vin < 0,75*VDD -> Нажата кнопка "Вверх"; 2. Vin < 0,5*VDD : 2.1 Vin > 0,25*VDD -> Нажата кнопка "i/Set"; 2.2 Vin < 0,25*VDD -> Нажата кнопка "Вниз"; Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 59 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 14 minutes ago, quark said: Алгоритм распознавания кнопок: 1. Vin > 0,5*VDD : 1.1 Vin > 0,75*VDD -> Нажатых кнопок нет; 1.2 Vin < 0,75*VDD -> Нажата кнопка "Вверх"; 2. Vin < 0,5*VDD : 2.1 Vin > 0,25*VDD -> Нажата кнопка "i/Set"; 2.2 Vin < 0,25*VDD -> Нажата кнопка "Вниз"; А почему не так ? if ( Vin > 0,75*VDD ) // Нажатых кнопок нет; else if ( Vin > 0.5*VDD ) // Нажата кнопка "Вверх"; else if ( Vin > 0,25*VDD ) // Нажата кнопка "i/Set"; else // Нажата кнопка "Вниз"; Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 1 минуту назад, x893 сказал: А почему не так ? if ( Vin > 0,75*VDD ) // Нажатых кнопок нет; else if ( Vin > 0.5*VDD ) // Нажата кнопка "Вверх"; else if ( Vin > 0,25*VDD ) // Нажата кнопка "i/Set"; else // Нажата кнопка "Вниз"; Потому, что в реальной программе не нужно производить сравнения значений. Достаточно последовательно проанализировать два старших бита значения Vin. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 59 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 2 minutes ago, quark said: Потому, что в реальной программе не нужно производить сравнения значений. Достаточно последовательно проанализировать два старших бита значения Vin. Гуру программирования виднее Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaximDV 0 10 марта, 2023 Опубликовано 10 марта, 2023 · Жалоба 12 часов назад, quark сказал: Напряжение Vin на входе ADC: Нажатых кнопок нет - 1 * VDD Нажата кнопка "Вверх" - 0,6 * VDD Нажата кнопка "i/Set" - 0,33 * VDD Нажата кнопка "Вниз" - 0 * VDD Алгоритм распознавания кнопок: 1. Vin > 0,5*VDD : 1.1 Vin > 0,75*VDD -> Нажатых кнопок нет; 1.2 Vin < 0,75*VDD -> Нажата кнопка "Вверх"; 2. Vin < 0,5*VDD : 2.1 Vin > 0,25*VDD -> Нажата кнопка "i/Set"; 2.2 Vin < 0,25*VDD -> Нажата кнопка "Вниз"; Спасибо, буду пробовать. Алгоритм в колбэке АЦП прописать или в while (1)? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться