Прошу помочь с библиотекой U8glib и I2C дисплеем
- Войдите на сайт для отправки комментариев
Чт, 08/02/2018 - 12:14
Доброго времени суток ессть вот какой текст который выводится на дисплей.
#include <U8glib.h>
#include "rus10x20.h"
U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI
void draw(void) {
// graphic commands to redraw the complete screen should be placed here
u8g.setFont(rus10x20);
u8g.setPrintPos(0, 13);
u8g.print("НЕ КУРИТЬ");
u8g.setPrintPos(0, 30);
u8g.print("ГРУЗОВОЙ ПОЕЗД");
}
void setup(void) {
// flip screen, if required
// u8g.setRot180();
}
void loop(void) {
// picture loop
u8g.firstPage();
do {
draw();
} while( u8g.nextPage() );
// rebuild the picture after some delay
delay(500);
}
Отлично! Ну хоть за кого-то порадоваться сегодня можно!
Подскажите а как его дописать чтобы строчки менялись через
определенный промежуток времени.
например
Извените за ошибки в машине не очень удобно писать.
u8g.print("НЕ КУРИТЬ");
u8g.print("ШТРАФ 1000");
Это не будет работать: мотивация не правильная!
Подскажи как правиль сделать?
Подскажите как его поправить.
На смартфоне не удобно набирать текст.
Извините еще раз.
Ну типа так: БРОСИЛ МУСОР В УРНУ - ПОЛУЧИ СТАКАН ПИВА!
у вас в радиусе километра чистота будет!
Ну типа так: БРОСИЛ МУСОР В УРНУ - ПОЛУЧИ СТАКАН ПИВА!
у вас в радиусе километра чистота будет!
"И со всей округи люди приходили к нам..." (с) Розенбаум
Будут приходить со своим мусором - пива не напасешься. Уж лучше штрафовать - оно и выгоднее :)
Вырежу код кусками из своего эксперемента. Надеюсь поймете что к чему
if (millis() - curentMillis > setTime) { set ++; curentMillis = millis(); if (set >= 3){ set = 0; } while (u8g.nextPage()); switch (set){ case 0: do{ u8g.setFont(u8g_font_6x10); // Выбираем шрифт u8g_font_6x10 u8g.setColorIndex(1); // Выбираем цвет фона u8g.setPrintPos(0, 9); u8g.print("Cur"); u8g.setFont(u8g_font_courB24n); // Выбираем шрифт u8g_font_6x10 u8g.setColorIndex(1); // Выбираем цвет фона u8g.setPrintPos(20, 22); u8g.print(t); } while (u8g.nextPage()); break; case 1: do{ u8g.setFont(u8g_font_6x10); u8g.setColorIndex(1); // Выбираем цвет фона u8g.setPrintPos(0, 9); u8g.print("Min"); u8g.setFont(u8g_font_courB24n); // Выбираем шрифт u8g_font_6x10 u8g.setColorIndex(1); u8g.setPrintPos(20, 22); u8g.print(tMin); } while (u8g.nextPage()); // dispLED.point(false); break; case 2: do{ u8g.setFont(u8g_font_6x10); // Выбираем шрифт u8g_font_6x10 u8g.setColorIndex(1); // Выбираем цвет фона u8g.setPrintPos(0, 9); u8g.print("Max"); u8g.setFont(u8g_font_courB24n); // Выбираем шрифт u8g_font_6x10 u8g.setColorIndex(1); u8g.setPrintPos(20, 22); u8g.print(tMax); u8g.setColorIndex(1); u8g.drawLine(22,53,20,10); } while (u8g.nextPage()); break; }Спасибо большое за помощь.
Только вот не совсем все роботает.
я сделал вот так.
l#include "U8glib.h" U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI long previousMillis = 0; long interval = 1000; void setup() { if (millis() - previousMillis > interval){ set ++; } previousMillis = millis(); if (set >= 3){ set = 0; } while (u8g.nextPage()); switch (set){ case 0: do{ u8g.setFont(u8g_font_6x10); // Выбираем шрифт u8g_font_6x10 u8g.setColorIndex(1); // Выбираем цвет фона u8g.setPrintPos(0, 9); u8g.print("Cur"); u8g.setFont(u8g_font_courB24n); // Выбираем шрифт u8g_font_6x10 u8g.setColorIndex(1); // Выбираем цвет фона u8g.setPrintPos(20, 22); u8g.print(t); } while (u8g.nextPage()); break; case 1: do{ u8g.setFont(u8g_font_6x10); u8g.setColorIndex(1); // Выбираем цвет фона u8g.setPrintPos(0, 9); u8g.print("Min"); u8g.setFont(u8g_font_courB24n); // Выбираем шрифт u8g_font_6x10 u8g.setColorIndex(1); u8g.setPrintPos(20, 22); u8g.print(tMin); } while (u8g.nextPage()); // dispLED.point(false); break; case 2: do{ u8g.setFont(u8g_font_6x10); // Выбираем шрифт u8g_font_6x10 u8g.setColorIndex(1); // Выбираем цвет фона u8g.setPrintPos(0, 9); u8g.print("Max"); u8g.setFont(u8g_font_courB24n); // Выбираем шрифт u8g_font_6x10 u8g.setColorIndex(1); u8g.setPrintPos(20, 22); u8g.print(tMax); u8g.setColorIndex(1); u8g.drawLine(22,53,20,10); } while (u8g.nextPage()); break; } И вот такая ошибка. U8glib-1.19.1\U8glib-1.19.1\examples\TextRotX\TextRotX.ino: In function 'void setup()': TextRotX:15: error: 'set' was not declared in this scope TextRotX:20: error: 'set' was not declared in this scope TextRotX:28: error: 'set' was not declared in this scope TextRotX:39: error: 't' was not declared in this scope TextRotX:54: error: 'tMin' was not declared in this scope TextRotX:69: error: 'tMax' was not declared in this scope TextRotX:76: error: expected '}' at end of input exit status 1 'set' was not declared in this scopeи что - в сообщении об ошибке же ясно все сказано... с английским проблемы. что ли?
Задекларируйте переменные, прежде чем использовать.
Спсасибо. Дело в том что я только учусь и мне не совсем все понятно.
Подскажите еще пожалуйста, исли например нужны разные
временные интервалы между сменами текста на дисплее
можно ли использовать
delay()
например
oid draw(void) { u8g.setFont(rus10x20); u8g.setPrintPos(0, 13); u8g.print("абвг "); u8g.setPrintPos(0, 30); u8g.print("12345>"); delay (1000) u8g.setFont(rus10x20); u8g.setPrintPos(0, 13); u8g.print("1234 "); u8g.setPrintPos(0, 30); u8g.print("2581"); delay (1000) или это не будет работать ?