74HC595 & 74HC165 & Keypad 4x4 как все не уверенно

achechet
Offline
Зарегистрирован: 04.02.2012

Вот схема, из нее только 4х4 по младшим разрядам:

achechet
Offline
Зарегистрирован: 04.02.2012
01#include <SPI.h>
02 
03enum { REG_LATCH_IN = 8 };
04enum { REG_LATCH_OUT = 9 };
05 
06 
07void setup()
08{
09  Serial.begin(9600);
10  SPI.begin();
11 
12  pinMode(REG_LATCH_IN, OUTPUT);
13  digitalWrite(REG_LATCH_IN, HIGH);
14  pinMode(REG_LATCH_OUT, OUTPUT);
15  digitalWrite(REG_LATCH_OUT, HIGH);
16}
17 
18void loop()
19{
20 
21   digitalWrite(REG_LATCH_OUT, LOW);
22   SPI.transfer(0);
23   digitalWrite(REG_LATCH_OUT, HIGH);
24   
25   digitalWrite(REG_LATCH_IN, LOW);
26   digitalWrite(REG_LATCH_IN, HIGH);
27   int states = SPI.transfer(0);
28 
29        Serial.print("Button-");
30        Serial.println(states); // шлём номер кнопки
31        delay(100);
32}

 

Как то срабатывает она через раз.

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

Если не нажато то кажет 15, ну и при нажатых 7, 11, 13, 14.

Вот только время от времени "дурит", кажет ноль или вообще не срабатыает.

Что можно улучшить?

JediYoda3000
Offline
Зарегистрирован: 17.01.2019

А может кто подсказать решение? Тоже такую схему делаю. Из старого телефона с qwerty клавиатурой. 

из attiny85 и регистры сдвига 74HC595 и 74HC165

Изучаю схемотехнику.