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

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

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

Сообщение Master » 24 июн 2008, 13:36

Ну он получается... хотя ХЗ может ничего и не случилось, если порты были настроены как входа.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

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

Сообщение snayperAlfa » 24 июн 2008, 13:38

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

Добавлено спустя 1 минуту 29 секунд:
Народ выложите ктото плиз пример обработки нажатий кнопок матрицы.Бо я уже запарился. :(
snayperAlfa
 
Сообщения: 163
Зарегистрирован: 05 июн 2008, 22:03
Откуда: Украина,Одесса
прог. языки: С,Java,SQL если это язык,C++ немного

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

Сообщение $ilent » 24 июн 2008, 13:45

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

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

Сообщение snayperAlfa » 24 июн 2008, 13:49

Спасибо щас попробую этот алгоритм
snayperAlfa
 
Сообщения: 163
Зарегистрирован: 05 июн 2008, 22:03
Откуда: Украина,Одесса
прог. языки: С,Java,SQL если это язык,C++ немного

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

Сообщение blindman » 24 июн 2008, 15:44

А на фига там лишняя нога к клавиатуре? Для матрицы 3х4 достаточно 7 ног, для 4х4 - 8
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение snayperAlfa » 24 июн 2008, 17:24

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

Добавлено спустя 5 минут 59 секунд:
Киньте ктото кусок кода на Си для определения нажатых кнопок.
snayperAlfa
 
Сообщения: 163
Зарегистрирован: 05 июн 2008, 22:03
Откуда: Украина,Одесса
прог. языки: С,Java,SQL если это язык,C++ немного

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

Сообщение blindman » 24 июн 2008, 17:29

Выходы МК к матрице через диоды, входы - через резисторы. Диоды катодом в выходам, входы подтянуть к плюсу внутренними резисторами МК
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение $ilent » 24 июн 2008, 17:42

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

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

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

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++;
        }

      };
}

Я не могу додумать нормальное условие проверки
snayperAlfa
 
Сообщения: 163
Зарегистрирован: 05 июн 2008, 22:03
Откуда: Украина,Одесса
прог. языки: С,Java,SQL если это язык,C++ немного

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

Сообщение AlexCH » 24 июн 2008, 19:47

Апноут 242 на русском языке посмотри. Вроде на gaw.ru лежит. Там нет в схеме диодов.
Работает отлично.
AlexCH
 
Сообщения: 50
Зарегистрирован: 12 мар 2007, 23:15
Откуда: Иркутск

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

Сообщение snayperAlfa » 25 июн 2008, 00:25

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

Добавлено спустя 3 часа 16 минут 34 секунды:
Тут вопрос образовался НЕ по теме.По поводу программатора от протосса.Размер файла прошивки hex 13 Кб.Памяти на Мега8 8 Кб. Логичный вопрос:как он туда залез?
snayperAlfa
 
Сообщения: 163
Зарегистрирован: 05 июн 2008, 22:03
Откуда: Украина,Одесса
прог. языки: С,Java,SQL если это язык,C++ немного

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

Сообщение Victorovych » 25 июн 2008, 00:37

Читай Маркса :)
Аватара пользователя
Victorovych
 
Сообщения: 491
Зарегистрирован: 20 сен 2007, 11:44
Откуда: Харьков
Skype: Victorovych_FF
прог. языки: ASM
ФИО: Иван ВикторОвич

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

Сообщение snayperAlfa » 25 июн 2008, 00:48

Ниче там не понял.
snayperAlfa
 
Сообщения: 163
Зарегистрирован: 05 июн 2008, 22:03
Откуда: Украина,Одесса
прог. языки: С,Java,SQL если это язык,C++ немного

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

Сообщение Myp » 25 июн 2008, 01:33

аааа
клёво

я тоже об этом думал но стеснялся спросить :oops:
а теперь всё ясно :)
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

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

Сообщение Master » 25 июн 2008, 10:46

И что тебе ясно? Я лично тоже нифига не понял.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5