Перейти к содержанию

Atmega16A подключение матричной клавиатуры. Какой способ лучше


freebits

Рекомендуемые сообщения

Добрый день.

В данной статье "Опрос матричной клавиатуры" предлагается следующий способ подключения матричной клавиатуры

lesson20-1.thumb.png.626d3f8c7cbf6e346e21970ce19d3376.png

int i=0,j=0;
char portState[4]= {0xEF,0xDF,0xBF,0x7F};
char inputState[4]={0x01,0x02,0x04,0x08};
 
interrupt [TIM2_COMP] void timer2_comp_isr(void)
{ 
    for(i=0; i<4; i++)
    { 
       PORTD=portState[i];
       for(j=0; j<4; j++)
       { 
          if(((PIND&inputState[j])==0))
          {
 
          }
       }                          
    }  
}

Подскажите насколько безопасен для микроконтроллера данный способ?

Дело в том, что я решил реализовать данный способ с клавиатурой 3х3, подключенной таким же абсолютно образом только с использованием порта C: к битам PC7-PC5  (выходные) подключены столбцы клавиатуры через диоды, к битам PC4-PC2 (входные) - строки напрямую. Подключение 100% идентичное. И вот после нескольких пробных запусков обнаружил, что порту стало плохо. Проявляется это в том, что если например в порт C отправить PORTC = 0xFF, то в регистре PINC будет значение 0b11000011, и если замерять напряжения на ножках порта, то в тех битах где нули, там напряжения: 5.0, 0.1, 5.0, 5.0. На остальных 5.1 В. Т.е. это либо изначальный дефект (что мало вероятно), либо порт вышел из строя. 

Я так подозреваю, что это произошло из-за следующего: В моём случае биты PC4-PC2 настроены на ввод, остальные на вывод. Строчкой PORTC=portState; в порт отправляется значения из массива DF, BF, 7F , при которых входные биты PC4-PC0 всегда установлены в 1, а меняются только выходные биты PC7-PC5 - в них поочередно отправляется лог 0. По замыслу, при нажатии кнопки лог 0, должен зафиксироваться в каком-то из входных битов PC4-PC2 в регистре PINC в зависимости от нажатой кнопки. Но произошло следующее - через нажатую кнопку, например кнопку 2, с входного бита PC2 (который всегда в лог 1) через диод ток закоротился на присутствующий в бите PC5  в этот момент времени лог 0. В результате эти два бита каким-то образом вышли из строя.

Более понятно можно объяснить на примере в этой  Статье.

schematic.jpg.c42ffb2774fc9eeba1be508eb4a658b8.jpg

int main(void)
{
	DDRB|=(1<<PB2); //Настраиваем ножку PB2 в режим выхода
	DDRB&=~(1<<PB1); //Настраиваем ножку PB1 в режим входа
	PORTB|=(1<<PB1); //Устанавливаем pull-up режим ножки PB1
    while(1) //бесконечный цикл
    {
        if((PINB&(1<<PB1))==0)//Если на PB1 логический ноль
		{
			PORTB|=(1<<PB2);//Зажигаем светодиод
		}
		else// если на PB1 логическая единица
		{
			PORTB&=~(1<<PB2);//Гасим светодиод
		}
    }
}

Здесь при нажатии кнопки, лог 1 с ноги PB1, установленный строчкой PORTB|=(1<<PB1); закоротится на землю.

Так вот вопрос, разве такой способ опроса кнопки безопасен для порта? Если это безопасно, зачем тогда отслеживать поступление на входные биты лог 0, когда с тем же успехом можно отслеживать поступление на входных битах лог 1, через нажатую кнопку с выходного бита? И все-таки порт повредился из-за такого подключения, или это был заводской дефект?

 

Изменено пользователем freebits
Ссылка на комментарий
Поделиться на другие сайты

23 минуты назад, freebits сказал:

насколько безопасен

Абсолютно безопасен.

Я бы довел до ума так:

1. Подтянул входы к питанию через резисторы 1к, т.к. внутренние ни о чём.

2. Сделал задержку между выставлением 0 и опросом, дабы лапка устаканилась.

