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

 
 
> 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
 
Start new topic
Ответов
defunct
сообщение Aug 4 2008, 10:01
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 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



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 22:46
Рейтинг@Mail.ru


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