реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> AЦП+ кнопки, Тупик
ILYAUL
сообщение Aug 4 2008, 08:39
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



В проекте 6 кнопок + резистивный делитель на каждую и всё это подключенно на один вход АЦП.
Соответственно в взависимости от включенного делителя на входе АЦП свое напряжение.
АЦП включается каждую секунду для опроса. Делает 512 рабочих циклов + начальных 5 (атидребезг).
Происходит вычисление среднего значения всех 512 измерений - естественно , что АЦП настроен на выравнивание вправо и считывается значения только старшего регистра.
Всё бы ничего, но вот с одним вопросиком я никак определиться не могу- не хочется ставить прецензионные резисторы. Диапазон между любой из кнопок 0,5В (+-0,25) , но при применении обычных резисторов этот "коридорчик " может и плавать.
И вот здесь чего-то туплю - не могу прийти к какому-то определённому алгоритму его вычисления.
Может будут идейки? a14.gif


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Aug 4 2008, 08:51
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(ILYAUL @ Aug 4 2008, 12:39) *
И вот здесь чего-то туплю - не могу прийти к какому-то определённому алгоритму его вычисления.

Статейку читали?
для 6 кнопок достаточно будет и обычных 5% резисторов. Вот правда, двойные нажатия уже вряд ли распознаешь.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
GDI
сообщение Aug 4 2008, 09:10
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Может найти готовую R-2R матрицу, и места меньше займет и двойные нажатия отследить можно..


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 4 2008, 10:01
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(ILYAUL @ Aug 4 2008, 11:39) *
Может будут идейки? a14.gif

используйте 2 входа по 3 кнопки на каждый.
допустимая точность резисторов при этом будет +/- 12.5%, плюс распознать можно будет одновременное нажатие любой комбинации этих 6 кнопок.
И по опыту, никакого специального атидребезга делать не надо, просто пускаете АЦП в free-running. А в пользовательской задаче например раз в 10-20 мс - смотрите результат.

Алгоритм вычисления - банальная таблица с описанием уровней комбинаций.
потом
Код
val = ADC;

for(i = 0; i < count(tab); i++)
{
   if (val > tab[i])
       // комбинация кнопок "i" найдена.
}
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Aug 4 2008, 12:25
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Всем БОЛЬШОЕ СПАСИБО за идеи и статейку !!! Голова немного прояснилась . Во всех Ваших предложениях есть явно рациональные зерна и пожалуй я их объедененю пока всё собрано на макетке и можно правитьв любую сторону.
АЦП в free-running я включаю позже когда обнаруживаю клавишу MENU И здесь включается таймер , если через 50mc какая-то кнопка нажата после ее первого обнаружения , то я считаю - повтороное нажатие. и т .д.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 7th July 2025 - 14:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016