Я не раздаю удочки. Я продаю рыбу.

Ссылка на комментарий
Поделиться на другие сайты

Что касается использования внутреннего подтягивающего резистора, то я отказался от этого. Я всегда ставлю внешний, что бы не было таких проблем.

Зачем нужны диоды на схеме мне не понятно. В статье написано 

Цитата

Диоды нужны, чтобы защитить входы микроконтроллера, если нажато несколько кнопок одновременно.

Я не знаю от чего их нужно защищать) По моей логике я бы сделал так для Вашего случая 3х3
вешаем 6 резисторов на 10 кОм между 6 портами и положительным питанием.
все порты на вход, подтяжка выключена ибо как я писал выше эта штука ненадежная) легко выгорает внутренний резистор как показала моя практика :D
дальше включаем на выход 1 порт который с логическим 0 на выводе
проверяем на каком входе появился 0 все и ничего не должно сгореть)

ну и тд, переключаем обратно на вход порт с 0 и следующий включаем на выход.

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

57 минут назад, DrobyshevAlex сказал:

Я не знаю от чего их нужно защищать)

от КЗ , уберите диоды и нажмите кнопки в одной линии , получите замыкание на выходе порта.

Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

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

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

1 час назад, DrobyshevAlex сказал:

Я не знаю от чего их нужно защищать

КЗ будет, при нажатии определённых кнопок одновременно.

PS: Упс, опередили :)

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

2 часа назад, IMXO сказал:

от КЗ , уберите диоды и нажмите кнопки в одной линии , получите замыкание на выходе порта.

2 часа назад, Alex сказал:

КЗ будет, при нажатии определённых кнопок одновременно.

Каких? Все ноги на входе 1 на выходе, обо что она может замкнуть?

А ну если ноги на выходе будут все те что к диодам подключены тогда да. Но смысл ставить диоды если можно просто ноги держать на входе без подтяжки?

То есть мы опрос делаем не переводом порта с 1 в 0 а переводом DDRx в 1 а так как PORTx без подтяжки то сразу и получим на выходе 0, или я ошибаюсь?

 

4 часа назад, freebits сказал:

PC4-PC2 (входные) - строки напрямую

4 часа назад, freebits сказал:

PC7-PC5  (выходные) подключены столбцы клавиатуры через диоды

То есть настройка будет такой

DDRC = 0x00;
PORTC = 0x00;

Как минимум к ногам PC4-PC2 - подключены резисторы 10k.

Тогда при нажатии хоть всех кнопок ничего не случится в теории :) Ну и по очереди DDRC в цикле переводим на вывод. Тогда на нем окажется логический 0.

Ссылка на комментарий
Поделиться на другие сайты

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

port-sh.GIF.798133e60142766fc3d54257237241a7.GIF

Получилось на выводе PORTC.5 = 1, а на выводе PORTC.4 = 0. Если подставить DDRC.5 = 1 и DDRC.4 = 1, то видно что на выводе PС5 нижний ключ подтягивает выход на землю, а в PС4 верхний подтягивает на VCC, и если соединить оба выхода через нажатую кнопку, то оба ключа пробиваются.

Так что приведенный выше метод не является безопасным, учитывая что ошибиться очень просто. И почему про это в данных статьях ничего не написано? Лучше делать как написали выше - используя дополнительные резисторы

 

Спасибо всем за ответы! Буду использовать 10 кОмные дополнительные резисторы.

54 минуты назад, DrobyshevAlex сказал:

Как минимум к ногам PC4-PC2 - подключены резисторы 10k.

Да, туда я и подцеплю 3 шт по 10к.

Изменено пользователем freebits
Ссылка на комментарий
Поделиться на другие сайты

24 минуты назад, freebits сказал:

если  лог 1 с одного вывода, находящегося в режиме выхода  подать на другой вывод тоже находящийся в режиме выхода но с лог 0

Ну так я Вам описал алгоритм который позволит избавится от диодов, и никогда ни один порт не будет в режиме вывода с логической 1 :)

 

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, DrobyshevAlex сказал:

