Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 08.06.2018, 23:46   #1
ifo12
Member
 
Регистрация: 24.05.2016
Сообщений: 31
Вес репутации: 100/9
ifo12 will become famous soon enoughifo12 will become famous soon enough
По умолчанию Опрос кнопок.

Какой алгоритм использовать при опросе резистивных кнопок? При задержки и сравнении иногда происходит неверное определение нажатой кнопки.
Миниатюры
9331475.jpg  
ifo12 вне форума   Ответить с цитированием
Старый 09.06.2018, 06:22   #2
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,722
Вес репутации: 5285/161
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Опрос кнопок.

Цитата:
Сообщение от ifo12 Посмотреть сообщение
Какой алгоритм использовать при опросе резистивных кнопок? При задержки и сравнении иногда происходит неверное определение нажатой кнопки.
какие номиналы резисторов?
Greg вне форума   Ответить с цитированием
Старый 09.06.2018, 08:48   #3
ifo12
Member
 
Регистрация: 24.05.2016
Сообщений: 31
Вес репутации: 100/9
ifo12 will become famous soon enoughifo12 will become famous soon enough
По умолчанию Re: Опрос кнопок.

Цитата:
Сообщение от Greg Посмотреть сообщение
какие номиналы резисторов?
Такие:


9331475.jpg
Миниатюры
9331475.jpg  
ifo12 вне форума   Ответить с цитированием
Старый 09.06.2018, 08:58   #4
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: МО
Возраст: 58
Сообщений: 2,301
Вес репутации: 3015/93
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Опрос кнопок.

Цитата:
Сообщение от ifo12 Посмотреть сообщение
Какой алгоритм
Опрос таких кнопок без усреднения массива накопления работать устойчиво не будет. Тем более, с емкостью по входу АЦП.
Делаете кольцевой буфер и считаете скользящее среднее и максимальное отклонение в массиве относительно этого среднего. Данные корректны если отклонение не превышает некоей константы, определяемой числом кнопок. То есть все данные в массиве должны лежать внутри диапазона напряжений кнопки.
Марк вне форума   Ответить с цитированием
Старый 09.06.2018, 09:22   #5
ifo12
Member
 
Регистрация: 24.05.2016
Сообщений: 31
Вес репутации: 100/9
ifo12 will become famous soon enoughifo12 will become famous soon enough
По умолчанию Re: Опрос кнопок.

Цитата:
Сообщение от Марк Посмотреть сообщение
Делаете кольцевой буфер и считаете скользящее среднее и максимальное отклонение в массиве относительно этого среднего.
Не могли бы Вы объяснить этот момент более подробно.
ifo12 вне форума   Ответить с цитированием
Старый 09.06.2018, 09:31   #6
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 768
Вес репутации: 1355/50
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Опрос кнопок.

Цитата:
Сообщение от ifo12 Посмотреть сообщение
Такие:
как эти номиналы соотносятся с требованием ДШ не превышать выходной импеданс источника сигнала для АЦП выше 5кОм ? + к этому наличие емкости превращает делитель в дифференцирующую RC-цепь с разным значением тау .
DmitrijVDN вне форума   Ответить с цитированием
Старый 09.06.2018, 09:40   #7
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 768
Вес репутации: 1355/50
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Опрос кнопок.

Цитата:
Сообщение от ifo12 Посмотреть сообщение
Не могли бы Вы объяснить этот момент более подробно.
значение АЦП заносите в кольцевой массив , находите сумму аргументов массива, делите на кол-во элементов, получаете средние. сравниваете средние с предыдущим значением , если в течении N-опросов средние не изменяется , данные считаются валидны.
DmitrijVDN вне форума   Ответить с цитированием
Старый 09.06.2018, 09:46   #8
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: МО
Возраст: 58
Сообщений: 2,301
Вес репутации: 3015/93
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Опрос кнопок.

Если бы там были не кнопки, а просто переключатель, то проблем бы не было, ибо в переходных режимах данные были бы ложны, но в конце концов они бы устанавливались. В режиме кнопок, нужно защищать схему от дребезга. И тут дребезг выражен как некое промежуточное значение с АЦП, возникающее при росте напряжения на емкости.
Марк вне форума   Ответить с цитированием
Старый 09.06.2018, 09:56   #9
Vint
Senior Member
 
