помогите доработать скетч вывод символов с матричной клавиатуры на семи сегментном индикаторе со сдвиговыми регистрами 74нс595
- Войдите на сайт для отправки комментариев
Чт, 24/08/2017 - 22:53
помогите доработать скетч вывод символов с матричной клавиатуры на семи сегментном индикаторе со сдвиговыми регистрами 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:
1 - матричная клавиатура это набор отдельный клавиш с отдельными обработчиками, или устровйство для ввода знаков в буфер. Последнее перспективно.
2- индикатор это просто отдельные светодиоды или вывод знаков на экран.
3- и то и другое это само по себе или костяк системы для задания режима работы устройства
4-перед тем как садится писать программу, программист должен ясно представлять что он пишет и как компоненты между собой будут взаимодействовать.