Ну так я Вам описал алгоритм который позволит избавится от диодов, и никогда ни один порт не будет в режиме вывода с логической 1 :)

Да, спасибо, именно так я сейчас и сделал, и все работает! Спасибо.

Изменено пользователем freebits
Ссылка на комментарий
Поделиться на другие сайты

13 часа назад, DrobyshevAlex сказал:

Ну так я Вам описал алгоритм который позволит избавится от диодов, и никогда ни один порт не будет в режиме вывода с логической 1 :)

херню вы описали, показываю наглядно:

опрос 1 столбца; нажаты 3, 4, 8 и 6 кнопки;

5c32814f201f0_.png.394cc146f8e22891789bc1ae23832730.png

Ссылка на комментарий
Поделиться на другие сайты

9 часов назад, IMXO сказал:

херню вы описали, показываю наглядно:

и что вы показали? Как у Вас одновременно на 2-х столбцах 0??

Это бессмысленно) 

То есть Вы с 1-го столбца замкнули кнопкой на 2ой? И что? Ни какого КЗ не будет

То есть нога второго столбца на входе же, КЗ не будет.

Ссылка на комментарий
Поделиться на другие сайты

В 06.01.2019 в 05:39, freebits сказал:

через нажатую кнопку, например кнопку 2, с входного бита PC2 (который всегда в лог 1) через диод ток закоротился на присутствующий в бите PC5  в этот момент времени лог 0.

Вход PC2 должен быть подтянут к питанию (лог 1) а не в Лог 1. Порт обязательно должен работать на вход. Если вдруг порт стал работать на выход и в состоянии лог 1 то никакой диод не поможет

Алгоритм следующи ( по первой схеме ) PD0-3  работают на вход (всегда ) и подтянуты к лог 1.  PD4-7 на выход и в состоянии лог 1. При опросе один из выводов PD4 например переключаем в лог 0 , проверяем где на вводах PD0-4 стал лог 0. Если есть значит нажата кнопка 1-4, или несколько сразу. Потом возвращаем PD4 в лог 1 а PD5 например в лог 0. и опрашиваем еще раз проверяя кнопки 5-8

 

10 часов назад, IMXO сказал:
В 06.01.2019 в 06:09, DrobyshevAlex сказал:

Я не знаю от чего их нужно защищать)

от КЗ , уберите диоды и нажмите кнопки в одной линии , получите замыкание на выходе порта.

Защита в следующем: при PD4 в лог 0, а остальные в лог1, при нажатии например кнопок 4, 8 одновременно выход PD5 (лог1) закорачивается на выход PD4 (лог0). Диод от этого защищает.

Изменено пользователем Serb_ret
Ссылка на комментарий
Поделиться на другие сайты

Вообще ни кто не читает? 

3 минуты назад, Serb_ret сказал:

одновременно выход PD5 (лог1) 

Нет выхода! Он на входе - и диоды не нужны... Ни кто не закарачивается :)

Ссылка на комментарий
Поделиться на другие сайты

38 минут назад, Serb_ret сказал:

Алгоритм следующи ( по первой схеме ) PD0-3  работают на вход (всегда ) и подтянуты к лог 1.  PD4-7 на выход и в состоянии лог 1. При опросе один из выводов PD4 например переключаем в лог 0 , проверяем где на вводах PD0-4 стал лог 0. Если есть значит нажата кнопка 1-4, или несколько сразу. Потом возвращаем PD4 в лог 1 а PD5 например в лог 0. и опрашиваем еще раз проверяя кнопки 5-8

По описанному мной алгоритму закорачивают и диоды необходимы. удалил  

Этот алгоритм более универсален, потому как позволяет использовать порты PD4-7, Когда клавиатура не опрашивается, альтернативными задачами - повесить на них разряды индикатора например, в то время как Ваш алгоритм Обязует эти выводы больше не использовать. 

10 часов назад, IMXO сказал:

показываю наглядно:

опрос 1 столбца; нажаты 3, 4, 8 и 6 кнопки;

5c32814f201f0_.png.394cc146f8e22891789bc1ae23832730.png

 

