Страница 1 из 1

МК, Матрица кнопок + Светодиоды индикации ?

Добавлено: Пн июн 03, 2013 17:01:13
mega_mozg_13
Приветствую гуру. подскажите по такому вопросу.

Есть работающая схема опроса матрицы кнопок:
Изображение
колонки, порты МК AVR Atmega (PD4/PD5/PD6/PD7), иницируются в прошивке

Код: Выделить всё

 PORTB=0b00000000;
 PORTD=0b11110000;
  DDRD=0b00000000;
далее, по месту, пошагово переключаются строки и опрашивается матрица:

Код: Выделить всё

 // первая строка PB0
 btn_val=0; DDRB = (1<<DDB0); nop(); btn_val=(~(PIND>>4))&(0b00001111); DDRB = (0<<DDB0);
 // далее использование "btn_val", выделение статуса первых 4х кнопок
 ....
 // вторая строка PB1
 btn_val=0; DDRB = (1<<DDB1); nop(); btn_val=(~(PIND>>4))&(0b00001111); DDRB = (0<<DDB1);
 // далее использование "btn_val", выделение статуса следующих 4х кнопок
 ...
 // и т.д. опрос всех строк матрицы
Вопрос, можно ли вклинить в эту схему индикацию светодидом?
Что-бы в момент когда опрос матрицы не нужен, "отдавать" наружу свечение или мигание светодиодом.
Программно я смогу описать, помогите пожалуйста, не накосячить со схемой и не получить КЗ где нибудь на микрухе...

Re: МК, Матрица кнопок + Светодиоды индикации ?

Добавлено: Пн июн 03, 2013 17:36:27
blackx
Можно, просто добавится еще одна строка/столбец матрицы. В вашем случае скорее строка. Светодиод вместе с резистором устанавливается вместо обычного диода. Кстати, не очень хорошо, что ваша схема никак не ограничивает сквозной ток. - не так понял вашу схему :) У вас диоды не перевернуты ли?

Во время "опроса" светодиодов они будут просто загораться в зависимости от значения переменной btn_val (которое нужно перед этим установить).

Re: МК, Матрица кнопок + Светодиоды индикации ?

Добавлено: Пн июн 03, 2013 17:45:59
mega_mozg_13
blackx, уважаемый, задачка без добавления новых строк/колонок, свободных портов нет.
Я думал вот как: когда не включен опрос матрицы кнопок, переключать порты(и соответствующие пины конечно) наоборот:
-если при опросе порты D-вход, B-выход
-вне опроса порты
D-выход с "1" т.е. близким напряжением питания,
B-вход - чтобы его статус никак не влиял на процесс свечения, независимо от нажатой или отжатой кнопки

и к ножке "D-выход" через резистор от земли подкинуть светодиод.

выходит:
когда включен опрос, кнопка отжата, "D-вход" подтянут к питанию через 10ком - светодиод по идее не должен гореть
когда включен опрос, кнопка нажата, "D-вход" прижат к земле - светодиод точно не должен гореть
когда выключен опрос, "D-выход" отдает питание - светодиод горит (или не горит, в зависимости от "программного" назначения)

поправьте, пожалуйста, если не прав?
blackx писал(а): Кстати, не очень хорошо, что ваша схема никак не ограничивает сквозной ток. - не так понял вашу схему :) У вас диоды не перевернуты ли?
увы, я почти совсем не шарю в схемотехнике.
я взял работающее железо, но прошивка была написана на асме, и только заново переписал софтовую часть на си.
можно сказать я на 99% программист и только на 1% схемотехник.
поэтому и обращаюсь к вам сюда.

Re: МК, Матрица кнопок + Светодиоды индикации ?

Добавлено: Пн июн 03, 2013 17:50:33
blackx
Понятно. Да, если просто зашунтировать кнопку и диод светодиодом с резистором то работать будет :) Нажатия кнопок при этом не будут ни на что влиять (обратный ток нигде не пойдет).