Дисплей LCD5110

skyspirit
Offline
Зарегистрирован: 27.02.2015

Вопрос можно ли в данном дисплее  выводить параметры на весь экран (тоесть задействовать все возможные пиксели чтоб цыфра была больше чем с функцией   myGLCD.setFont(BigNumbers) 

maksim
Offline
Зарегистрирован: 12.02.2012

Можно.

skyspirit
Offline
Зарегистрирован: 27.02.2015

Как я понимаю нужно библиотеку отредактировать где прорисованы цыфры?

skyspirit
Offline
Зарегистрирован: 27.02.2015

Что никто не вкурси как это реализовать ?

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

 

Почему же, вкурсе.

Правьте шрифты в файле DefaultFonts.h

 

skyspirit
Offline
Зарегистрирован: 27.02.2015

Благодарю, тот файл  DefaultFonts.h вроди на языке С написан то его править в visual studio можно ?

подскажите ещё или кинте ссылку чтоб разобратсся с системой пиксилей и координат чтоб  коректно все поправить?

например:

0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,   // @

0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,   // A
0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,   // B
0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,   // C
0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,   // D
0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,   // E
0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,   // F
 
то в координатах буквы латиницы отвечают за каку ю то цыфру? может есть список-таблица чтоб легче ориентироватся что за что отвечает?
Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Всё гораздо проще!

Каждое шестнадцатиричное число - это одна строка пикселей.

Рисуем, к примеру, цифру 1:

00001000

00101000

00001000

00001000

00001000

00001000

Затем переводим двоичное 00001000 в шестнадцатиричное(http://math.semestr.ru/inf/index.php) , получаем 08, дописываем 0х и добавляем!

skyspirit
Offline
Зарегистрирован: 27.02.2015

а если екран там 48х84 то цыфра ноль как должна выглядить?

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

 

Без принципиальных отличий. Просто опишите около 24 строк.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Yarik.Yar пишет:

Без принципиальных отличий. Просто опишите около 24 строк.

(ест попкорн и поглаживает кота) Ты понимаешь что взорвал ему мозг? 

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Из меня учитель никакой) Легче самому сделать, чем показать)

skyspirit
Offline
Зарегистрирован: 27.02.2015

:)

да прописывать долго придется и я вообще новичек так что то что для кого то просто для меня вынос мозга так что извиняйте за тупость:) А вот тут 

http://analogindex.ru/news/-iz-peso-nicy-arduino-modul-nokia-5110-lcd-i-l-ba-kartinka_93655.html

с помощю какойто  программы GLCD Tools перевод рисунка в код, но у меня не получается ее установить, может есть подобние проги которые економят время чтоб не прописывать много строк? не могу пока найти

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

 

Если не ошибаюсь, есть GLCD Font Creator (или Maker, не помню, на другом ПК установлен)

skyspirit
Offline
Зарегистрирован: 27.02.2015

Пока не разобрался с программой то давайте по порядку. Если мне нужно вот єта цифра которую  нарисовал в екселе, её нужно перевести в 16-й код для прошивки?

0 0 0 0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 0 0 1 1 1
0 0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 1 1 1 1 1 1
0 0 0 0 0 0 1 1 1 1 1 1 1
0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 1 1 1 1 1
0 0 0 1 1 1 1 1 1 1 1 1 1
0 0 1 1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 1 0 0 1 1 1 1 1
1 1 1 1 1 0 0 0 1 1 1 1 1
1 1 1 0 0 0 0 0 1 1 1 1 1
1 1 0 0 0 0 0 0 1 1 1 1 1
1 1 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1

в коде за маленькую цифру отвечает єтот ряд

0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,   // 1

за самые крупные этот

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xc7, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0x00,   // 1      

я запутался за что отвечают данный координат 0Х00       и подскажите еще раз алгоритм  с чего начать, я так понимаю что нужно начать с верхнего ряда который выглядит так в 2-чном коде 

0 0 0 0 0 0 0 0 0 0 0 1 1

то как оно будет выглядет в этих 0Х00 координатах ???

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ты неверно представляешь

1 шестнадцатеричное число - один столбец. 8 чисел - 8 столбцов (в данном случае)

например первое число закрашенный целиком столбец. 1 пиксель - одна еденица в двоичном виде

тогда число и получается число 0xFF в шестнадцатеричном виде

второй столбец: первый и последний пиксель

и так далее

числа/буквы/символы высотой более 8 пикселей разбиваются по высоте. например символ высотой 24пикселя будет разбит на 3 части: верхняя строка, средняя, и нижняя

 

 

skyspirit
Offline
Зарегистрирован: 27.02.2015