1 час назад, DrobyshevAlex сказал:

и что вы показали? Как у Вас одновременно на 2-х столбцах 0??

Смысл,наверное, в том (не я писал сообщение и смысл только предполагаю) что кнопка 2 не нажата, а при проверке первого столбца порт кнопки 2 в лог0 т.е. будет сработка

Изменено пользователем Serb_ret
Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, Serb_ret сказал:

Когда клавиатура не опрашивается, альтернативными задачами - повесить на них разряды индикатора например, в то время как Ваш алгоритм Обязует эти выводы больше не использовать. 

Ну если так рассуждать то нужно еще и проц мощней брать вдруг у меня задача скоростное и ног больше, вдруг не хватит...

При чем тут алгоритм где ноги на выводе, я привел альтернативный пример, я не говорю что в вашем нужно выкинуть диоды.

Я привел алгоритм в котором замыкания быть не может. Речь про замыкание в алгоритме где ноги на входе, а меня пытаются убедить что если нога на входе все равно замкнет.

А рассуждать а вдруг автору придется туда индикатор подключить к тем же ногам это то же самое что рассуждать а вдруг он захочет бросить идею, тогда и мк не нужен...

5 минут назад, Serb_ret сказал:

а при проверке первого столбца порт кнопки 2 в лог0 т.е. будет сработка

Если вы поставите диоды, то точно так две соседние кнопки пустят 0 на оба столбца и точно так при проверке будет сработка. Смысл диодов лишь в том что бы запретить КЗ когда 2 порта на выход и у них противоположное значение на выходах.

Отсюда и вопрос, где 

10 часов назад, IMXO сказал:

херню вы описали,

Я лишь спросил что за "херня" в алгоритме если нажать несколько ног когда они на входе?

Можно конечно сказать "а вдруг автор на выход настроит ноги" блин а вдруг он водой обольет плату и отверткой ткнет?

Ссылка на комментарий
Поделиться на другие сайты

4 минуты назад, DrobyshevAlex сказал:

При чем тут алгоритм где ноги на выводе, я привел альтернативный пример, я не говорю что в вашем нужно выкинуть диоды.

но перед этим Вы писали

В 06.01.2019 в 06:09, DrobyshevAlex сказал:

Зачем нужны диоды на схеме мне не понятно. В статье написано 

Цитата

Диоды нужны, чтобы защитить входы микроконтроллера, если нажато несколько кнопок одновременно.

Я не знаю от чего их нужно защищать) По моей логике я бы сделал так для Вашего случая 3х3

И только потом Вы описываете свой алгоритм работы. Причем не предлагаете изменить алгоритм и отказатся от диодов, а именно пишете что диоды не нужны.

Я не критиковал Ваш алгоритм, я лишь попытался объяснить зачем там диоды. 

Ладно этот спор ниочем.

8 минут назад, DrobyshevAlex сказал:

Если вы поставите диоды, то точно так две соседние кнопки пустят 0 на оба столбца и точно так при проверке будет сработка. Смысл диодов лишь в том что бы запретить КЗ когда 2 порта на выход и у них противоположное значение на выходах.

Абсолютно согласен, и не утверждал иного. 

10 минут назад, DrobyshevAlex сказал:

Можно конечно сказать "а вдруг автор

Конечно можно, но логика в следующем: Если автор подключает клавиатуру 4х4, вполне логично предположить что будет подключено устройство вывода,  это еще один порт. и вполне логично что будет еще устройство которым управляет этот контроллер, а может еще и датчики какие-то.  и может быть что в конце концов не хватит всего одного вывода, в то время как ресурсов контроллера хватает. Потом переделывать алгоритм - та еще задача. Но, не исключено, что автор просто хочет зажечь светодиоды...

Поэтому можно взять за правило использовать универсальные алгоритмы и предусматривать защиту, - добавить 4 диода в схему - ведь та еще проблема.

А вообще каждый алгоритм подходит под определенную задачу, и имеет право на жизнь. И какой из них использовать нужно смотреть не в контексте проблемы (как подключить клавиатуру) а в контексте задачи ( что за устройство).

 

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, Serb_ret сказал:

