Подключенная к Arduino клавиатура печатает неправильные цифры

Схожу с ума, пытаясь подключить клавиатуру к моему Arduino. Я следовал этой статье KeypadTutorial, но мне кажется, что что-то не так/не так, потому что у моей клавиатуры всего 9 контактов, а крайний левый (контакт 1) и крайний правый (контакт 9) контакты не имеют никаких следов, ведущих к клавиатуре. Я купил ее много лет назад и только сейчас нашел ей применение. Выглядит точно так же, как эта клавиатура Arduino, но отличается белыми клавишами с черным шрифтом.

Проблема в том, что отображается неправильная клавиша (например, нажимаю 0 и получаю 9). Я использовал мультиметр для проверки непрерывности между контактами при нажатии каждой клавиши и получил результаты, которые меня немного озадачили. Я бы подумал, что должна быть какая-то закономерность (например, первый контакт всегда будет 1, 2 или 3), но, очевидно, нет (или у меня просто плохая клавиатура).

KEY(pin1, pin2)
1(2,3)
2(1,2)
3(2,5)
4(3,7)
5(1,7)
6(5,7)
8(1,6)
9(5,6)
0(1,4)
#(4,5)
*(3,4)

, 👍0

Обсуждение

в вашем списке переставьте контакты для нескольких клавиш, и появится шаблон .... 1(3,2) и 3(5,2) и #(5,4), @jsotola

@jsotola - Не могу поверить, что я **полностью** это пропустил. Как только я переставил указанные вами клавиши и записал их на бумаге в квадратном узоре, все стало совершенно понятно. Соединил их правильно, и они отлично заработали. Если вы хотите опубликовать это, я отмечу это как ответ., @Tom


1 ответ


Лучший ответ:

0

Поменяйте местами штифты некоторых клавиш, и появится узор.

KEY(pin1, pin2)      transposed pins
1(2,3)        x        1(3,2)   
2(1,2)                 2(1,2)
3(2,5)        x        3(5,2)
4(3,7)                 4(3,7)
5(1,7)                 5(1,7)
6(5,7)                 6(5,7)
8(1,6)                 8(1,6)
9(5,6)                 9(5,6)
0(1,4)                 0(1,4)
#(4,5)        x        #(5,4)
*(3,4)                 *(3,4)
,