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

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

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

achechet
Offline
Зарегистрирован: 04.02.2012
#include <SPI.h>

enum { REG_LATCH_IN = 8 };
enum { REG_LATCH_OUT = 9 };


void setup()
{
  Serial.begin(9600);
  SPI.begin();

  pinMode(REG_LATCH_IN, OUTPUT);
  digitalWrite(REG_LATCH_IN, HIGH);
  pinMode(REG_LATCH_OUT, OUTPUT);
  digitalWrite(REG_LATCH_OUT, HIGH);
}

void loop()
{

   digitalWrite(REG_LATCH_OUT, LOW);
   SPI.transfer(0); 
   digitalWrite(REG_LATCH_OUT, HIGH);
  
   digitalWrite(REG_LATCH_IN, LOW);
   digitalWrite(REG_LATCH_IN, HIGH);
   int states = SPI.transfer(0);

        Serial.print("Button-");
        Serial.println(states); // шлём номер кнопки
        delay(100);
}

 

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

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

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

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

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

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

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

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

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