Причем не предлагаете изменить алгоритм и отказатся от диодов, а именно пишете что диоды не нужны.

Ну как же не предлагаю, то есть я его расписал просто что бы набить количество символов на форуме?)

По моему отчетливо видно что  я написал) Что бы было понятней тем кто не осилил весь мой текст укорочу "Зачем нужно использовать диоды в ДАННОЙ схеме мне не понятно, потому что можно просто ногу перевести на входы и подтянуть резисторами строки."

4 минуты назад, Serb_ret сказал:

вполне логично предположить что будет подключено устройство вывода

Ну  я на это и ответил уже выше, что рассуждать что нужно будет на те же ноги я не Ванга и не собирался)

В Вашей практике может у вас заканчивались ноги, я делаю для себя и у меня  такого не было)

При выпуске бентли, да чо бентли) даже девятки, завод не ставит фаркоп с мыслями а вдруг человек захочет прицеп прицепить)

8 минут назад, Serb_ret сказал:

А вообще каждый алгоритм подходит под определенную задачу, и имеет право на жизнь. И какой из них использовать нужно смотреть не в контексте проблемы (как подключить клавиатуру) а в контексте задачи ( что за устройство).

Так я ж Вам это и говорю уже второй пост) в задаче нет условия подключить туда что то еще, я и предложил так) Извините что высказал свой вариант) больше не буду) Пусть тут отвечают дальше модераторы которые устали всем отвечать и хотят просто похамить. Процветания форуму)

Ссылка на комментарий
Поделиться на другие сайты

12 минуты назад, DrobyshevAlex сказал:

Что бы было понятней тем кто не осилил весь мой текст укорочу "Зачем нужно использовать диоды в ДАННОЙ схеме мне не понятно, потому что можно просто ногу перевести на входы и подтянуть резисторами строки."

для тех кто не осилил наглядный пример объясняю, вне зависимости от способа подачи лог0 на управляющие выводы , при нажатии нескольких кнопок одновременно, происходит ошибка чтения состояния кнопок. И решается эта проблема наличием диодов. Другой вопрос, что для матрицы 4х4 четырех диодов не достаточно. И правильным вопросом  было бы "Почему в схеме так мало диодов и не обеспечивается элементарная "защита от дураков" "

ЗЫ и ВЫ путаете  хамство , с тыканием носом субъекта мнящего себя крутым эмбером в элементарные основы работы МК с периферией . 

Ссылка на комментарий
Поделиться на другие сайты

 

1 час назад, DrobyshevAlex сказал:

Ну если так рассуждать то нужно еще и проц мощней брать вдруг у меня задача скоростное и ног больше, вдруг не хватит...

Так наоборот Ваш алгоритм и подразумевает одна задача один порт, две задачи два порта(образно, конечно, говоря), в то время как описанный мной алгоритм ( ни в коем случае не мой) дает наоборот возможность использовать  один и тот же порт в двух задачах, и переходить на более мощный контроллер когда действительно все ресурсы исчерпаны. Возьмем к примеру схему из первого поста на atmega8, если шину данных LCD посадить на выводы с диодами клавиатуры, можно освободить 4 вывода для иных задач. Итого для клавиатуры и LCD 15 против 11 выводов. И можно использовать Tiny2313 вместо mega8. и еще свободные выводы будут.

Еще раз повторюсь, я ни в коем разе не критикую Ваш алгоритм и не отстаиваю изначально используемый, я всего лишь описал смысл защитных диодов в стартовой схеме.  Если бы Вы изначально написали "Я предлагаю использовать другой алгоритм и поэтому отказаться от диодов" не было бы никакого недопонимания, а так написано то что написано.

В 06.01.2019 в 06:09, DrobyshevAlex сказал:

Зачем нужны диоды на схеме мне не понятно. В статье написано 

Цитата

Диоды нужны, чтобы защитить входы микроконтроллера, если нажато несколько кнопок одновременно.

Я не знаю от чего их нужно защищать) По моей логике я бы сделал так для Вашего случая 3х3

 

