freebits

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

36 сообщений в этой теме

freebits    0

Добрый день.

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
солар    186
23 минуты назад, freebits сказал:

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

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

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

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

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

Поделиться сообщением


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

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

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

Цитата

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 437
57 минут назад, DrobyshevAlex сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    568
1 час назад, DrobyshevAlex сказал:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
freebits    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 :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
freebits    0
1 час назад, DrobyshevAlex сказал:

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

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

Изменено пользователем freebits

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 437
13 часа назад, DrobyshevAlex сказал:

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

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

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

5c32814f201f0_.png.394cc146f8e22891789bc1ae23832730.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, IMXO сказал:

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Serb_ret    17
В 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) 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Serb_ret    17
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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Serb_ret сказал:

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

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

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

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

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

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

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Serb_ret    17
4 минуты назад, DrobyshevAlex сказал:

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

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

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

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

Цитата

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

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

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

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

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

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

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

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

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

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

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

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

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

 

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Serb_ret сказал:

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

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

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

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

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 437
12 минуты назад, DrobyshevAlex сказал:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Serb_ret    17

 

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 сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Serb_ret    17

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

Цитата

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 437
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 сказал:

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Serb_ret    17

Все офтоп

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

тут)

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 437
36 минут назад, DrobyshevAlex сказал:

Я просто написал без знака вопроса, "я  не понимаю зачем там диоды"

короче , продолжай не понимать далее.

Поделиться сообщением


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сообщения

    • Планшет prestigio pmp5080b+Модем МТС
      2 000 руб.
      Неудачно перепрошили, нужно перепрошить.
      Модем работает нормально
    • Добрый день, уважаемые форумчане. Возникла у меня небольшая проблема, из за недостатка знаний решить которую самостоятельно не могу. Имеется у меня в автомобиле магнитола (или как это называется, если без кассет) Prology CMD-125, у которой со времени покупки не работает радио. Диск работает, только временами на ходу перескакивает. Отдал "спецу" в ремонт, тот запорол дорожки на микросхеме радиотракта. Я приобрел у китайцев модный сейчас Mp3 модуль и решил вмонтировать в магнитолу вместо радиотракта. Нашел радиовход на тюнере (вывод 16. 17) подключил к модулю, заработало. Но, хочется сделать так, что бы тюнер включался при включении магнитолы в режиме FM, и выключался при включении диска. На тюнере имеется точка 13, на которую при включении подается напряжение, но это напряжение 6,5 вольт. На модуль нужно около 12 вольт. Помогите подключить,сам я не умею. Прилагаю схему магнитолы https://elektrotanya.com/prology_cmd-125.pdf/download.html и схему нужного подключения, которую нужно доработать. Очень прошу помочь, у самого знаний не хватает, боюсь вообще запороть.
    • Фотки  свои я выкладывались + 2SC2921
    • Вот как раз эти двое умерли раньше, чем я начал пить. Не довелось им
    • Согласен, там все есть и корпус типовой.
    • Собрал зарядное, подключил к аккумулятору, дал ток на максимум. Через минуту пробило диод VD3-FR108, заменил на FR208 замерял напряжение на МХ UC3844  получилось 40 вольт, что много если считать что  внутри МХ стоит стабилитрон 34 вольта.   Трансформатор не захотел перематывать, последовательно с диодом поставил резистор 11 ом, получилось на МХ 32 вольта оставил так . Но всё равно греются резистор R18 150k 2 W и диод VD3,  рука не терпит. Насколько можно увеличит резистор R18, что-бы уменьшить нагрев.

       
    • В смысле померять? Даташит