roboforum.ru

Технический форум по робототехнике.

Матричная клавиатура

Re: Матричная клавиатура

Master » 24 июн 2008, 13:36

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

Re: Матричная клавиатура

snayperAlfa » 24 июн 2008, 13:38

Проверил тока шо тестером.Выставляется и 0 и 1 на ножках.

Добавлено спустя 1 минуту 29 секунд:
Народ выложите ктото плиз пример обработки нажатий кнопок матрицы.Бо я уже запарился. :(

Re: Матричная клавиатура

$ilent » 24 июн 2008, 13:45

1. Настраиваешь три ноги на выход, четыре на вход.
2. на одну из трёх 1, на остальных 0.
3. проверяешь на какой из четырёх появился 1.
Если на какой-то появился, значит была нажата клавиша соединяющая эти ноги.
И т.д по остальным двум ногам.
И всё это дело в бесконечный цикл.
Не забывая проверять удержание и избываление от дребезга.

Re: Матричная клавиатура

snayperAlfa » 24 июн 2008, 13:49

Спасибо щас попробую этот алгоритм

Re: Матричная клавиатура

blindman » 24 июн 2008, 15:44

А на фига там лишняя нога к клавиатуре? Для матрицы 3х4 достаточно 7 ног, для 4х4 - 8

Re: Матричная клавиатура

snayperAlfa » 24 июн 2008, 17:24

Если я использую 7 проводов то резисторы цеплять на каждый провод?
У меня такой прикол с наводками:тока подношу руку и сразу сигнал как будто я нажал на кнопку

Добавлено спустя 5 минут 59 секунд:
Киньте ктото кусок кода на Си для определения нажатых кнопок.

Re: Матричная клавиатура

blindman » 24 июн 2008, 17:29

Выходы МК к матрице через диоды, входы - через резисторы. Диоды катодом в выходам, входы подтянуть к плюсу внутренними резисторами МК

Re: Матричная клавиатура

$ilent » 24 июн 2008, 17:42

snayperAlfa писал(а):Если я использую 7 проводов то резисторы цеплять на каждый провод?
У меня такой прикол с наводками:тока подношу руку и сразу сигнал как будто я нажал на кнопку

Добавлено спустя 5 минут 59 секунд:
Киньте ктото кусок кода на Си для определения нажатых кнопок.

1. Земли нет.
2. В сети их полно. Лентяев ни кто не любит.

Re: Матричная клавиатура

snayperAlfa » 24 июн 2008, 19:14

Вот я тут накидал схему клавы
ABCD0001.jpg


Потом такой код
Код: Выделить всёРазвернуть
void main(void)
{

DDRC= 0b11110000;
PORTC=0b00001110;

// LCD module initialization
lcd_init(16);
lcd_clear();

while (1)
      {
         int i;
                                         
         if(!PINC.1 &&   !PINC.5 && !PINC.6 && !PINC.7   )
        {
        delay_ms(50);
        lcd_clear();
        printf("%d BT 1 PRESSED",i);
        i++;
        } 
         
        if(PINC.4==0 && PINC.2==0)
        {
        delay_ms(50);
        lcd_clear();
        printf("%d BT 2 PRESSED",i);
        i++;
        }

      };
}

Я не могу додумать нормальное условие проверки

Re: Матричная клавиатура

AlexCH » 24 июн 2008, 19:47

Апноут 242 на русском языке посмотри. Вроде на gaw.ru лежит. Там нет в схеме диодов.
Работает отлично.

Re: Матричная клавиатура

snayperAlfa » 25 июн 2008, 00:25

СПАСИБО!!!!!Сделал для одной строчки.Завтра сганяю на радиобазар, куплю резисторов,бо не хватило. Оказвывается МК переключает состояние ног с DDRC= 0b11110000; PORTC=0b00001110; на DDRC= 0b00001110;PORTC=0b11110000; не за 0 секунд.Пришлось ввести задержку 50мс.

Добавлено спустя 3 часа 16 минут 34 секунды:
Тут вопрос образовался НЕ по теме.По поводу программатора от протосса.Размер файла прошивки hex 13 Кб.Памяти на Мега8 8 Кб. Логичный вопрос:как он туда залез?

Re: Матричная клавиатура

Victorovych » 25 июн 2008, 00:37

Читай Маркса :)

Re: Матричная клавиатура

snayperAlfa » 25 июн 2008, 00:48

Ниче там не понял.

Re: Матричная клавиатура

Myp » 25 июн 2008, 01:33

аааа
клёво

я тоже об этом думал но стеснялся спросить :oops:
а теперь всё ясно :)

Re: Матричная клавиатура

Master » 25 июн 2008, 10:46

И что тебе ясно? Я лично тоже нифига не понял.


Rambler\'s Top100 Mail.ru counter