Изменено пользователем Serb_ret
Ссылка на комментарий
Поделиться на другие сайты

5 минут назад, IMXO сказал:

Другой вопрос, что для матрицы 4х4 четырех диодов не достаточно

То есть Вы признаете, что те 4 диода не помогут определить нажатие нескольких клавиш одновременно.

Но Вы дате мне схему без 4 диодов и показываете просто что без 4х диодов о которых речь шла в моем первом посте при нажатии кнопок 0 пойдет на соседние столбцы.

Вы пишите

12 часа назад, IMXO сказал:

херню вы описали

А потом

9 минут назад, IMXO сказал:

тыканием носом субъекта мнящего себя крутым эмбером в элементарные основы работы МК с периферией . 

Я Вот не понимаю, Вы реально не видите здесь нестыковок?

Я вижу это так, речь шла про диоды для защиты от КЗ.

Я предложил вариант просто порты не держать в выводе. Что это поможет от КЗ и я не вижу смысла держать порты в Выводе в данном случае подавая на них питание, зачем?

Вы же просто кидаете схему, в пост о КЗ! Потом, вместо фразы, "это не позволит определить нажатие несколько кнопок одновременно, кидаете картинку где 0 заходит на другой столбец и идет в МК без диода, явно намекая на то что будет КЗ, ибо речи про определение нескольких кнопок не было вообще.

И потом, вместо того что бы просто выкрутиться и скзаать ну я не то имел ввиду, я имел ввиду что кнопки не определить, опять пытаетесь нахомить фразой

15 минут назад, IMXO сказал:

субъекта мнящего себя крутым эмбером

Я никогда не писал на форуме что я спец. Я создал кучу тем где сам прошу разъяснить.

Я даже не знаю как объяснить ваше поведение, где вы написали не по теме, и Ваша картинка намекает на другое, и скорей всего Вы могли ошибиться не дочитав что то. И дабы просто это написать, вы пытаетесь опять что то написать плохое...

@IMXO были бы у меня права модератора и Ваш характер я бы забинил меня а не просто написал каку в мой адрес!

5 минут назад, Serb_ret сказал:

Еще раз повторюсь, я ни в коем разе не критикую Ваш алгоритм и не отстаиваю изначально используемый, я всего лишь описал смысл защитных диодов в стартовой схеме.

Я Ваш тоже не критикую) Я уже несколько раз написал, что речь шла о статье где написано что свойство диодов это защита от КЗ. Бе всяких там доп возможностей порта.

6 минут назад, Serb_ret сказал:

Я предлагаю использовать другой алгоритм и поэтому отказаться от диодов

Ну у каждого свое в голове) Я прочел тему, предположил от чего сгорел порт, открыл статью, глянул что написано про диоды, и написал свой пост)

Ссылка на комментарий
Поделиться на другие сайты

Я понимаю что у каждого свое в голове, поэтому я и говорю что нужно писать однозначно, а не надеяться что кто то, Вас правильно поймет. Ткните в свой первый пост где Вы предлагаете использовать другой алгоритм? Ключевое слово другой. Описываете свой, согласен, я и не утверждал иного. Но Вы описываете другой алгоритм или описываете как Вы поняли тот который используется????

Цитата

Теперь нужно понять принцип работы более детально. Ножки, подключенные к общему проводу строк, настраиваются как вход, те что подключены к столбцам настроены как выход.  

Это из статьи по ссылке. Причем прочитав статью я не скажу что в ней очень хорошо расписан сам алгоритм. Может нужно прочитать весь цикл статей и тогда все станет на свои места?

В 06.01.2019 в 06:09, DrobyshevAlex сказал:

По моей логике

Что это означает? Что Вы неправильно поняли алгоритм или предлагаете Другой алгоритм. Что такое Ваша логика? Как Вы себе поняли этот алгоритм, или что Вы используете другой с другой логикой работы?

Я не утверждаю что Вы не поняли используемый алгоритм и не утверждаю что Вы предлагаете использовать другой алгоритм, я утверждаю что это явно не указано в Вашем первом посте. От сюда весь флуд и пошел.

