И сновамодуль p10 и библиотека dmd2 (размер)
- Войдите на сайт для отправки комментариев
Чт, 14/02/2019 - 09:56
Помогите изменить размер по непонятным причинам пишется всё с отступом на 2 ряда пикселей от верха и от низа а нужно на ширину всего модуля текст сделать. Библиотека dmd2_master, модуль p10, arduino nano, подключение правильное только не пойму где размер текста поменять
В строке №48.
А вообще, вангую, что это шрифт такой.
//Лёха. Просто Лёха... (13.01.2019 04:03): #include <SPI.h> #include <DMD2.h> #include <fonts/Arial_Black_16.h> #define CLOCK 10 #define DATA 12 #define LATCH 4 byte val = 0; //начальное значение на экране int DLA = 200; //глобальная задержка на срабатывание кнопок byte numberSegments[11] = {0b11111110, 0b00101000, 0b01110101, 0b01111001, 0b00101011, 0b01011011, 0b01011111, 0b01101000, 0b11111111, 0b11111011, 0b00000000}; SoftDMD dmd(1,1); DMD_TextBox box(dmd, 12, 1, 64, 16); void setup() { //ИНИЦИАЛИЗАЦИЯ ПИНОВ //_______________________________________________________________________ pinMode(3, INPUT_PULLUP); pinMode(5, INPUT_PULLUP); pinMode(CLOCK, OUTPUT); //CLOCK pinMode(DATA, OUTPUT); //DATA pinMode(LATCH, OUTPUT); //LATCH //ИНИЦИАЛИЗАЦИЯ ИНДИКАТОРОВ //_______________________________________________________________________ //СЕМИСЕГМЕНТНЫЙ //_______________________________________________________________________ digitalWrite(LATCH, LOW); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[val % 10]); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[11]); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[11]); digitalWrite(LATCH, HIGH); //МАТРИЦА //_______________________________________________________________________ dmd.setBrightness(255); dmd.selectFont(Arial_Black_16); dmd.begin(); box.print(val); } void loop() { //ОБРАБОТКА ПЕРВОЙ КНОПКИ //_______________________________________________________________________ if (digitalRead(3) == LOW) { val = (val + 1); if (val <= 9) { digitalWrite(LATCH, LOW); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[val % 10]); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[11]); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[11]); digitalWrite(LATCH, HIGH); DMD_TextBox box(dmd, 12, 1, 64, 16); dmd.begin(); box.print(val); delay(DLA); } if (val >= 10 && val <= 99) { digitalWrite(LATCH, LOW); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[val % 10]); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[(val / 10) % 10]); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[11]); digitalWrite(LATCH, HIGH); DMD_TextBox box(dmd, 8, 1, 64, 16); dmd.begin(); box.print(val); delay(DLA); } if (val >= 100 && val <= 999) { digitalWrite(LATCH, LOW); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[val % 10]); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[(val / 10) % 10]); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[(val / 100) % 10]); digitalWrite(LATCH, HIGH); DMD_TextBox box(dmd, 3, 1, 64, 16); dmd.begin(); box.print(val); delay(DLA); } } //ОБРАБОТКА ВТОРОЙ КНОПКИ //_______________________________________________________________________ if (digitalRead(5) == LOW) { val = (val - 1); if (val <= 9) { digitalWrite(LATCH, LOW); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[val % 10]); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[11]); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[11]); digitalWrite(LATCH, HIGH); DMD_TextBox box(dmd, 12, 1, 64, 16); dmd.begin(); box.print(val); delay(DLA); } if (val >= 10 && val <= 99) { digitalWrite(LATCH, LOW); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[val % 10]); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[(val / 10) % 10]); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[11]); digitalWrite(LATCH, HIGH); DMD_TextBox box(dmd, 8, 1, 64, 16); dmd.begin(); box.print(val); delay(DLA); } if (val >= 100 && val <= 999) { digitalWrite(LATCH, LOW); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[val % 10]); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[(val / 10) % 10]); shiftOut(DATA, CLOCK, LSBFIRST, numberSegments[(val / 100) % 10]); digitalWrite(LATCH, HIGH); DMD_TextBox box(dmd, 3, 1, 64, 16); dmd.begin(); box.print(val); delay(DLA); } } }48ая строка какого именно файла библиотеки ?
48ая строка какого именно файла
Того, текст которого Вы привели в стартовом посте этой темы.
и вы пророк ето шрифт такой как бы поправить то ((
Перерисовать. Или вовсе свой уникальный нарисовать. Это просто делается. В любом графическом редакторе рисуете картинки нужного размера (любым шрифтом) и сохраняете их как bmp или png. Так все нужные буквы/цифры и т.д. Напускаете на них LCD Assistant и она из картинок делает готовые массивы для инициализации перемнных (те самые пачки чисел, что Вы видите в шрифте). Ну, собственно всё, осталось просто их в правильном порядке расположить.
я прошлый раз говорил не работает у меня ассистент как я только не устанавливал его !!!
Я скетчь приложил помогите изменить размер
Ну, другую подобную программу найдите. Их как грязи. Вон, например - http://zenway.ru/page/lcd-image-converter и ещё много.
А там, начние с одной буквы: нарисуйте, преобразуйте и подставьте в существующий шрифт. Посмотрите как полчилось, всё поймёте и тогда так весь шрифт.
А что Вы приложили? Шрифт же в файле fonts/Arial_Black_16.h
вот ариал блэк
Как вы себе представляете таковую помощь - кто-то сидит, разбирается, все исправляет и вы потом просто заливаете итог в ардуину?
ну не совсем так , сравниваю с исходником и запоминаю что менять надо, измените хотябы 1 цифру ! остальное сам
Да, чёт непохоже, чтобы он приподнятый был.
Попробуйти с ним поэспериментировать. Например, цифра 0 у Вас как печатается? Приподнятой? Ну и хорошо, закомментируйте строку 87 (стобы потом восстановить), а вместо неё вбейте столько же сиволов 0xFF - тогда вместо 0 должен печататься "забой". Запустите и посмотрите он как печатается - как надо? или тоже приподнятым? Если как надо, то нужно менять шрифт, а если тоже приподнятым, то надо смотреть библиотеку - шрифт не при делах.
0xF8, 0xFC, 0xFE, 0x06, 0x06, 0xFE, 0xFC, 0xF8, 0x07, 0x0F, 0x1F, 0x18, 0x18, 0x1F, 0x0F, 0x07, // 48- Эту ?
Ага - это по идее символ '0' (ноль), если я правильно понял структуру шрифта.
Если ссылки в начале файла с фонтом ни на какие мысли не наводят, то как вы собрались запоминать, каким образом изменение в битовом поле произвести?
Забой получился первая строка пустая остальное заполнилось как положено
Я не понимаю, что такое "первая" - нижняя или верхняя?
В любом случае. Вот этот забой - это ВСЁ, что Вы можете сделать. Т.е. любой символ, который Вы можете нарисовать в шрифте будет полнстоью располагаться в пределах забоя. За него ничто вылезти не может.
Вас такое устриивает? Если устраивает - скачивайте редаткор шрифта (ссылка вверху файла шрифта) и рисуйте шрифт.
0 почти доделал вручную , а есть возможность както вылезти за ширину 8 пикселей?
Конечно. Ширины указаны в строках 60-69. Самый первый символ имеет код 32. Код Вашего нуля - 48 - стало быть это восьмёрочка в строке 61 (седьмое число).
Только я не понимаю Вашего мозахизма. Скачайте редактор - он сам всё сделает.
НУ не догоняю я как с редактором работать, о а есть он лайн сервисы ?
Поясните как вы понимаете какие строки выводят какие символы ?
Не знаю насчёт сервисов, поищите сами.
Ну, как? Справа от строк в комментариях числа видите (в строке №72 число 33, в строке №73 - число 34 и т.д.). Эти числа - коды символов. Т.е. у Вас присутствуют символы с кодами от 33 до 96, если я правильно понимаю. Ну, а зная код, смотрите что это за символ по таблице.
Огромное спасибо, вы всегда упрощаете мне жизнь, так как ваши познания похоже безграничны, ещё раз спасибо