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

tsar88
Offline
Зарегистрирован: 24.08.2017

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

#include <Keypad.h>
#define SCLK 12
#define RCLK 11
#define DIO 10
int i;
const byte ROWS = 4; //число строк у нашей клавиатуры

const byte COLS = 4; //число столбцов у нашей клавиатуры

char hexaKeys[ROWS][COLS] = {

{'1','2','3','A'}, // здесь мы располагаем названия наших клавиш, как на клавиатуре,для удобства пользования

{'4','5','6','B'},

{'7','8','9','C'},

{'*','0','#','D'}

};

byte rowPins[ROWS] = {5, 4, 3, 2}; //к каким выводам подключаем управление строками

byte colPins[COLS] = {9, 8, 7, 6}; //к каким выводам подключаем управление столбцами

//initialize an instance of class NewKeypad

Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

void setup() {
  pinMode (RCLK, OUTPUT);
  pinMode (SCLK, OUTPUT);
  pinMode (DIO, OUTPUT);
 
}


void loop() {

 showDisplay();
}
void showDisplay(){

const byte digit[10] = {
  0b11000000, //0
  0b11111001, //1
  0b10100100, //2
  0b10110000, //3
  0b10011001, //4
  0b10010010, //5
  0b10000010, //6
  0b11111000, //7
  0b10000000, //8
  0b10010000, //9
  
};

const byte chr[4] = { //маска для разряда
  0b00001000,
  0b00000100,
  0b00000010,
  0b00000001,
};
  char customKey = customKeypad.getKey();

if (customKey){
  digitalRead (customKey);
}
  digitalWrite(RCLK, LOW); //открываем защелку
   shiftOut (DIO, SCLK, MSBFIRST, digit[customKey]); //отправляем байт с числом
   shiftOut(DIO, SCLK, MSBFIRST, chr[customKey]); //включаем разряд
  digitalWrite(RCLK, HIGH); //защелкиваем регистры
  delay(1); //ждем немного перед отправкой следующего числа
}


// put your main code here, to run repeatedly:

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

tsar88 пишет:
помогите доработать скетч вывод символов с матричной клавиатуры на семи сегментном индикаторе со сдвиговыми регистрами 74нс595. хрень показывает, разобраться с динамической индикацией мозгов паходу не хватает.
Не мозгов, а системного образования.А учиться ой как вам не хочется.  

1 - матричная клавиатура это набор отдельный клавиш с отдельными обработчиками, или устровйство для ввода знаков в буфер. Последнее перспективно.

2- индикатор это просто отдельные светодиоды или вывод знаков на экран. 

3- и то и другое это само по себе или костяк системы для задания режима работы устройства

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