Ссылка на комментарий
Поделиться на другие сайты

57 минут назад, DrobyshevAlex сказал:

Я Вот не понимаю, Вы реально не видите здесь нестыковок?

я как раз их вижу, а вот вы к сожалению нет

это ваше?

В 06.01.2019 в 06:09, DrobyshevAlex сказал:

Зачем нужны диоды на схеме мне не понятно.

был дан ответ., далее

В 06.01.2019 в 09:40, DrobyshevAlex сказал:

Но смысл ставить диоды если можно просто ноги держать на входе без подтяжки?

 

В 06.01.2019 в 10:45, DrobyshevAlex сказал:

Ну так я Вам описал алгоритм который позволит избавится от диодов, и никогда ни один порт не будет в режиме вывода с логической 1 :)

вам дан ответ , что этот алгоритм не работает , но уже по другой причине (причина наглядно показана на картинко или нет?), собственно вам об этом сказали

2 часа назад, Serb_ret сказал:

Смысл,наверное, в том (не я писал сообщение и смысл только предполагаю) что кнопка 2 не нажата, а при проверке первого столбца порт кнопки 2 в лог0 т.е. будет сработка

подтверждать очевидное смысла со своей стороны не увилел

, вы этого не поняли и уперлись

 

2 часа назад, DrobyshevAlex сказал:

Я лишь спросил что за "херня" в алгоритме если нажать несколько ног когда они на входе?

потом попытались перейти на личности

намекая на умственные способности, на что получили адекватною ответку.

так о какой "каке" вы хотите поговорить?

 

 

Ссылка на комментарий
Поделиться на другие сайты

9 минут назад, IMXO сказал:

Зачем нужны диоды на схеме мне не понятно.

Это был риторический вопрос) Там вообще даже не вопрос было, а просто я высказал свое мнение) Что я не понимаю зачем их поставили если можно было обойтись без них, имхо даже тока потребление упадет если без них и не подавать питание на вывод) Но я не спец) Это просто рассуждения.

12 минуты назад, IMXO сказал:

вам дан ответ , что этот алгоритм не работает

Какой ответ??? На какой вопрос? Вы реально читаете через строку только что Вам выгодно? В первой схеме 4 диода, речь про них, и только. Ваш ответ на 4 диода только в том что питание пойдет на ногу мк столбца соседнего.

На что я написал что она не подключена на вывод. 

В каком месте алгоритм не работает без диодов против 4х диодов?

15 минут назад, IMXO сказал:

собственно вам об этом сказали

На что я ответил

2 часа назад, DrobyshevAlex сказал:

Если вы поставите диоды, то точно так две соседние кнопки пустят 0 на оба столбца и точно так при проверке будет сработка. Смысл диодов лишь в том что бы запретить КЗ когда 2 порта на выход и у них противоположное значение на выходах.

1 час назад, DrobyshevAlex сказал:

Но Вы дате мне схему без 4 диодов и показываете просто что без 4х диодов о которых речь шла в моем первом посте при нажатии кнопок 0 пойдет на соседние столбцы.

 

17 минут назад, IMXO сказал:

намекая на умственные способности, на что получили адекватною ответку.

Каждый думает в меру своей распущенности. Я пишу много букофф и возможно не все эти буквы читают. При чем тут умственные способности? Я не написал для тех кто не понял. Я написал для тех кто не прочел.

19 минут назад, Serb_ret сказал:

Ткните в свой первый пост где Вы предлагаете использовать другой алгоритм?

тут)

1 час назад, DrobyshevAlex сказал:

дальше включаем на выход 1 порт который с логическим 0 на выводе
проверяем на каком входе появился 0 все и ничего не должно сгореть)

ну и тд, переключаем обратно на вход порт с 0 и следующий включаем на выход.

 

21 минуту назад, Serb_ret сказал:

Может нужно прочитать весь цикл статей и тогда все станет на свои места?

Я повторюсь, я прекрасно знаю зачем там диоды если на вывод нужно ставить все 4 порта. На схеме изображено только подключение клавиатуры без всяких там индикаторов.

