Прошу помощи с выводом текста на i2c дисплей
- Войдите на сайт для отправки комментариев
Сб, 03/02/2018 - 15:15
доброго времени суток господа форумчане, хучу дисплей 128на32 использовать на макете для вывода информации.
#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("<1 ПЛАТФОРМА");
u8g.setPrintPos(0, 30);
u8g.print("ПЛАТФОРМА 2>");
}
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);
}
вот это собрать получилось все работает. А как сделать так что бы выводился текст с попеременке с цикличностью я не догоняю. Прошу сильно не пинать я только учусь. И заранее спасибо
Что значит "с попеременке с цикличностью"?
Ну вот сначала допустим на дисплее написано "платформа1" "платформа2" (2 строки) потом допустим через минуту "не курить" потом еще через минуту другая информация, и так по кругу.
Ну вот сначала допустим на дисплее написано "платформа1" "платформа2" (2 строки) потом допустим через минуту "не курить" потом еще через минуту другая информация, и так по кругу.
Заводите флаги - что показывать на дисплее в текущий момент времени. Как только что-то во флагах изменилось - обновляете дисплей.
Пример:
typedef enum { showPlatform, showNoSmoke, } Flags; Flags toDisplay = showPlatform; bool wantRedraw = false; bool lastButtonClicked = false; void draw() { if(!wantRedraw) return; wantRedraw = false; switch(toDisplay) { case showPlatform: { tft.print("Платформа 1"); } break; case showNoSmoke: { tft.print("НЕ КУРИТЬ!"); } break; } } void loop() { draw(); bool curButtonClicked = button.isClicked(); wantRedraw = curButtonClicked != lastButtonClicked; lastButtonClicked = curButtonClicked; if(curButtonClicked) { toDisplay = showNoSmoke; } else { toDisplay = showPlatform; } }Спасибо большое что флаги я понял а дальше я не догоняю.
где размер шрифта? и время ? трудно мне пока.
#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("<1 ПЛАТФОРМА"); u8g.setPrintPos(0, 30); u8g.print("ПЛАТФОРМА 2>"); } 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); }вот на этом примере что поправить? СПАСИБО БОЛЬШОЕ.
вот на этом примере что поправить? СПАСИБО БОЛЬШОЕ.
К каждой библиотеке, как правило, есть примеры, ваша - не исключение. Пункт меню "Примеры" в Arduino IDE откройте, и изучайте примеры к библиотеке экрана.
вот ткните пальцем пожалуйста.
вот вывел дисплей эту инфу например на 6 секунд как продолжить скейч чтобы например он дальше показал следущие строчки шрифта или картинку?