Помогите разобраться с библиотекой U8glib
- Войдите на сайт для отправки комментариев
Ср, 07/09/2016 - 18:07
Есть терморегулятор на Ардуине. Захотелось прилепить к нему OLED дисплей 0.96 I2C типа такого . В качестве датчика температуры используется термистор, значение температуры присваивается переменной temp. Для вывода на экран перепробовал библиотеки OLED I2C, AsOLED, OzOLED, тут как бы все нормально. Хочу еще попробовать библиотеку U8glib, но не могу понять как выводить значение temp. Из примеров идущих с библиотекой понял что вывод текста идет с помощью функции void draw(void)
void draw(void) { // graphic commands to redraw the complete screen should be placed here u8g.setFont(u8g_font_unifont); //u8g.setFont(u8g_font_osb21); u8g.drawStr( 0, 22, "Hello World!"); } void loop(void) { u8g.firstPage(); do { draw(); } while( u8g.nextPage() );
а вот как вывести значение temp так и не разобрался. Может есть какой нибудь готовый пример, ткните носом плиз
draw() - это условное название функции, помещенное в так называемый "picture loop" (строки 8-11)
Что-то я (и компилятор тоже) не нашел такой команды lcd.print в этой библиотеке.
Что-то я (и компилятор тоже) не нашел такой команды lcd.print в этой библиотеке.
а так:
а так:
Как говорил кот Матроскин "Ура! Заработало". Спасибо!
p/s еще бы узнать как очищать(гасить) экран?
upd: кажись нашел - u8g.sleepOn(); и u8g.sleepOff(); / выключает и включает экран соответсвенно
а так:
Как говорил кот Матроскин "Ура! Заработало". Спасибо!
p/s еще бы узнать как очищать(гасить) экран?
upd: кажись нашел - u8g.sleepOn(); и u8g.sleepOff(); / выключает и включает экран соответсвенно
как бы - нет.
в идиологии этой библиотеки очистка экрана не нужна.
достаточно ничего не рисовать в цикле picture loop.
в идиологии этой библиотеки очистка экрана не нужна.
достаточно ничего не рисовать в цикле picture loop.
т.е. создать еще один пустой цикл?
Я хочу чтобы значение температуры выводилось на экран тоько по определенному условию, например, по нажатию кнопки, а после ее отпускания экран очищался. Те команды что я привел выше как раз и делают то что мне нужно. Другого способа пока не придумал.
т.е. создать еще один пустой цикл?
да.
Я хочу чтобы значение температуры выводилось на экран тоько по определенному условию, например, по нажатию кнопки, а после ее отпускания экран очищался. Те команды что я привел выше как раз и делают то что мне нужно. Другого способа пока не придумал.
ну работает и работает...
Хотя, очистка экрана этой функцией - это побочный эффект. Если контроллер вашего дисплея поддерживает режим сна - потратится время, на смену режимов, да и некоторые настрой сбрасываются.
Не получается по очередно показывать "Вемя дата"<->"Температура влажность" с интервалом 1 сек например.
Не получается по очередно показывать "Вемя дата"<->"Температура влажность" с интервалом 1 сек
Принято к сведению.
Теперь будем знать, что с таким кодом "не получается", спасибо.
Поскажите плиз , есть прэкт http://www.semifluid.com/2013/05/28/arduino-fio-lcd-oscilloscope/ но там дисплей,я такого и невидел , но как поделючить дисплей NOKIA 5110
По гуглить нужно. Есть у дрогого автора и покруче, да и на разных дисплеях.
Вот к примеру: http://srukami.inf.ua/pultoscop_v25110.html
По гуглить нужно. Есть у дрогого автора и покруче, да и на разных дисплеях.
Вот к примеру: http://srukami.inf.ua/pultoscop_v25110.html
Нет это полная ерунда , я такой делал . Он показывает только положительные импульсы , нет ни синхронизации нет ни чего , показания врут безбожно .
В Вашей ссылке в 15 - строке указан MINI12864. Библиотека U8GLIB универсальна. Скачайте ее, выберите свой дисплей, укажите соответствующие контакты. Можно взять как пример из ссылки, которую я указал. Порасскинте мозгами. Ничего там сверх сложного нет.
Спасибо , по пробую .
Всем добра . Столкнулся с небольшей проблемкой . Суть такова - есть скетч ,работает ,компилируется . Скетч под двухстрочный индикатор LCD Keypad Sheild , а мне нужно подключить 1.8 TFTграфический дисплей , сьиблиотеками TFT.h и SPI.h
Скетч под двухстрочный индикатор LCD Keypad Sheild , а мне нужно подключить 1.8 TFTграфический дисплей , сьиблиотеками TFT.h и SPI.h
Нужно - подключай!
Сюда-то ты зачем это запостил?
Извиняюсь не вту тему писал
Библиотека U8GLIB универсальна.
Библиотека U8GLIB универсальна.
На столько новая, что не попадалась такая.
На столько новая, что не попадалась такая.
Помогите разобраться с библиотекой u8g
Собственно проблема в том что я пытаюсь вывести показания HC-SR04 на вот этот дисплей
https://ru.aliexpress.com/item/0-91-128x32-IIC-I2C-OLED/32836647725.html...
Дисплей точно работает, текст вводит
а вот вывеести показания дальномера не могу. Помогите пожалуйста
а вот вывеести показания дальномера не могу. Помогите пожалуйста
Это я исправил, вывел в порт, работает. А вот на дисплей не выводит(
Это я исправил, вывел в порт, работает. А вот на дисплей не выводит(
u8g.print("duration"); - а почему duration в кавычках? Вам значение переменной надо вывести, или слово duration?
Послушайте, Ghost33, Вы не правильно код вставляете. Это не прилично.
Читать тут: http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
Я вижу, что кавычки Вы убрали, только Вы забыли казать что теперь происходит. И к тому же Вы не показали , что значение переменной duration действительно считается верно.
Прошу великадушно меня простить, за безграмотность. Вданном случае: ковычки я действительно убрал. duration - считается правильно, поверьте на слово) проверил (вывел в порт, значения показывает правильно)
происодит следующее: порт выдает значения, на экране показаний нет. выводится множество точек. но четкого числа нет
вот что выводит порт:m
А u8g.setPrintPos(0, 0) не пробовали? У Вас картинка не за экраном?
Я бы на Вашем месте :
1) проверил соединение
2) проверил правильность инициализации
U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE);
// I2C / TWI
3) попробовал бы сменить фонт
4) проверил бы реакцию на разные значение ink
А u8g.setPrintPos(0, 0) не пробовали? У Вас картинка не за экраном?
Да, пожалуй дело не в этом. Это левый нижний угол.
Чего-то мне кажется автор потерял, по сравнению со скетчем, где он текст выводил. Я смотрю в примерах к библиотеке весь вывод между u8g.firstPage() и u8g.nextPage() делается.
Во, в сообщении #21 они были, только стояли не правильно. u8g.firstPage() выше do должно быть
Ребята помогите, я уже не понимаю почему у меня не получается
Ребята помогите, я уже не понимаю почему у меня не получается
Если долго мучиться, что-нить получиться.
Вы походу куда-то цикл выкинули. Попробуйте такой луп. Если не получится, то надо начинать сначала: какой дисплей, какой дуин, какое подключение?
Ну так Вы в порт выводите cm = duration / 58; А на дисплей просто duration. Чего тут удивляться? ;)
при вашем лупе на экран вывелся 0. дисплей на микроконтроллере ssd1306 128х32
Arduino - Mega - китайская, подключениие по i2c
думаете я не пробовал разобраться в библиотеке? просто так пришел сюда за поиском готового ответа?
нет я много смотрел инфы в нете, шарился в библиотеке, переписывал код раз 50
так что не нужно меня обвинять в том что я нихочу ничего делать)
сюда обратился от того что мои логические мысли закончились
Вы операторы вообще от балды пишете, лишь бы что-то было? Что у Вас делает NextPage перед delay перед do? Уберите! Вот print, который перед этим -работает, а всё, что Вы вынесли в функцию draw - нет. И вставляйте код по правилам, с номерами строк. Как Вам на ошибки-то без этого указать?
Спасибо)))) все заработало, выводит одекватные сообщения, правда иногда не прорисовывает цифры, может какаую-то цифру на половину прорисовать. Не подскажите? в чем причина
Верю, что пробовали. Только видно, что ничего не вышло... В чем причина? - [s]просто вы идиот.[\s] Сорри, но это правда...
Код совершенно безграмотный. Функция draw у вас зачем? В ней мешанина того, что должно быть в setup вперемешку с тем, что потом повторено в loop.
У вас инициализации дисплея вообще нет, а инициализация пинов и сериала оказалась в функции draw в конце луп - дисплей просто обязан глючить, странно, что хоть что-то показывает...
Верю, что пробовали. Только видно, что ничего не вышло... В чем причина? - [s]просто вы идиот.[\s] Сорри, но это правда...
Низя так. :(
С людями надо помягше. Особенно с теми, кто сам хоть что-то пытается. Таких вапще мало осталось, их надо лелеять и взращивать. Не у всех образование профильное, да и в школе информатика не у всех была. Даже я, пьянь распоследняя, это понимаю.
Дружище спасибо за ваше мнение. Но идиота вы взеркале можете увидеть!это 1
2. не все родились гениями (как вы)
3. Да я не все понимаю и делаю не правильно(но стараюсь и делаю)
4. Этот раздел создан именно для того чтобы помогать, а не выяснять кто идиот
5. Самоутверждаться необходимо выбрав себе равного противника! Иначе отобрать у ребенка конфетку это не показатель героизма и силы - а как вы выразилсиь Идиотизма!
6.по поводу кода- од написан именно так, по той причине что вот именно так стало работать, просто с функцией loop данный дисплей работать не захотел!
7. Есть какие то идеи как это исправить? поделитесь.
8. как тут уже заметили не у всех образование профильное (спасибо, дружище) а руки и голова щешутся что-то сделать самостоятельно - не все получаетсяс первого раза и не все понимается как вам кажется очевидные вещи.
9. Сюда пришел не с пустыми руками а обраился к специалистам за разьяснениями и помощью, пытаюсь и пробую что-то сделать сам, не прошу готового решения
10. Хоите поделится мыслями как и что исправить, делитесь а не обсуждайте кто из себя что представляет (терпимее и добрее нужно быть к людям), мир станет чуточку добрее. А в таком ключе именно из-за таких людей и обращения возникают комплексы и желание заниматься отпадает!
А тебе, Привидение, по делу: брось ты эту монструозную каку U8glib нахрен. Если только текстровый вывод нужен, используй биб-ку
https://github.com/greiman/SSD1306Ascii/tree/master/SSD1306Ascii
или ASOLED от Adriano на этом форуме (поиском находится). Места экономится - куча и результат намайный (я щитаю)
Вот что с помощью этой биб-ки можно сделать
<a href="http://forum.amperka.ru/threads/%D0%90%D1%85-%D1%8D%D1%82%D0%B8-%D1%81%D1%82%D1%80%D0%B0%D1%88%D0%BD%D1%8B%D0%B5-%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5-%D0%BC%D0%B8%D0%BB%D1%8B%D0%B5-%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%8B%D0%B5-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D1%8B.14180/page-3#post-148229">Видео.</a>
В реале мерцанья нет.
Спасибо за статью. Мне вывести не текст нужно а переменную. Это ультразвуковой измеритель - дальномер. Текст то вывести 4 строки, плевое дело
А тебе, Привидение, по делу: брось ты эту монструозную каку U8glib нахрен. Если только текстровый вывод нужен, используй биб-ку
https://github.com/greiman/SSD1306Ascii/tree/master/SSD1306Ascii
или ASOLED от Adriano на этом форуме (поиском находится). Места экономится - куча и результат намайный (я щитаю)
Вот что с помощью этой биб-ки можно сделать
<a href="http://forum.amperka.ru/threads/%D0%90%D1%85-%D1%8D%D1%82%D0%B8-%D1%81%D1%82%D1%80%D0%B0%D1%88%D0%BD%D1%8B%D0%B5-%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5-%D0%BC%D0%B8%D0%BB%D1%8B%D0%B5-%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%8B%D0%B5-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D1%8B.14180/page-3#post-148229">Видео.</a>
В реале мерцанья нет.
Уважаемый, если освоили эту библиотеку, то это не говорит о том, что все остальные - дерьмо.
Нет. Не говорит. И я этого нигде не говорил.
Уважаемый, дак я как бы не говорил что остальное дерьмо)) все познается в сравнении, мне больше нес чем сравнить, с этой единственная библиотека в которой дисплей соизволил работать. В идеале вообще бы отказаться от библиотеки и прописать все ручками самому. Но увы( пока знаний как это сделать нет.
Если поделитесь информацией где это прочесть и попробовать сделать. С буду благодарен оченнь)
Уважаемый, дак я как бы не говорил что остальное дерьмо)) все познается в сравнении, мне больше нес чем сравнить, с этой единственная библиотека в которой дисплей соизволил работать. В идеале вообще бы отказаться от библиотеки и прописать все ручками самому. Но увы( пока знаний как это сделать нет.
Если поделитесь информацией где это прочесть и попробовать сделать. С буду благодарен оченнь)
Да наберите в Google к примеру - "работа с библиотекой U8glib". И вывалится множество информации. Конечно, нужно посидеть, почитать, что-то попробовать, проверить, проанализировать готовые скетчи.. Так, не заметно для себя, прийдет опыт и знания. :-)
Спасибо за статью. Мне вывести не текст нужно а переменную.
а что, есть принципиальная разница? - я ж говорю - идиот... а ты обижаешься.