Не  совсем понял про то как надо разбивать и как оно записывается, большую цыфру 0 которая состоит из 32 пикселей

то первая запись: 0Х00, 0Х00, 0Х00, 0Х00,  такая?

0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
                                   

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да с чего бы. ты читаешь вообще?

нужно разбивать. сначала верхняя часть

0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0

а вообще никто так не делает. скачай и рисуй

http://alex-exe.ru/files/programm/Image-generate-v2.004.rar

 

vov4ik
Offline
Зарегистрирован: 10.09.2013

А в чём разница зачем обезательно в хек переводить, ведь 0x81 и B10011 одно и то-же.

Может не надо ничего переписывать веть есть и другие библиотеки http://www.adafruit.com/products/338?&main_page=product_info&cPath=37&products_id=338

display.setTextSize(font); // font от 1-6 при 6 всего две цифры на экран влазят

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

необязательно. только в двоичном виде слишком длинная запись

а разве это не просто масштабирование? будет квадратное же

skyspirit
Offline
Зарегистрирован: 27.02.2015

Благодарю всем за помощь буду переваривать, еще раз извиняюсь за тупость, но сейчас некоторіе вещи стали прояснятся:)

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

vov4ik пишет:

А в чём разница зачем обезательно в хек переводить, ведь 0x81 и B10011 одно и то-же.

0x81 = B10000001

 

vov4ik
Offline
Зарегистрирован: 10.09.2013

jeka_tm пишет:

а разве это не просто масштабирование? будет квадратное же

да будет а накой красота если смотреть с растояния 3 метра

skyspirit
Offline
Зарегистрирован: 27.02.2015

jeka_tm пишет:

да с чего бы. ты читаешь вообще?

нужно разбивать. сначала верхняя часть

0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0

а вообще никто так не делает. скачай и рисуй

http://alex-exe.ru/files/programm/Image-generate-v2.004.rar

рисовать действительно удобно но, я так понимаю чтоб коректно было то нужно все цыфры в коде править включая (. - /)  

Попробовал до цыфры 2 включая символи править но на экранчик выводется как то кусочек нужной цыфры, видимо должна быть правильная последовательность ?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ты спрашивал про то как нарисовать. про вывод другое дело

skyspirit
Offline
Зарегистрирован: 27.02.2015

да теперь другие вопросы возникли, то какая последовательность прописывания полученого хек кода?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

гугли. есть инструкции по нокиевским дисплеям у alex_exe вроде 

vov4ik
Offline
Зарегистрирован: 10.09.2013
skyspirit
Offline
Зарегистрирован: 27.02.2015

:)

Maverik
Offline
Зарегистрирован: 12.09.2012

есть куча готовых библиотек и шрифтов для 5110, например в u8glib.

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

skyspirit
Offline
Зарегистрирован: 27.02.2015

 как сделать переключение экранов, например в одном одни параметры показывает (давление, температура) при нажатии кнопки другая страничка экрана (влажность, высоту) ?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

При нажатии кнопки меняем флаг. В сооответствии с флагом рисуем нужный экран.

skyspirit
Offline
Зарегистрирован: 27.02.2015

Чо за флаги? 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

skyspirit пишет:

Чо за флаги? 

Под флагом подразумевают переменную. Перед выводом информации на экран проверяем переменную, и в зависимости от её значения выводим нужную информацию ("переключаем" экраны). А значение этой переменной меняем при нажатии кнопки.

skyspirit
Offline
Зарегистрирован: 27.02.2015

А как в коде не редактируя библиотеку вставлять нужные символы с Image-generate-v2.004  в плоть до того чтоб самому все цыфры нарисовать и вставить в код?

Maverik
Offline
Зарегистрирован: 12.09.2012

в u8glib есть уже готовые шрифты на весь экран

выбираешь любой шрифт высотой 46 пикселей и вперед с песней.

по одному пикселю останется сверху и снизу.

https://code.google.com/p/u8glib/wiki/fontgroupfreeuniversal

например

skyspirit
Offline
Зарегистрирован: 27.02.2015

:)

skyspirit
Offline
Зарегистрирован: 27.02.2015

Паралельно ищю коды с библиотекой u8glib но нимогу ничего найти

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

skyspirit пишет:
Пока не разобрался с программой то давайте по порядку. Если мне нужно вот єта цифра которую  нарисовал в екселе, её нужно перевести в 16-й код для прошивки?...
Зачем рисовать экселе?

Лучше рисовать в Пэинте, - и нагляднее и сразу получитье нужный код. Особенно если сохраните изображение в монохромном режиме (один бит на пиксель). Пэинт сам переведет это в нужные коды.

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

