Показать сообщение отдельно
Старый 09.09.2013, 20:37   #543
OsDima
Старший Пользователь
 
Регистрация: 25.06.2011
Возраст: 54
Город: Красноярск
Регион: 24
Машина: Nissan Wingroad WFY-11 2003
Сообщений: 166
OsDima will become famous soon enough
По умолчанию

Цитата:
Сообщение от Bersenev Посмотреть сообщение
переменная res_key_count должна быть равна 0 при загрузке скетча. Потом ей будет присвоено значение из EEPROM.

Твоя проблема скорее всего связана с низким качеством самих кнопок. Я вначале поставил тактовые кнопки и запарился с ними, они всё время возвращали разные значения. Заменил их на микроконтакты и всё сразу исправилось.

В твоём случае думаю стоит увеличить шаг сопротивлений, то есть использовать не 100 Ом, а 200 или 300. И увеличить переменную unsigned int res_key_delta = 3; с 3-х, до 5-ти, а может и до 6-ти или 7-ми.

Но прежде чем заливать новый скетч поменяй это значение

#define RES_KEY_FLAG_ 0x76 // Флаг первого запуска скетча

с 0x76 на другое значение, допустим 0x77. Тогда скетч будет считать что это его первый запуск и сотрёт из EEPROM все ранее запомненые значения
Заменил резисторы на 200 Ом. Кнопок у меня 18 шт. Чем ближе к концу цепочки тем хуже стабильность распознования. Или всетаки придется поставить микроконтакты, кнопки вообще-то японские.....
OsDima вне форума   Ответить с цитированием