Официальный сайт компании Arduino по адресу arduino.cc
Вот схема, из нее только 4х4 по младшим разрядам:
01
#include <SPI.h>
02
03
enum
{ REG_LATCH_IN = 8 };
04
{ REG_LATCH_OUT = 9 };
05
06
07
void
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
18
loop()
19
20
21
digitalWrite(REG_LATCH_OUT, LOW);
22
SPI.transfer(0);
23
24
25
digitalWrite(REG_LATCH_IN, LOW);
26
27
int
states = SPI.transfer(0);
28
29
Serial.print(
"Button-"
);
30
Serial.println(states);
// шлём номер кнопки
31
delay(100);
32
Как то срабатывает она через раз.
Сейчас перебора по колонкам нет, сразу вывожу ноль на все разряды и пытаюсь давить на кнопки.
Если не нажато то кажет 15, ну и при нажатых 7, 11, 13, 14.
Вот только время от времени "дурит", кажет ноль или вообще не срабатыает.
Что можно улучшить?
А может кто подсказать решение? Тоже такую схему делаю. Из старого телефона с qwerty клавиатурой.
из attiny85 и регистры сдвига 74HC595 и 74HC165
Изучаю схемотехнику.
01
#include <SPI.h>
02
03
enum
{ REG_LATCH_IN = 8 };
04
enum
{ REG_LATCH_OUT = 9 };
05
06
07
void
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
18
void
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.
Вот только время от времени "дурит", кажет ноль или вообще не срабатыает.
Что можно улучшить?
А может кто подсказать решение? Тоже такую схему делаю. Из старого телефона с qwerty клавиатурой.
из attiny85 и регистры сдвига 74HC595 и 74HC165
Изучаю схемотехнику.