Аватар для Vint
 
Регистрация: 08.06.2007
Сообщений: 488
Вес репутации: 838/53
Vint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to behold
По умолчанию Re: Опрос кнопок.

Цитата:
Сообщение от ifo12 Посмотреть сообщение
Какой алгоритм использовать при опросе резистивных кнопок? При задержки и сравнении иногда происходит неверное определение нажатой кнопки.
вот для pic32 (по прерыванию)

#define ADC_NUM_SAMPLE_PER_AVERAGE 16

int potValue;

void __ISR(_ADC_VECTOR, ipl3AUTO) _IntHandlerDrvAdc(void)
{
int i;

//Read data before clearing interrupt flag
for(i=0;i<ADC_NUM_SAMPLE_PER_AVERAGE;i++)
appData.potValue += PLIB_ADC_ResultGetByIndex(ADC_ID_1, i);
appData.potValue = appData.potValue / ADC_NUM_SAMPLE_PER_AVERAGE ;

PLIB_ADC_SampleAutoStartEnable(ADC_ID_1);
/* Clear ADC Interrupt Flag */
PLIB_INT_SourceFlagClear(INT_ID_0, INT_SOURCE_ADC_1);
}
Vint вне форума   Ответить с цитированием
Старый 09.06.2018, 10:00   #10
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 768
Вес репутации: 1355/50
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Опрос кнопок.

Цитата:
Сообщение от Марк Посмотреть сообщение
И тут дребезг выражен как некое промежуточное значение с АЦП, возникающее при росте напряжения на емкости.
вот по этому и намекал ТС, что емкость на...
DmitrijVDN вне форума   Ответить с цитированием
Старый 09.06.2018, 10:02   #11
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,696
Вес репутации: 3274/70
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Опрос кнопок.

Vint
plib давно заброшен и часть функций точно не работает корректно.
в стандартный комплект поставки компилятора plib не идет.
сопровождать код с plib, снова же, невозможно, тк. в случае применения современных стандартов собрать проект с PLIB нельзя.

в MPLABX сейчас рекомендуют использовать гармонию(по мне так себе идея).
besogon вне форума   Ответить с цитированием
Старый 09.06.2018, 10:35   #12
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,696
Вес репутации: 3274/70
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Опрос кнопок.

DmitrijVDN
мне удавалось применять емкость, когда нужно что-то делать со входным импедансом.

был случай, когда нужно было редко измерять значение напряжения, превышающее допустимое - соответственно нужно ставить делитель.

но в случае делителя с расчетным 5КОм будут дополнительные траты энергии.
я поставил высокоомный делитель и после него конденсатор, чтобы во время семплирования конденсатор не успел разрядиться.
работает(драйвере учтена скажность обращения к каскаду).
besogon вне форума   Ответить с цитированием
Старый 19.06.2018, 00:54   #13
=L.A.=
Senior Member
 
Регистрация: 26.02.2007
Адрес: Москва РФ
Сообщений: 267
Вес репутации: 232/46
=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about
По умолчанию Re: Опрос кнопок.

Цитата:
Сообщение от ifo12 Посмотреть сообщение
Такие:


9331475.jpg
*
Номиналы надо выбирать так, чтобы разница напряжений между нажатиями соседних кнопок была постоянной. Некая дельта. А ваши номиналы, по моему, не выполняют эту задачу.
__________________
кто-то работает на совесть, а кто-то на других заказчиков...
=L.A.= вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Опрос кнопок и занесение результатов в память dposm Вопросы начинающих 31 07.03.2016 21:30
SX8638 контроллер емкостных сенсорных кнопок smart_pic Общетехнические вопросы 1 22.08.2012 23:31
Проблема с прерыванием PIC 16F877A . chiraevevgenii Вопросы начинающих 8 13.01.2011 20:13
Не срабатывают нажатия кнопок... Kamenev_D Продукция MICROCHIP 44 11.11.2010 15:48
Новичок просит помощи с реализацией 2-х кнопок Ramses27 Вопросы начинающих 14 28.04.2009 14:03


Часовой пояс GMT +3, время: 14:28.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot