/
mht11
/
mht11MatrixLED
Обзор
Документация
Войти
/
mht11
/
mht11MatrixLED
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Full source code version2
246 строк
19 KB
mht11
create Full source code version2
29 сен 2024, 15:45
29 сен 2024, 15:45
cb8b79c
Код
Авторство
О чём код?
#define R1 2 #define R2 3 #define R3 4 #define R4 5 #define R5 6 #define R6 7 #define R7 8 #define R8 9 #define C1 10 #define C2 11 #define C3 12 #define C4 13 #define C5 A0 #define C6 A1 #define C7 A2 #define C8 A3 // Массивы с номерами пинов для строк и столбцов матрицы const int rowPins[] = {R1, R2, R3, R4, R5, R6, R7, R8}; const int colPins[] = {C1, C2, C3, C4, C5, C6, C7, C8}; // Структура для хранения символов и их паттернов struct LetterMapping { char character; // Символ const byte pattern[8]; // Паттерн символа }; // Массив с символами и их паттернами const LetterMapping letterMap[] = { {'А', {B00001110, B00011110, B00110110, B01100110, B01111110, B01100110, B01100110, B00000000}}, // Буква "А" {'Б', {B01111100, B01100000, B01100000, B01111100, B01100110, B01100110, B01111100, B00000000}}, // Буква "Б" {'В', {B01111100, B01100110, B01100110, B01111100, B01100110, B01100110, B01111100, B00000000}}, // Буква "В" {'Г', {B01111110, B01100000, B01100000, B01100000, B01100000, B01100000, B01100000, B00000000}}, // Буква "Г" {'Д', {B00011100, B00111100, B01101100, B01101100, B01101100, B01101100, B11111110, B11000110}}, // Буква "Д" {'Е', {B01111110, B01100000, B01100000, B01111100, B01100000, B01100000, B01111110, B00000000}}, // Буква "Е" {'Ж', {B11011011, B11011011, B01111110, B00111100, B01111110, B11011011, B11011011, B00000000}}, // Буква "Ж" {'З', {B00111100, B01100110, B00000110, B00011100, B00000110, B01100110, B00111100, B00000000}}, // Буква "З" {'И', {B01100110, B01100110, B01101110, B01111110, B01110110, B01100110, B01100110, B00000000}}, // Буква "И" {'Й', {B00111100, B01100110, B01101110, B01111110, B01110110, B01100110, B01100110, B00000000}}, // Буква "Й" {'К', {B01100110, B01101100, B01111000, B01110000, B01111000, B01101100, B01100110, B00000000}}, // Буква "К" {'Л', {B00001110, B00011110, B00110110, B01100110, B01100110, B01100110, B01100110, B00000000}}, // Буква "Л" {'М', {B11000110, B11101110, B11111110, B11111110, B11010110, B11010110, B11000110, B00000000}}, // Буква "М" {'Н', {B01100110, B01100110, B01100110, B01111110, B01100110, B01100110, B01100110, B00000000}}, // Буква "Н" {'О', {B00111100, B01100110, B01100110, B01100110, B01100110, B01100110, B00111100, B00000000}}, // Буква "О" {'П', {B01111110, B01100110, B01100110, B01100110, B01100110, B01100110, B01100110, B00000000}}, // Буква "П" {'Р', {B01111100, B01100110, B01100110, B01100110, B01111100, B01100000, B01100000, B00000000}}, // Буква "Р" {'С', {B00111100, B01100110, B01100000, B01100000, B01100000, B01100110, B00111100, B00000000}}, // Буква "С" {'Т', {B01111110, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00000000}}, // Буква "Т" {'У', {B01100110, B01100110, B01100110, B00111110, B00000110, B01100110, B00111100, B00000000}}, // Буква "У" {'Ф', {B01111110, B11011011, B11011011, B11011011, B01111110, B00011000, B00011000, B00000000}}, // Буква "Ф" {'Х', {B01100110, B01100110, B00111100, B00011000, B00111100, B01100110, B01100110, B00000000}}, // Буква "Х" {'Ц', {B01100110, B01100110, B01100110, B01100110, B01100110, B01100110, B01111111, B00000011}}, // Буква "Ц" {'Ч', {B01100110, B01100110, B01100110, B00111110, B00000110, B00000110, B00000110, B00000000}}, // Буква "Ч" {'Ш', {B11011011, B11011011, B11011011, B11011011, B11011011, B11011011, B11111111, B00000000}}, // Буква "Ш" {'Щ', {B11011011, B11011011, B11011011, B11011011, B11011011, B11011011, B11111111, B00000011}}, // Буква "Щ" {'Ъ', {B11100000, B01100000, B01100000, B01111100, B01100110, B01100110, B01111100, B00000000}}, // Буква "Ъ" {'Ы', {B11000110, B11000110, B11000110, B11110110, B11011110, B11011110, B11110110, B00000000}}, // Буква "Ы" {'Ь', {B01100000, B01100000, B01100000, B01111100, B01100110, B01100110, B01111100, B00000000}}, // Буква "Ь" {'Э', {B01111000, B10001100, B00000110, B00111110, B00000110, B10001100, B01111000, B00000000}}, // Буква "Э" {'Ю', {B11001110, B11011011, B11011011, B11111011, B11011011, B11011011, B11001110, B00000000}}, // Буква "Ю" {'Я', {B00111110, B01100110, B01100110, B01100110, B00111110, B00110110, B01100110, B00000000}}, // Буква "Я" {'а', {B00000000, B00000000, B00111100, B00000110, B00111110, B01100110, B00111010, B00000000}}, // Буква "а" {'б', {B00000000, B00111100, B01100000, B00111100, B01100110, B01100110, B00111100, B00000000}}, // Буква "б" {'в', {B00000000, B00000000, B01111100, B01100110, B01111100, B01100110, B01111100, B00000000}}, // Буква "в" {'г', {B00000000, B00000000, B01111110, B01100000, B01100000, B01100000, B01100000, B00000000}}, // Буква "г" {'д', {B00000000, B00000000, B00011100, B00111100, B01101100, B01101100, B11111110, B10000010}}, // Буква "д" {'е', {B00000000, B00000000, B00111100, B01100110, B01111110, B01100000, B00111100, B00000000}}, // Буква "е" {'ж', {B00000000, B00000000, B11011011, B01111110, B00111100, B01111110, B11011011, B00000000}}, // Буква "ж" {'з', {B00000000, B00000000, B00111100, B01100110, B00001100, B01100110, B00111100, B00000000}}, // Буква "з" {'и', {B00000000, B00000000, B01100110, B01101110, B01111110, B01110110, B01100110, B00000000}}, // Буква "и" {'й', {B00000000, B00011000, B01100110, B01101110, B01111110, B01110110, B01100110, B00000000}}, // Буква "й" {'к', {B00000000, B00000000, B01100110, B01101100, B01111000, B01101100, B01100110, B00000000}}, // Буква "к" {'л', {B00000000, B00000000, B00001110, B00011110, B00110110, B01100110, B01100110, B00000000}}, // Буква "л" {'м', {B00000000, B00000000, B11000110, B11111110, B11111110, B11010110, B11010110, B00000000}}, // Буква "м" {'н', {B00000000, B00000000, B01100110, B01100110, B01111110, B01100110, B01100110, B00000000}}, // Буква "н" {'о', {B00000000, B00000000, B00111100, B01100110, B01100110, B01100110, B00111100, B00000000}}, // Буква "о" {'п', {B00000000, B00000000, B01111110, B01100110, B01100110, B01100110, B01100110, B00000000}}, // Буква "п" {'р', {B00000000, B00000000, B01111100, B01100110, B01100110, B01111100, B01100000, B01100000}}, // Буква "р" {'с', {B00000000, B00000000, B00111100, B01100110, B01100000, B01100110, B00111100, B00000000}}, // Буква "с" {'т', {B00000000, B00000000, B01111110, B00011000, B00011000, B00011000, B00011000, B00000000}}, // Буква "т" {'у', {B00000000, B00000000, B01100110, B01100110, B00111110, B00000110, B01111100, B00000000}}, // Буква "у" {'ф', {B00000000, B00000000, B01111110, B11011011, B11011011, B01111110, B00011000, B00000000}}, // Буква "ф" {'х', {B00000000, B00000000, B01100110, B00111100, B00011000, B00111100, B01100110, B00000000}}, // Буква "х" {'ц', {B00000000, B00000000, B01100110, B01100110, B01100110, B01100110, B01111111, B00000011}}, // Буква "ц" {'ч', {B00000000, B00000000, B01100110, B01100110, B00111110, B00000110, B00000110, B00000000}}, // Буква "ч" {'ш', {B00000000, B00000000, B11011011, B11011011, B11011011, B11011011, B11111111, B00000000}}, // Буква "ш" {'щ', {B00000000, B00000000, B11011011, B11011011, B11011011, B11011011, B11111111, B00000011}}, // Буква "щ" {'ъ', {B00000000, B00000000, B11100000, B01100000, B01111100, B01100110, B01111100, B00000000}}, // Буква "ъ" {'ы', {B00000000, B00000000, B11000110, B11000110, B11110110, B11011110, B11110110, B00000000}}, // Буква "ы" {'ь', {B01100000, B01100000, B01100000, B01111100, B01100110, B01100110, B01111100, B00000000}}, // Буква "ь" {'э', {B00000000, B00000000, B01111100, B00000110, B00111110, B00000110, B01111100, B00000000}}, // Буква "э" {'ю', {B00000000, B00000000, B11001110, B11011011, B11111011, B11011011, B11001110, B00000000}}, // Буква "ю" {'я', {B00000000, B00000000, B00111110, B01100110, B00111110, B00110110, B01100110, B00000000}}, // Буква "я" {'a', {B00000000, B00000000, B00111100, B00000110, B00111110, B01100110, B00111010, B00000000}}, {'b', {B01100000, B01100000, B01100000, B01111100, B01100110, B01100110, B01011100, B00000000}}, {'c', {B00000000, B00000000, B00111100, B01100110, B01100000, B01100110, B00111100, B00000000}}, {'d', {B00000110, B00000110, B00000110, B00111110, B01100110, B01100110, B00111010, B00000000}}, {'e', {B00000000, B00000000, B00111100, B01100110, B01111110, B01100000, B00111100, B00000000}}, {'f', {B00011100, B00110110, B00110000, B01111000, B00110000, B00110000, B00110000, B00000000}}, {'g', {B00000000, B00000000, B00111010, B01100110, B01100110, B00111110, B00000110, B00111100}}, {'h', {B01100000, B01100000, B01101100, B01110110, B01100110, B01100110, B01100110, B00000000}}, {'i', {B00011000, B00000000, B00011000, B00011000, B00011000, B00011000, B00011000, B00000000}}, {'j', {B00001100, B00000000, B00001100, B00001100, B00001100, B11001100, B11001100, B01111000}}, {'k', {B01100000, B01100000, B01100110, B01101100, B01111000, B01101100, B01100110, B00000000}}, {'l', {B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00000000}}, {'m', {B00000000, B00000000, B11000110, B11101110, B11111110, B11010110, B11000110, B00000000}}, {'n', {B00000000, B00000000, B01111100, B01100110, B01100110, B01100110, B01100110, B00000000}}, {'o', {B00000000, B00000000, B00111100, B01100110, B01100110, B01100110, B00111100, B00000000}}, {'p', {B00000000, B00000000, B01011100, B01100110, B01100110, B01111100, B01100000, B01100000}}, {'q', {B00000000, B00000000, B00111010, B01100110, B01100110, B00111110, B00000110, B00000110}}, {'r', {B00000000, B00000000, B01011100, B01110110, B01100000, B01100000, B01100000, B00000000}}, {'s', {B00000000, B00000000, B00111110, B01100000, B00111100, B00000110, B01111100, B00000000}}, {'t', {B00110000, B00110000, B01111100, B00110000, B00110000, B00110100, B00011000, B00000000}}, {'u', {B00000000, B00000000, B01100110, B01100110, B01100110, B01100110, B00111010, B00000000}}, {'v', {B00000000, B00000000, B01100110, B01100110, B01100110, B00111100, B00011000, B00000000}}, {'w', {B00000000, B00000000, B11000110, B11010110, B11111110, B11111110, B01101100, B00000000}}, {'x', {B00000000, B00000000, B11000110, B01101100, B00111000, B01101100, B11000110, B00000000}}, {'y', {B00000000, B00000000, B01100110, B01100110, B01100110, B00111110, B00000110, B00111100}}, {'z', {B00000000, B00000000, B01111110, B00001100, B00011000, B00110000, B01111110, B00000000}}, {'A', {B00011000, B00111100, B01100110, B01100110, B01111110, B01100110, B01100110, B00000000}}, {'B', {B01111100, B01100110, B01100110, B01111100, B01100110, B01100110, B01111100, B00000000}}, {'C', {B00111100, B01100110, B11000000, B11000000, B11000000, B01100110, B00111100, B00000000}}, {'D', {B01111000, B01101100, B01100110, B01100110, B01100110, B01101100, B01111000, B00000000}}, {'E', {B01111110, B01100000, B01100000, B01111000, B01100000, B01100000, B01111110, B00000000}}, {'F', {B01111110, B01100000, B01100000, B01111000, B01100000, B01100000, B01100000, B00000000}}, {'G', {B00111100, B01100110, B11000000, B11000000, B11001110, B01100110, B00111110, B00000000}}, {'H', {B01100110, B01100110, B01100110, B01111110, B01100110, B01100110, B01100110, B00000000}}, {'I', {B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00000000}}, {'J', {B00000110, B00000110, B00000110, B00000110, B01100110, B01100110, B00111100, B00000000}}, {'K', {B01100110, B01100110, B01101100, B01111000, B01101100, B01100110, B01100110, B00000000}}, {'L', {B01100000, B01100000, B01100000, B01100000, B01100000, B01100000, B01111110, B00000000}}, {'M', {B11000110, B11101110, B11111110, B11111110, B11010110, B11000110, B11000110, B00000000}}, {'N', {B11000110, B11100110, B11110110, B11011110, B11001110, B11000110, B11000110, B00000000}}, {'O', {B00111100, B01100110, B01100110, B01100110, B01100110, B01100110, B00111100, B00000000}}, {'P', {B01111100, B01100110, B01100110, B01111100, B01100000, B01100000, B01100000, B00000000}}, {'Q', {B00111100, B01100110, B01100110, B01100110, B01101110, B00111100, B00001110, B00000000}}, {'R', {B01111100, B01100110, B01100110, B01111100, B01101100, B01100110, B01100110, B00000000}}, {'S', {B00111100, B01100110, B01110000, B00111000, B00001110, B01100110, B00111100, B00000000}}, {'T', {B01111110, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00000000}}, {'U', {B01100110, B01100110, B01100110, B01100110, B01100110, B01100110, B00111110, B00000000}}, {'V', {B01100110, B01100110, B01100110, B01100110, B01100110, B00111100, B00011000, B00000000}}, {'W', {B11000110, B11000110, B11000110, B11010110, B11111110, B11101110, B11000110, B00000000}}, {'X', {B01100110, B01100110, B00111100, B00011000, B00111100, B01100110, B01100110, B00000000}}, {'Y', {B01100110, B01100110, B01100110, B00111100, B00011000, B00011000, B00011000, B00000000}}, {'Z', {B11111110, B00000110, B00001100, B00011000, B00110000, B01100000, B11111110, B00000000}}, {'0', {B01111100, B11000110, B11001110, B11011110, B11110110, B11100110, B01111100, B00000000}}, // "0" {'1', {B00110000, B01110000, B00110000, B00110000, B00110000, B00110000, B00110000, B00000000}}, // "1" {'2', {B01111000, B11001100, B00001100, B00111000, B01100000, B11000000, B11111100, B00000000}}, // "2" {'3', {B01111000, B11001100, B00001100, B00111000, B00001100, B11001100, B01111000, B00000000}}, // "3" {'4', {B00011100, B00111100, B01101100, B11001100, B11111110, B00001100, B00001100, B00000000}}, // "4" {'5', {B11111100, B11000000, B11111000, B00001100, B00001100, B11001100, B01111000, B00000000}}, // "5" {'6', {B00111000, B01100000, B11000000, B11111000, B11001100, B11001100, B01111000, B00000000}}, // "6" {'7', {B11111100, B00001100, B00001100, B00011000, B00110000, B00110000, B00110000, B00000000}}, // "7" {'8', {B01111000, B11001100, B11001100, B01111000, B11001100, B11001100, B01111000, B00000000}}, // "8" {'9', {B01111000, B11001100, B11001100, B01111100, B00001100, B00011000, B01110000, B00000000}}, // "9" {'>', {B00000000, B00011000, B00001100, B11111110, B00001100, B00011000, B00000000, B00000000}}, // стрелка вправо / right arrow {'<', {B00000000, B00110000, B01100000, B11111110, B01100000, B00110000, B00000000, B00000000}}, // стрелка влево / left arrow {'/', {B00000110, B00001100, B00011000, B00110000, B01100000, B11000000, B10000000, B00000000}}, // знак деления / division sign {'+', {B00000000, B00011000, B00011000, B01111110, B00011000, B00011000, B00000000, B00000000}}, // знак сложения / addition sign {'?', {B01111000, B11001100, B00001100, B00011000, B00110000, B00000000, B00110000, B00000000}}, // вопросительный знак / question mark {',', {B00000000, B00000000, B00000000, B00000000, B00000000, B00110000, B00110000, B01100000}}, // запятая / comma {'=', {B00000000, B00000000, B01111110, B00000000, B00000000, B01111110, B00000000, B00000000}}, // знак равенства / equal sign {'-', {B00000000, B00000000, B00000000, B01111110, B00000000, B00000000, B00000000, B00000000}}, // знак вычитания / subtraction sign {'.', {B00000000, B00000000, B00000000, B00000000, B00000000, B00110000, B00110000, B00000000}}, // точка / dot {'!', {B00000000, B00011000, B00011000, B00011000, B00011000, B00011000, B00000000, B00011000}} // восклицательный знак / exclamation mark }; void setup() { // Настройка пинов как выходов для строк и столбцов матрицы for (int i = 0; i < 8; i++) { pinMode(rowPins[i], OUTPUT); // Пины строк (R1-R8) как выходы pinMode(colPins[i], OUTPUT); // Пины столбцов (C1-C8) как выходы digitalWrite(rowPins[i], HIGH); // Отключаем строки (устанавливаем высокий уровень) digitalWrite(colPins[i], LOW); // Отключаем столбцы (устанавливаем низкий уровень) } } void clearMatrix() { for (int i = R1; i <= R8; i++) { digitalWrite(i, HIGH); // Отключаем все строки } for (int i = C1; i <= C8; i++) { digitalWrite(i, LOW); // Отключаем все столбцы } } void lightMatrix(const byte pattern[]) { for (int row = 0; row < 8; row++) { // Проходим по каждой строке for (int col = 0; col < 8; col++) { // Проходим по каждому столбцу if (bitRead(pattern[row], 7 - col)) { // Проверяем, нужно ли зажигать светодиод digitalWrite(rowPins[row], LOW); // Активируем строку digitalWrite(colPins[col], HIGH); // Активируем столбец delayMicroseconds(100); // Краткая задержка для видимости светодиода digitalWrite(rowPins[row], HIGH); // Деактивируем строку digitalWrite(colPins[col], LOW); // Деактивируем столбец } } } } void displayCharacter(const char letter, int displayTime) { // Поиск символа в массиве letterMap for (int i = 0; i < sizeof(letterMap) / sizeof(letterMap[0]); i++) { if (letterMap[i].character == letter) { // Если символ найден unsigned long startTime = millis(); // Фиксируем текущее время while (millis() - startTime < displayTime) { // Отображаем символ в течение заданного времени lightMatrix(letterMap[i].pattern); // Отображаем символ } return; } } } // Функция для отображения текста void displayText(const char* text, int displayTime) { int i = 0; while (text[i] != '\0') { // Проходим по всем символам строки displayCharacter(text[i], displayTime); // Отображаем каждый символ clearMatrix(); // Очищаем матрицу после каждого символа delay(500); // Краткая задержка перед следующим символом i++; } } void loop() { displayText("mht11.ru", 1000); displayText("How are you?", 1000); displayText("Как дела?", 1000); displayText("АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ", 1000); displayText("абвгдежзийклмнопрстуфхцчшщъыьэюя", 1000); displayText("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 1000); displayText("abcdefghijklmnopqrstuvwxyz", 1000); displayText("0123456789", 1000); displayText("Hello, World!", 1000); displayText("Привет, Мир!", 1000); displayText("1+1=2", 1000); displayText("7-4=3", 1000); delay(1000); // Задержка перед повтором строки }