roboforum.ru

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

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

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

snayperAlfa » 23 июн 2008, 22:58

собрал я вот такую схму для матрицы кнопок.
clip_image002.jpg
clip_image002.jpg (10.85 КиБ) Просмотров: 2851


Пишу вот такой код и оно выводит надписи хотя я кнопки не нажимаю
Код: Выделить всёРазвернуть
DDRC= 0b00000001;
PORTC=0b00000001;

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

while (1)
      {
     
       
        if(PINC.1==1){
        delay_ms(50);
        lcd_clear();
        printf("PINC.1==1");
        delay_ms(3000);
        }
       
        if(PINC.4==1){
        delay_ms(50);
        lcd_clear();
        printf("PINC.4==1");
        delay_ms(3000);
        }
       
      };


Как это исправить?

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

Myp » 23 июн 2008, 23:01

хмм
я конечно ничо не понимаю в програмлении
но щас ктонить придёт и скажет что у тебя ноги неправильно сконфигурены
и чото мне схема не нравится...

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

snayperAlfa » 24 июн 2008, 00:28

Я изменил код на следующий
while (1)
{
if(PINC.1==1 && PINC.4==0){
delay_ms(50);
lcd_clear();
printf("PINC.1==1");
delay_ms(3000);
}
};

И теперь когда подношу руку к проводам которы идут от клавы к МК то надпись поялвяется на ЖК. :o Шо это я за датчик изобрел? :D

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

Victorovych » 24 июн 2008, 01:45

Входы РС4-РС7 ни к чему не подтянуты и висят в сером состоянии, при поднесенной руке емкость линии изменяется, потенциал на входе приподымается и трактуется контроллером как единица(достаточно одного такта). Дисплей рисует. :)
Вывод датчик - емкостной :ROFL:
К-стати не пойму, зачем РС0, хитрое ноухау?

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

$ilent » 24 июн 2008, 09:29

Исправить на что?
Можно например так:
Код: Выделить всёРазвернуть
DDRC= 0b00000000;
PORTC=0b00000000;

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

while (1)
      {
        if(PINC.1==1){
        delay_ms(50);
        lcd_clear();
        printf("Пиво");
        delay_ms(3000);
        }
        if(PINC.4==1){
        delay_ms(50);
        lcd_clear();
        printf("Мясо");
        delay_ms(3000);
        }
      };

А вообще опрос клавиш не правильный, с матрицей так не работают.
И для чего РС0 с диодами подключил?

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

Master » 24 июн 2008, 11:06

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

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

snayperAlfa » 24 июн 2008, 11:22

Я схему взял из апноута атмеля.Но там код на асме.Я в нем 0.Если кому не трудно то укажите как переподключить матрицу кнопок и проводить ее опрос.Позалуста

Добавлено спустя 3 минуты 28 секунд:
Вот откуда взял схему AVR240.pdf.
clip_image002.jpg

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

EdGull » 24 июн 2008, 11:31

а ни чё что она с твоей ваще не совпадает? :wink:

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

snayperAlfa » 24 июн 2008, 11:43

У меня клава 3*4 и без резисторов

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

EdGull » 24 июн 2008, 11:50

решил на резисторах сэкономить? :D

Добавлено спустя 2 минуты 39 секунд:
или ты думаешь что они там лишние?

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

snayperAlfa » 24 июн 2008, 12:21

Щас я их туда присобачу

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

EdGull » 24 июн 2008, 12:26

боюсь чт оуже поздно :D

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

snayperAlfa » 24 июн 2008, 12:41

:shock:

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

Master » 24 июн 2008, 12:55

Не ну а что ты хотел? Представляешь какой ток пошел через порты МК.

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

Victorovych » 24 июн 2008, 13:10

Контроллеру думаю ничего не случилось, какие там токи?


Rambler\'s Top100 Mail.ru counter