Сохраните в монохромном режиме. Сам рисунок окажется в файле по смещению 62. Каждые 4 байта - одна строка растра в нужном Вам виде. Нумеруются снизу вверх, так что возможно придется изменить порядок на обратный.

Maverik
Offline
Зарегистрирован: 12.09.2012

чо-то звучит нихрена не нагляднее и не удобнее ))

skyspirit
Offline
Зарегистрирован: 27.02.2015

Для тех кто знает это просто, но для новичков вроде меня мелочевые вещи непонятными кажутся.

То кто то поможет разобратся с установлением флажков на экран в коде приведеном выше, чтоб при нажатии на заданую кнопку поочередно при последующем нажатии переключались экраны ???

skyspirit
Offline
Зарегистрирован: 27.02.2015

Yarik.Yar пишет:

Правьте шрифты в файле DefaultFonts.h

я с помощю генератора символов сделал так называемый хек код больших цифр размером 16Х32

но непойму за что отвечают некоторые стоки, так как мои цыфры выводятся поломаными вывернутыми кто правил данный файл.

вот за что например отвечает первый ряд (0x0e, 0x18, 0x2d, 0x0d,,)  так как остальное понятно за что


fontdatatype BigNumbers[] PROGMEM =
{
0x0e, 0x18, 0x2d, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x10, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x10, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   // -

там видимо что то отвечает за формат цыфры, так как родной формат цыфр BigNumbers 14х24  а я генерировал 16х32

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

0x0e - ширина символа в пикселях (в данном случае 14),

0x18 - высота символа в пикселях (в данном случае 24)

0x2d - ASCII-код первого символа (смещение в таблице - 45),

0x0d - количество символов знакогенератора (13).

skyspirit
Offline
Зарегистрирован: 27.02.2015

Благодарю :) буду разбиратся дальше

я так понял такой таблицей нужно пользоватся

http://www.dpva.info/guide/guidemathematics/guidemathematicsnumericalsystems/tablecodeequivalent/

доделал цыфри формата 16х32 все работает даже крайние два значения менятьне надо 

 0x2d - ASCII-код первого символа (смещение в таблице - 45),                                                                              0x0d - количество символов знакогенератора (13).

а вот  если 20х40 то уже не работает, подскажите какая там зависимость от ширины и высоты ???

skyspirit
Offline
Зарегистрирован: 27.02.2015

все же больше интересует переключение екранов нажатием кнопки, как те флаги ставить и прописывать условия никак не разберусь

вот пока  скеч где намешаны экраны выводятся  подскажите где чего добавить в коде чтоб при каждом нажатии кнопки на 11 выводе поочередно переключались экран 1  2  3 

#include <LCD5110_Graph.h>
#include "DHT.h"
#include <Wire.h>
#include <BMP085.h>
#include "RTClib.h"
#define DHTPIN 14     // 10 pin для датчика DHT11
#define DHTTYPE DHT11

#define DHTTYPE DHT11

RTC_DS1307 RTC;
BMP085 dps = BMP085();
DHT dht(DHTPIN, DHTTYPE);

long temp3 = 0, Pressure = 0, Altitude = 0;

// pin 2 - Serial clock out (SCLK)
// pin 3 - Serial data out (DIN)
// pin 4 - Data/Command select (D/C)
// pin 6 - LCD chip select (CS)
// pin 5 - LCD reset (RST)

LCD5110 myGLCD(2, 3, 4, 6, 5);

extern unsigned char SmallFont[]; 
extern unsigned char BigNumbers[];
extern unsigned char MediumNumbers[];

   int button = 11; // кнопка к 11 выводу ардуино

void setup() {
  
  pinMode(button, INPUT); // условия что при нажатии кнопки будет действие

  myGLCD.InitLCD(60); // контраст экрана
  myGLCD.setFont(SmallFont);
  myGLCD.setFont(BigNumbers);
  myGLCD.setFont(MediumNumbers);
  analogReference(INTERNAL);
  
  Wire.begin();
  RTC.begin();
  dht.begin();
  delay(2000);

  dps.init(MODE_ULTRA_HIGHRES, 0, true); 
}