Я просто написал без знака вопроса, "я  не понимаю зачем там диоды" и продолжил в том же после что можно просто убрать вывод высокого уровня на ногах, и повесить их на слушание в воздух. Их никто опрашивать не собирался, а лишь переключать в вывод по очереди когда нужно опросить строку.

23 минуты назад, Serb_ret сказал:

Что Вы неправильно поняли алгоритм или предлагаете Другой алгоритм

Ну Вам виднее правильно ли я его понял)

@IMXO То что Вы выдумали себе про мои намеки на умственные способности - это не моя проблема. Это Ваши мысли, может Вы сомневаетесь в них, или считаете что все люди хотят кого то оскорбить или похвастаться. Я не знаю в чем причина.

Вообщем я вижу речь о 4 диодах из схему первого поста, без дополнительного индикатора и тд. Я считаю, по моему скромному мнению, что нет смысла в подключении 4-х диодов, и подачи положительного питания на ноги столбцов. Схема с 4-мя диодами как и схема вообще без диодов не позволят отследить нажатие нескольких кнопок одновременно. Топик про КЗ на ноге мк.

Схемы по возможностям опроса клавиатуры идентичны. Вы написали что не будет работать именно мой вариант. Может я дурак, но я считаю, что ваше утверждение ничего не говорит о схеме с 1-го поста а значит для алгоритма схемы в первом посте мой вариант работать не будет по Вашим словам.

@IMXO Простите за мою невнимательность. Я пропустил Ваш пост. А именно

3 минуты назад, DrobyshevAlex сказал:
В 06.01.2019 в 07:09, DrobyshevAlex сказал:

Я не знаю от чего их нужно защищать)

от КЗ , уберите диоды и нажмите кнопки в одной линии , получите замыкание на выходе порта.

То есть Вы сами сказали от КЗ. И Вы теперь пытаетесь сказать что речь далее резко переключилась на опрос парных нажатий? Я пропустил этот момент. Это Вы выдумали у себя в голове не пояснив. А потом я 

1 час назад, IMXO сказал:

крутым эмбером

 

 

Ссылка на комментарий
Поделиться на другие сайты

Все офтоп

Скрытый текст
5 минут назад, DrobyshevAlex сказал:

тут)

Вы описываете работу алгоритма который Вы используете. А Вот мне не понятно Вы используете другой алгоритм или неправильно поняли тот который по ссылке. 

Еще раз повторюсь

41 минуту назад, Serb_ret сказал:

Ткните в свой первый пост где Вы предлагаете использовать другой алгоритм? Ключевое слово другой

То есть  укажите каким словом Вы явно без сарказмов и догадок  указываете что это другой алгоритм, что Вы предлагаете иной подход. Именно другой. Не описание  самого алгоритма, его то я вижу, а понимание того что это другой алгоритм. Где указано "ДРУГОЙ алгоритм", "по другому", "Я делаю не так" " можно поступить иначе" или еще что то.

12 минуты назад, DrobyshevAlex сказал:

 

46 минут назад, IMXO сказал:

Зачем нужны диоды на схеме мне не понятно.

Это был риторический вопрос)

Который, к сожалению, внес двухсмыслие в Ваш пост. 

"Зачем использовать диоды, если можно использовать другой алгоритм".  Вот так убирается недопонимание и все с первого раза становится на свои места.

Я вообще описывал работу исходного алгоритма и назначение диодов  в нем, о чем сведетельствует цитата топикстартера в моем первом посте. А вы пишите 

3 часа назад, DrobyshevAlex сказал:

Вообще ни кто не читает? 

3 часа назад, Serb_ret сказал:

одновременно выход PD5 (лог1) 

Нет выхода! Он на входе - и диоды не нужны... Ни кто не закарачивается :)

А Вы пишите что все пины используются на вход. Но это ведь в Вашем алгоритме.  Причем тут мое описание назначения диодов в исходном алгоритме к Вашему алгоритму??? Ведь в исходном алгоритме есть Выход!!!! И я не разу не указал что Ваш алгоритм неправильный, или бредовый. Ни разу!!!!

 

 

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...