0@0
LibraryRoot
0@0
492
0@0
169
373
0@0
root
1
7032dbbe-a47f-43e7-bd3d-0fbec454f64e
LibraryGroup-OLED дисплей
LibraryGroup-OLED для ESP8266
LibraryGroup-OLED ESP8266 display
0@-96
4
2
560@140
580@140 corner: 656.0d@160
560@140 corner: 676.0d@160
585.0d@154.5d
OLED display
913145b0-4a4f-4021-bf64-efd96f2e326c
OLED display
Блок завершения вывода, должен располагаться после блоков текста и графики (можно на последней плате).
102
display.display();
20
76.0d
3
560@60
580@60 corner: 718.0d@120
560@60 corner: 798.0d@120
585.0d@74.5d
en
560@90
574@90
OLED_display
c08f918b-b4c9-4b8b-adce-0be5ad5905ea
8ce101ce-602d-4a97-b227-d06084f438d7
OLED
in
f04fb191-29c1-4f55-aa01-785ddce5594e
6a1a2972-764d-4c21-9106-4ffa5ef79b64
e2235121-5f3c-4e38-b1cb-13ef43f65a7c
OLED display
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(0,0);
display.println(utf8rus("in"));
display.display();
165
display.begin(SSD1306_SWITCHCAPVCC);
//display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.cp437(true);
104
#include
<SPI.h>
#include
<Wire.h>
#include
<Adafruit_GFX.h>
#include
<Adafruit_SSD1306.h>
#define
OLED_RESET
11
display
(OLED_RESET);
Adafruit_SSD1306
int i,k;
String target;
unsigned char n;
char m[2] = { '0', '\0' };
k = source.length(); i = 0;
while (i < k) {
n = source[i]; i++;
if (n >= 0xC0) {
switch (n) {
case 0xD0: {
n = source[i]; i++;
if (n == 0x81) { n = 0xA8; break; }
if (n >= 0x90 && n <= 0xBF) n = n + 0x30;
break;
}
case 0xD1: {
n = source[i]; i++;
if (n == 0x91) { n = 0xB8; break; }
if (n >= 0x80 && n <= 0x8F) n = n + 0x70;
break;
}
}
}
m[0] = n; target = target + String(m);
}
return target;
616
String
utf8rus
String
source
text
2b749ab2-70de-4d71-b8b7-935af2e75ff7
if (en) {display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(0,0);
display.println(utf8rus(text));
display.display();}
174
560@80 corner: 574@100
Люблю грозу в начале мая, Когда весенний, первый гром, Как бы резвяся и играя, Грохочет в небе голубом.
560@110
580@110
27.0d@115.0d
560@100 corner: 580@120
OLED_rus_text_max_width
762764e5-4723-445c-affe-f6669664adde
OLED ESP8266rus вывод текста с переносом
Рисует строку с максимальной шириной в заданном месте.
Если заданная строка шире указанной ширины текст будет перенесен на следующую строку через пробел или тире.
Применять соместно с главным блоком и блоком OLED display. Отдельно не работает.
Шрифты:
Кириллица:
ArialRus_Plain_10
ArialRus_Plain_14
ArialRus_Plain_16
ArialRus_Plain_24
ArialRus_Italic_10
ArialRus_Italic_16
ArialRus_Italic_24
text_alignment - положение текста на экране по горизонтали:
TEXT_ALIGN_LEFT,
TEXT_ALIGN_CENTER,
TEXT_ALIGN_RIGHT
507
x
0
128
74253a20-e1be-4386-a842-469a61d704fb
1de9925b-6531-4d74-8c72-6dbb998906fd
y
64
8d28f208-1ad2-4ae8-a4d7-feeca0b341eb
e1677451-80ee-4963-b401-43ca7b97efca
text_alignment
TEXT_ALIGN_CENTER
3026a043-f035-4102-9794-d271c63370ce
TEXT_ALIGN_LEFT
bac8990f-dd1a-4480-8ba9-f26d579a293d
text_font
ArialRus_Plain_10
f03ed4e6-c5cf-4a05-88a4-62db3bdc41e7
389247f2-c4d4-4fb5-b760-59f5726acf1e
max_width
128
518794e6-7122-41f0-a724-3f9a5b34eca5
896b1b6f-de4b-40d3-8401-4c1351295949
if (en) { display.setTextAlignment(text_alignment);
display.setFont(text_font);
display.drawStringMaxWidth(x, y, max_width, utf8rus(text));
}
154
138.0d
560@0
580@0 corner: 689.0d@20
560@0 corner: 709.0d@20
585.0d@14.5d
SSD1306_rus_main
40bfe03a-8585-4ce7-9733-39c0961405d1
SSD1306 ESP8266rus главный
Главный блок, поставить первым.
31
adr_disp
0x3c
Адрес дисплея
586f43de-c3d8-44ed-ab45-71959f6139d5
0639307c-3d9e-4d86-9896-e1718cb643dd
pin_SDA
4
По умолчанию GPIO4 (D2)
eb180c46-0807-4433-9fb7-8d27ad87056c
5a302fa6-3d8d-4ac9-96ec-ebe14f1fcb64
pin_SCK
5
GPIO5 (D1)по умолчанию
a65d9a16-df93-4d64-b6c7-8c9951df4827
0e7ff2cc-6b75-4253-beed-309a6d1a767a
display.clear();
16
display.init();
display.flipScreenVertically();
display.setContrast(255);
73
#include
<Wire.h>
#include
<SSD1306.h>
display
(adr_disp, pin_SDA, pin_SCK);
SSD1306Wire
int i,k;
String target;
unsigned char n;
char m[2] = { '0', '\0' };
k = source.length(); i = 0;
while (i < k) {
n = source[i]; i++;
if (n >= 0xC0) {
switch (n) {
case 0xD0: {
n = source[i]; i++;
if (n == 0x81) { n = 0xA8; break; }
if (n >= 0x90 && n <= 0xBF) n = n + 0x30;
break;
}
case 0xD1: {
n = source[i]; i++;
if (n == 0x91) { n = 0xB8; break; }
if (n >= 0x80 && n <= 0x8F) n = n + 0x70;
break;
}
}
}
m[0] = n; target = target + String(m);
}
return target;
String
utf8rus
String
source
109.0d
460@30
460@30 corner: 806.0d@50.0d
left
ПБ для вывода с переносом на следующую строку длинных текстов.
340.0d
3@12.0d
9.0d
250
(0 to: 250)
9600
arduinoIDE
189
4096
WeMos mini
150192571