void loop() {
 
  if (digitalRead(button) == HIGH) 
   
  dps.getPressure(&Pressure);
  dps.getAltitude(&Altitude);
  dps.getTemperature(&temp3);
  DateTime now = RTC.now();


  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) - Показания датчика могут также быть до «старыми» (его очень медленно датчика) 2 секунды
  float h = dht.readHumidity();
  // Read temperature as Celsius - Читайте температуру, по Цельсию
  float t = dht.readTemperature();

  myGLCD.clrScr(); // Очистка экрана
 
                // экран 1
  myGLCD.setFont(SmallFont);
  myGLCD.print("Pressure", CENTER, 0);
  myGLCD.print("mmHg", RIGHT, 14);
  myGLCD.print("hPa", RIGHT, 35);
  myGLCD.setFont(MediumNumbers);
  myGLCD.printNumF(Pressure / 133.3, 0, 7, 10); //давление в мм рт.ст.
  myGLCD.printNumF(Pressure / 100 , 0, 7, 30); //давление в гектапаскалях              
      // экран 2                                                                           
myGLCD.setFont(SmallFont); 
 myGLCD.print("Temperature", CENTER, 0); 
 myGLCD.print(" *C ",  30, 15);
 myGLCD.setFont(MediumNumbers);
 myGLCD.printNumF(temp3 * 0.1, 0, 7, 15);
             // экран 3
 myGLCD.setFont(SmallFont); 
 myGLCD.print("Humidity", CENTER, 0); // задаем влажность с DHT22
 myGLCD.print("%", 60, 20);
 myGLCD.setFont(MediumNumbers);
 myGLCD.printNumF(h, 0, 5, 20);// показания влажности

              
  myGLCD.update(); // Вывод вместимого буфера на дисплей
  delay (500); // Задержка 0,5 с

}
Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Чего проще то? Заведите переменную, которая считает нажатие кнопки по кругу. И от значения переменной хоть 150 экранов выводите.
все страньше и страньше.

skyspirit
Offline
Зарегистрирован: 27.02.2015

А как выглядит та переменная и флаги на экран ? 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

skyspirit пишет:

А как выглядит та переменная и флаги на экран ? 

Гриша
Offline
Зарегистрирован: 27.04.2014

int k;

if (k=1){

}

else......

т.е. так как и влюбом другом случае... значение "к" = нажатия кнопки :) 

skyspirit
Offline
Зарегистрирован: 27.02.2015

Гриша пишет:

int k;

if (k=1){

}

else......

т.е. так как и влюбом другом случае... значение "к" = нажатия кнопки :)  

ну это по кнопке переменная, а как в коде обозначить что это именно тот экран который нам нужен, что перед ним писать?

              // экран 1
67
  myGLCD.setFont(SmallFont);
68
  myGLCD.print("Pressure", CENTER, 0);
69
  myGLCD.print("mmHg", RIGHT, 14);
70
  myGLCD.print("hPa", RIGHT, 35);
71
  myGLCD.setFont(MediumNumbers);
72
  myGLCD.printNumF(Pressure / 133.3, 0, 7, 10); //давление в мм рт.ст.
73
  myGLCD.printNumF(Pressure / 100 , 0, 7, 30); //давление в гектапаскалях             
74
      // экран 2                                                                          
75
myGLCD.setFont(SmallFont);
76
 myGLCD.print("Temperature", CENTER, 0);
77
 myGLCD.print(" *C ",  30, 15);
78
 myGLCD.setFont(MediumNumbers);
79
 myGLCD.printNumF(temp3 * 0.1, 0, 7, 15);
80
             // экран 3
81
 myGLCD.setFont(SmallFont);
82
 myGLCD.print("Humidity", CENTER, 0); // задаем влажность с DHT22
83
 myGLCD.print("%", 60, 20);
84
 myGLCD.setFont(MediumNumbers);
85
 myGLCD.printNumF(h, 0, 5, 20);// показания влажности
86
 
87
               
88
  myGLCD.update(); // Вывод вместимого буфера на дисплей
89
  delay (500); // Задержка 0,5 с
90
 
91
}

 

Гриша
Offline
Зарегистрирован: 27.04.2014

skyspirit пишет:

ну это по кнопке переменная, а как в коде обозначить что это именно тот экран который нам нужен, что перед ним писать?

весьма примерно так (в смысле наглядности при обучении)

int k;
void button()
{
  смотрим кнопку 
}

void display1()
{
  описываем картинку 1 тут
}

void display2()
{
  описываем картинку 2 тут
}

void loop()

{
  button(); // кнопка
  if (k==0)
  {
  display1();
  millis............. // пауза, если нужно 
  clearDisplay(); // чистим экран - это подпрограмма, если нужно
  }
else if (k==1)
  {
  display2();
  millis............. // пауза, если нужно 
  clearDisplay(); // чистим экран - это подпрограмма, если нужно
  }
  else if.... 
 
}

и сворачивайте код при вставке, мотать устал

skyspirit
Offline
Зарегистрирован: 27.02.2015

Благодарю! буду переваривать дальше :)