Помогите разобраться с дисплеем OLED LCD Display I2C 0.96 IIC Serial 128X64

MacSys
Offline
Зарегистрирован: 18.03.2016

Я просматривал дисплей, и заметил то на плате с i2c, нет разводки под SPI, нужно прямо к шлейфу подпаивать от дисплея.

vingor
Offline
Зарегистрирован: 25.05.2014

Ребят подскажите как добавить дополнительные шрифты в библиотеке OLED_i2c

Качаю шрифт.

// DotMatrix_XL_Num.c
// Font type    : Numeric (10 characters)
// Font size    : 32x50 pixels
// Memory usage : 2004 bytes

#if defined(__AVR__)
	#include <avr/pgmspace.h>
	#define fontdatatype const uint8_t
#elif defined(__PIC32MX__)
	#define PROGMEM
	#define fontdatatype const unsigned char
#elif defined(__arm__)
	#define PROGMEM
	#define fontdatatype const unsigned char
#endif

fontdatatype DotMatrix_XL_Num[2004] PROGMEM=
{
0x20,0x32,0x30,0x0A,
0x00,0x00,0x00,0x00,0x00,0xE3,0x8E,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x00,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE3,0x8E,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x00,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 0
0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE3,0x80,0x00,0x01,0xF7,0xC0,0x00,0x01,0xF7,0xC0,0x00,0x01,0xF7,0xC0,0x00,0x00,0xE3,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE3,0x8E,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x00,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 1
0x00,0x00,0x00,0x00,0x38,0xE3,0x8E,0x00,0x7D,0xF7,0xDF,0x00,0x7D,0xF7,0xDF,0x00,0x7D,0xF7,0xDF,0x00,0x38,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE3,0x8E,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x00,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xE3,0x8E,0x38,0x7D,0xF7,0xDF,0x7C,0x7D,0xF7,0xDF,0x7C,0x7D,0xF7,0xDF,0x7C,0x38,0xE3,0x8E,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 2
0x00,0x00,0x00,0x00,0x38,0xE3,0x8E,0x00,0x7D,0xF7,0xDF,0x00,0x7D,0xF7,0xDF,0x00,0x7D,0xF7,0xDF,0x00,0x38,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE3,0x8E,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x00,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xE3,0x8E,0x00,0x7D,0xF7,0xDF,0x00,0x7D,0xF7,0xDF,0x00,0x7D,0xF7,0xDF,0x00,0x38,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 3
0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xE3,0x8E,0x38,0x7D,0xF7,0xDF,0x7C,0x7D,0xF7,0xDF,0x7C,0x7D,0xF7,0xDF,0x7C,0x38,0xE3,0x8E,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 4
0x00,0x00,0x00,0x00,0x38,0xE3,0x8E,0x38,0x7D,0xF7,0xDF,0x7C,0x7D,0xF7,0xDF,0x7C,0x7D,0xF7,0xDF,0x7C,0x38,0xE3,0x8E,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xE3,0x8E,0x00,0x7D,0xF7,0xDF,0x00,0x7D,0xF7,0xDF,0x00,0x7D,0xF7,0xDF,0x00,0x38,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xE3,0x8E,0x00,0x7D,0xF7,0xDF,0x00,0x7D,0xF7,0xDF,0x00,0x7D,0xF7,0xDF,0x00,0x38,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 5
0x00,0x00,0x00,0x00,0x00,0xE3,0x8E,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x00,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xE3,0x8E,0x00,0x7D,0xF7,0xDF,0x00,0x7D,0xF7,0xDF,0x00,0x7D,0xF7,0xDF,0x00,0x38,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE3,0x8E,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x00,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 6
0x00,0x00,0x00,0x00,0x38,0xE3,0x8E,0x38,0x7D,0xF7,0xDF,0x7C,0x7D,0xF7,0xDF,0x7C,0x7D,0xF7,0xDF,0x7C,0x38,0xE3,0x8E,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 7
0x00,0x00,0x00,0x00,0x00,0xE3,0x8E,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x00,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE3,0x8E,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x00,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE3,0x8E,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x00,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 8
0x00,0x00,0x00,0x00,0x00,0xE3,0x8E,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x00,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x7C,0x00,0x00,0x7C,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE3,0x8E,0x38,0x01,0xF7,0xDF,0x7C,0x01,0xF7,0xDF,0x7C,0x01,0xF7,0xDF,0x7C,0x00,0xE3,0x8E,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE3,0x8E,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x01,0xF7,0xDF,0x00,0x00,0xE3,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 9
};
 
 
Шрифт лежит в корне проекта. Подключаю его в проекте ардуино, а у меня выводятся квадратные кракозябры.
#include <OLED_I2C.h>
OLED  myOLED(SDA, SCL, 8);
extern uint8_t DotMatrix_XL_Num[];

void setup()
{
    myOLED.begin();
    myOLED.setFont(DotMatrix_XL_Num);
    myOLED.printNumI(123, RIGHT, 0);
   myOLED.update();
   myOLED.clrScr();
} void loop() { }
 

Прошу помощи понимаю, что мелочь но где она.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016
//Дисплей
OLED  myOLED(SDA, SCL, 8);
extern uint8_t RusFont[];     // Русский шрифт
extern uint8_t MegaNumbers[]; // Подключение больших шрифтов
extern uint8_t SmallFont[];   // Базовый шрифт без поддержки русскийх символов.

***

/

 myOLED.clrScr();            // очищаем экран
  myOLED.setFont(RusFont);    // Устанавливаем русский шрифт
  myOLED.print((weekDay[now.dayOfWeek()]), CENTER, 0);  // Отображение дня недели
  myOLED.setFont(MegaNumbers);
  myOLED.print(String(now.hour(), DEC), 4, 12);         // Отображение часов
  myOLED.print("/", 51, 12);                            // Отображение двоеточия
  myOLED.print(String(now.minute(), DEC), 75, 12);      // Отображение минут

 

Шрифты тут, лежат в файле дефаулт.с

#if defined(__AVR__)
	#include <avr/pgmspace.h>
	#define fontdatatype const uint8_t
#elif defined(__PIC32MX__)
	#define PROGMEM
	#define fontdatatype const unsigned char
#elif defined(__arm__)
	#define PROGMEM
	#define fontdatatype const unsigned char
#endif

fontdatatype SmallFont[] PROGMEM =
{
0x06, 0x08, 0x20, 0x5f,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   // sp
0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,   // !
0x00, 0x00, 0x07, 0x00, 0x07, 0x00,   // "
0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,   // #
0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,   // $
0x00, 0x23, 0x13, 0x08, 0x64, 0x62,   // %
0x00, 0x36, 0x49, 0x55, 0x22, 0x50,   // &
0x00, 0x00, 0x05, 0x03, 0x00, 0x00,   // '
0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,   // (
0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,   // )
0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,   // *
0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,   // +
0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,   // ,
0x00, 0x08, 0x08, 0x08, 0x08, 0x08,   // -
0x00, 0x00, 0x60, 0x60, 0x00, 0x00,   // .
0x00, 0x20, 0x10, 0x08, 0x04, 0x02,   // /

0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,   // 0
0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,   // 1
0x00, 0x42, 0x61, 0x51, 0x49, 0x46,   // 2
0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,   // 3
0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,   // 4
0x00, 0x27, 0x45, 0x45, 0x45, 0x39,   // 5
0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,   // 6
0x00, 0x01, 0x71, 0x09, 0x05, 0x03,   // 7
0x00, 0x36, 0x49, 0x49, 0x49, 0x36,   // 8
0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,   // 9
0x00, 0x00, 0x36, 0x36, 0x00, 0x00,   // :
0x00, 0x00, 0x56, 0x36, 0x00, 0x00,   // ;
0x00, 0x08, 0x14, 0x22, 0x41, 0x00,   // <
0x00, 0x14, 0x14, 0x14, 0x14, 0x14,   // =
0x00, 0x00, 0x41, 0x22, 0x14, 0x08,   // >
0x00, 0x02, 0x01, 0x51, 0x09, 0x06,   // ?

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
0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,   // G
0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,   // H
0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,   // I
0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,   // J
0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,   // K
0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,   // L
0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,   // M
0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,   // N
0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,   // O

0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,   // P
0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,   // Q
0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,   // R
0x00, 0x46, 0x49, 0x49, 0x49, 0x31,   // S
0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,   // T
0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,   // U
0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,   // V
0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,   // W
0x00, 0x63, 0x14, 0x08, 0x14, 0x63,   // X
0x00, 0x07, 0x08, 0x70, 0x08, 0x07,   // Y
0x00, 0x61, 0x51, 0x49, 0x45, 0x43,   // Z
0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,   // [
0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55,   // Backslash (Checker pattern)
0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,   // ]
0x00, 0x04, 0x02, 0x01, 0x02, 0x04,   // ^
0x00, 0x40, 0x40, 0x40, 0x40, 0x40,   // _

0x00, 0x00, 0x03, 0x05, 0x00, 0x00,   // `
0x00, 0x20, 0x54, 0x54, 0x54, 0x78,   // a
0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,   // b
0x00, 0x38, 0x44, 0x44, 0x44, 0x20,   // c
0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,   // d
0x00, 0x38, 0x54, 0x54, 0x54, 0x18,   // e
0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,   // f
0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,   // g
0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,   // h
0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,   // i
0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,   // j
0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,   // k
0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,   // l
0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,   // m
0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,   // n
0x00, 0x38, 0x44, 0x44, 0x44, 0x38,   // o

0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,   // p
0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,   // q
0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,   // r
0x00, 0x48, 0x54, 0x54, 0x54, 0x20,   // s
0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,   // t
0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,   // u
0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,   // v
0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,   // w
0x00, 0x44, 0x28, 0x10, 0x28, 0x44,   // x
0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,   // y
0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,   // z
0x00, 0x00, 0x10, 0x7C, 0x82, 0x00,   // {
0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,   // |
0x00, 0x00, 0x82, 0x7C, 0x10, 0x00,   // }
0x00, 0x00, 0x06, 0x09, 0x09, 0x06    // ~ (Degrees)
};

fontdatatype MediumNumbers[] PROGMEM =
{
0x0c, 0x10, 0x2d, 0x0d,
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00,   // -
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,   // .
0x00, 0x00, 0x02, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x81, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x81, 0x00, 0x00,   // /
0x00, 0xfc, 0x7a, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7a, 0xfc, 0x00, 0x00, 0x7e, 0xbc, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xbc, 0x7e, 0x00,   // 0
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x00,   // 1
0x00, 0x00, 0x02, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x7a, 0xfc, 0x00, 0x00, 0x7e, 0xbd, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x81, 0x00, 0x00,   // 2
0x00, 0x00, 0x02, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x7a, 0xfc, 0x00, 0x00, 0x00, 0x81, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xbd, 0x7e, 0x00,   // 3
0x00, 0xfc, 0x78, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x78, 0xfc, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x3d, 0x7e, 0x00,   // 4
0x00, 0xfc, 0x7a, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x81, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xbd, 0x7e, 0x00,   // 5
0x00, 0xfc, 0x7a, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x02, 0x00, 0x00, 0x00, 0x7e, 0xbd, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xbd, 0x7e, 0x00,   // 6
0x00, 0x00, 0x02, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7a, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x00,   // 7
0x00, 0xfc, 0x7a, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x7a, 0xfc, 0x00, 0x00, 0x7e, 0xbd, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xbd, 0x7e, 0x00,   // 8
0x00, 0xfc, 0x7a, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x7a, 0xfc, 0x00, 0x00, 0x00, 0x81, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xbd, 0x7e, 0x00,   // 9
};

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,   // -
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xe0, 0xe0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,   // .
0x00, 0x00, 0x02, 0x06, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00,   // /
0x00, 0xfc, 0xfa, 0xf6, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0xf6, 0xfa, 0xfc, 0x00, 0x00, 0xef, 0xc7, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xc7, 0xef, 0x00, 0x00, 0x7f, 0xbf, 0xdf, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xdf, 0xbf, 0x7f, 0x00,   // 0
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
0x00, 0x00, 0x02, 0x06, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0xf6, 0xfa, 0xfc, 0x00, 0x00, 0xe0, 0xd0, 0xb8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3b, 0x17, 0x0f, 0x00, 0x00, 0x7f, 0xbf, 0xdf, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00,   // 2
0x00, 0x00, 0x02, 0x06, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0xf6, 0xfa, 0xfc, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xbb, 0xd7, 0xef, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xdf, 0xbf, 0x7f, 0x00,   // 3
0x00, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0x00, 0x00, 0x0f, 0x17, 0x3b, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xbb, 0xd7, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0x00,   // 4
0x00, 0xfc, 0xfa, 0xf6, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x17, 0x3b, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xb8, 0xd0, 0xe0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xdf, 0xbf, 0x7f, 0x00,   // 5
0x00, 0xfc, 0xfa, 0xf6, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0xef, 0xd7, 0xbb, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xb8, 0xd0, 0xe0, 0x00, 0x00, 0x7f, 0xbf, 0xdf, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xdf, 0xbf, 0x7f, 0x00,   // 6
0x00, 0x00, 0x02, 0x06, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0xf6, 0xfa, 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,   // 7
0x00, 0xfc, 0xfa, 0xf6, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0xf6, 0xfa, 0xfc, 0x00, 0x00, 0xef, 0xd7, 0xbb, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xbb, 0xd7, 0xef, 0x00, 0x00, 0x7f, 0xbf, 0xdf, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xdf, 0xbf, 0x7f, 0x00,   // 8
0x00, 0xfc, 0xfa, 0xf6, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0xf6, 0xfa, 0xfc, 0x00, 0x00, 0x0f, 0x17, 0x3b, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xbb, 0xd7, 0xef, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xdf, 0xbf, 0x7f, 0x00,   // 9
};

fontdatatype MegaNumbers[] PROGMEM =
{
0x18,0x28,0x2D,0x0D,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //  
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xF8,0xFC,0xFE,0xFE,0xFC,0xF8,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // .
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0F,0x1F,0x3F,0x3F,0x1F,0x0F,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x7C,0xFE,0xFF,0xFF,0xFE,0x7C,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // :
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xF8,0xF8,0xF0,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xFC,0xFE,0x3F,0x07,0x01,0x03,0x03,0x07,0x0F,0x1F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFC,0xF0,0x00,0x00,0x00,0x00,0xFC,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0x00,0x00,0x0F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFC,0xF8,0xF0,0xE0,0xE0,0xC0,0x80,0xE0,0xF8,0xFF,0x3F,0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x07,0x0F,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 0
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x07,0x07,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x0F,0x1F,0x3F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,  // 1
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xF8,0xF0,0xF0,0xE0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1C,0x3E,0x7F,0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x03,0x01,0x83,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF8,0xFC,0xFF,0xFF,0x7F,0x3F,0x1F,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xF0,0xF8,0xFE,0xDF,0xEF,0xEF,0xE7,0xE3,0xE1,0xE1,0xE0,0xE0,0xC0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x1E,0x1F,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0F,0x0F,0x1F,0x1F,0x0F,0x07,0x03,0x00,0x00,0x00,  // 2
0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xE0,0xF0,0xF8,0xF8,0xF8,0xF0,0xF0,0xE0,0xE0,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x0F,0x1F,0x0F,0x07,0x03,0x01,0x81,0xC0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x0E,0x0E,0x0F,0x0F,0x0F,0x1F,0x3F,0xFF,0xFF,0xFF,0xF9,0xF0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x18,0x3C,0x7E,0xFF,0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0xC1,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,  // 3
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xF8,0xF8,0xF8,0xF0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xF8,0x3C,0x1F,0x07,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFC,0xFF,0xE7,0xE3,0xE0,0xE0,0xE0,0xE0,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0xE0,0xE0,0xE0,0xE0,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0xC3,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0x83,0xC3,0xC3,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x07,0x0F,0x0F,0x0F,0x07,0x03,0x01,0x01,0x00,0x00,0x00,  // 4
0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0x78,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0x07,0x01,0x81,0xC1,0xC1,0xE1,0xF1,0xE1,0xE1,0xC1,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x3F,0x1F,0x0E,0x07,0x07,0x07,0x07,0x0F,0x1F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFE,0xF8,0x00,0x00,0x00,0x00,0x00,0x60,0xF0,0xFC,0xFC,0xFC,0xF8,0xF0,0xF0,0xE0,0xC0,0xC0,0x80,0x80,0xE0,0xFF,0xFF,0x7F,0x3F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,  // 5
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xF8,0xF8,0xF0,0xF0,0xE0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF8,0xFC,0xFE,0x7F,0x0F,0x01,0x01,0x03,0x83,0x87,0xCF,0xCF,0xDF,0x8F,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xB8,0x1C,0x1E,0x0E,0x07,0x0F,0x1F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFE,0xF8,0x00,0x00,0x00,0x00,0x00,0x0F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFC,0xF8,0xF0,0xE0,0xC0,0xC0,0x80,0xE0,0xFF,0xFF,0x3F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x07,0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 6
0x00,0x00,0x00,0x00,0xC0,0xF0,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0x78,0x38,0x00,0x00,0x00,0x00,0x18,0x1E,0x1F,0x07,0x03,0x03,0x01,0x01,0x01,0x81,0xC1,0xF1,0xF9,0xFD,0x3F,0x0F,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xF0,0xFC,0xFE,0xFF,0xFF,0x3F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 7
0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xF0,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFC,0xFF,0xFF,0xE7,0xC1,0xC1,0x81,0x81,0x81,0x81,0x83,0xC3,0xFF,0xFF,0x7F,0x3F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xCF,0xFF,0xFF,0x7F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0xFF,0xFF,0xFE,0xF8,0xE0,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xF8,0xF0,0xE0,0xE0,0xC0,0xC0,0xC0,0xC0,0xC0,0xE0,0xE0,0xFB,0x7F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x1F,0x1F,0x0F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 8
0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF0,0xF8,0xF8,0xF8,0xF0,0xE0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF8,0xFE,0xFF,0xFF,0x87,0x01,0x01,0x01,0x03,0x07,0x0F,0x1F,0x7F,0xFF,0xFF,0xFF,0xFE,0xFC,0xE0,0x00,0x00,0x00,0x00,0x03,0x1F,0x7F,0xFF,0xFF,0xFF,0xFE,0xFC,0xF8,0xF0,0x70,0x38,0x3C,0x1E,0xCF,0xFF,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF0,0xF9,0xFD,0xFB,0xF1,0xF0,0xE0,0xC0,0xC0,0xE0,0xFC,0xFF,0x7F,0x1F,0x0F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x07,0x07,0x0F,0x0F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 9
};

fontdatatype TinyFont[] PROGMEM =
{
0x04, 0x06, 0x20, 0x5f,
0x00, 0x00, 0x00, 0x03, 0xa0, 0x00, 0xc0, 0x0c, 0x00, 0xf9, 0x4f, 0x80, 0x6b, 0xeb, 0x00, 0x98, 0x8c, 0x80, 0x52, 0xa5, 0x80, 0x03, 0x00, 0x00,  // Space, !"#$%&'
0x01, 0xc8, 0x80, 0x89, 0xc0, 0x00, 0x50, 0x85, 0x00, 0x21, 0xc2, 0x00, 0x08, 0x40, 0x00, 0x20, 0x82, 0x00, 0x00, 0x20, 0x00, 0x18, 0x8c, 0x00,  // ()*+,-./
0xfa, 0x2f, 0x80, 0x4b, 0xe0, 0x80, 0x5a, 0x66, 0x80, 0x8a, 0xa5, 0x00, 0xe0, 0x8f, 0x80, 0xea, 0xab, 0x00, 0x72, 0xa9, 0x00, 0x9a, 0x8c, 0x00,  // 01234567
0xfa, 0xaf, 0x80, 0x4a, 0xa7, 0x00, 0x01, 0x40, 0x00, 0x09, 0x40, 0x00, 0x21, 0x48, 0x80, 0x51, 0x45, 0x00, 0x89, 0x42, 0x00, 0x42, 0x66, 0x00,  // 89:;<=>?
0x72, 0xa6, 0x80, 0x7a, 0x87, 0x80, 0xfa, 0xa5, 0x00, 0x72, 0x25, 0x00, 0xfa, 0x27, 0x00, 0xfa, 0xa8, 0x80, 0xfa, 0x88, 0x00, 0x72, 0x2b, 0x00,  // @ABCDEFG
0xf8, 0x8f, 0x80, 0x8b, 0xe8, 0x80, 0x8b, 0xe8, 0x00, 0xf8, 0x8d, 0x80, 0xf8, 0x20, 0x80, 0xf9, 0x0f, 0x80, 0xf9, 0xcf, 0x80, 0x72, 0x27, 0x00,  // HIJKLMNO
0xfa, 0x84, 0x00, 0x72, 0x27, 0x40, 0xfa, 0x85, 0x80, 0x4a, 0xa9, 0x00, 0x83, 0xe8, 0x00, 0xf0, 0x2f, 0x00, 0xe0, 0x6e, 0x00, 0xf0, 0xef, 0x00,  // PQRSTUVW
0xd8, 0x8d, 0x80, 0xc0, 0xec, 0x00, 0x9a, 0xac, 0x80, 0x03, 0xe8, 0x80, 0xc0, 0x81, 0x80, 0x8b, 0xe0, 0x00, 0x42, 0x04, 0x00, 0x08, 0x20, 0x80,  // XYZ[\]^_
0x02, 0x04, 0x00, 0x31, 0x23, 0x80, 0xf9, 0x23, 0x00, 0x31, 0x24, 0x80, 0x31, 0x2f, 0x80, 0x31, 0x62, 0x80, 0x23, 0xea, 0x00, 0x25, 0x53, 0x80,  // `abcdefg
0xf9, 0x03, 0x80, 0x02, 0xe0, 0x00, 0x06, 0xe0, 0x00, 0xf8, 0x42, 0x80, 0x03, 0xe0, 0x00, 0x79, 0x87, 0x80, 0x39, 0x03, 0x80, 0x31, 0x23, 0x00,  // hijklmno
0x7d, 0x23, 0x00, 0x31, 0x27, 0xc0, 0x78, 0x84, 0x00, 0x29, 0x40, 0x00, 0x43, 0xe4, 0x00, 0x70, 0x27, 0x00, 0x60, 0x66, 0x00, 0x70, 0x67, 0x00,  // pqrstuvw
0x48, 0xc4, 0x80, 0x74, 0x57, 0x80, 0x59, 0xe6, 0x80, 0x23, 0xe8, 0x80, 0x03, 0x60, 0x00, 0x8b, 0xe2, 0x00, 0x61, 0x0c, 0x00                     // zyx{|}~
};

fontdatatype RusFont[] PROGMEM =
{
0x06, 0x08, 0x20, 0x5f,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   // sp
0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,   // !
0x00, 0x00, 0x07, 0x00, 0x07, 0x00,   // "
0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,   // #
0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,   // $
0x00, 0x23, 0x13, 0x08, 0x64, 0x62,   // %
0x00, 0x36, 0x49, 0x55, 0x22, 0x50,   // &
0x00, 0x00, 0x05, 0x03, 0x00, 0x00,   // '
0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,   // (
0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,   // )
0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,   // *
0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,   // +
0x00, 0x3E, 0x49, 0x45, 0x45, 0x38,   // ,
0x00, 0x08, 0x08, 0x08, 0x08, 0x08,   // -
0x00, 0x7C, 0x10, 0x38, 0x44, 0x38,   // .
0x00, 0x20, 0x10, 0x08, 0x04, 0x02,   // /

0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,   // 0
0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,   // 1
0x00, 0x42, 0x61, 0x51, 0x49, 0x46,   // 2
0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,   // 3
0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,   // 4
0x00, 0x27, 0x45, 0x45, 0x45, 0x39,   // 5
0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,   // 6
0x00, 0x01, 0x71, 0x09, 0x05, 0x03,   // 7
0x00, 0x36, 0x49, 0x49, 0x49, 0x36,   // 8
0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,   // 9
0x00, 0x73, 0x0C, 0x7F, 0x0C, 0x73,   // :
0x00, 0x4C, 0x30, 0x7C, 0x30, 0x4C,   // ;
0x00, 0x7F, 0x49, 0x49, 0x49, 0x31,   // <
0x00, 0x14, 0x14, 0x14, 0x14, 0x14,   // =
0x00, 0x7F, 0x10, 0x3E, 0x41, 0x3E,   // >
0x00, 0x02, 0x01, 0x51, 0x09, 0x06,   // ?

0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,   // @
0x00, 0x1C, 0x22, 0x7F, 0x22, 0x1C,   // A
0x00, 0x7F, 0x10, 0x08, 0x04, 0x7F,   // B
0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,   // C
0x00, 0x7F, 0x45, 0x45, 0x45, 0x3A,   // D
0x00, 0x61, 0x26, 0x18, 0x06, 0x01,   // E
0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,   // F
0x00, 0x7F, 0x01, 0x01, 0x01, 0x7F,   // G
0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,   // H
0x00, 0x7F, 0x40, 0x7F, 0x40, 0x7F,   // I
0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,   // J
0x00, 0x40, 0x3F, 0x01, 0x01, 0x7F,   // K
0x00, 0x60, 0x3F, 0x21, 0x3F, 0x60,   // L
0x00, 0x7F, 0x48, 0x48, 0x30, 0x00,   // M
0x00, 0x03, 0x01, 0x7F, 0x01, 0x03,   // N
0x00, 0x3F, 0x20, 0x3F, 0x20, 0x7F,   // O

0x00, 0x21, 0x41, 0x49, 0x4D, 0x33,   // P
0x00, 0x7E, 0x20, 0x11, 0x08, 0x7E,   // Q
0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,   // R
0x00, 0x7F, 0x48, 0x78, 0x00, 0x7F,   // S
0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,   // T
0x00, 0x7F, 0x01, 0x01, 0x01, 0x03,   // U
0x00, 0x7F, 0x06, 0x08, 0x06, 0x7F,   // V
0x00, 0x3F, 0x20, 0x20, 0x3F, 0x60,   // W
0x00, 0x07, 0x08, 0x08, 0x08, 0x7F,   // X
0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,   // Y
0x00, 0x66, 0x19, 0x09, 0x09, 0x7F,   // Z
0x00, 0x44, 0x28, 0x10, 0x28, 0x44,   // [
0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55,   // Backslash (Checker pattern)
0x00, 0x04, 0x7C, 0x50, 0x70, 0x00,   // ]
0x00, 0x04, 0x02, 0x01, 0x02, 0x04,   // ^
0x00, 0x40, 0x40, 0x40, 0x40, 0x40,   // _

0x00, 0x42, 0x42, 0x52, 0x52, 0x3C,   // `
0x00, 0x18, 0x24, 0x7E, 0x24, 0x18,   // a
0x00, 0x7C, 0x20, 0x10, 0x7C, 0x00,   // b
0x00, 0x38, 0x44, 0x44, 0x44, 0x28,   // c
0x00, 0x7E, 0x4A, 0x4A, 0x34, 0x00,   // d
0x00, 0x4C, 0x90, 0x90, 0x90, 0x7C,   // e
0x00, 0x20, 0x54, 0x54, 0x78, 0x40,   // f
0x00, 0x7C, 0x04, 0x04, 0x7C, 0x00,   // g
0x00, 0xFC, 0x18, 0x24, 0x24, 0x18,   // h
0x00, 0x7C, 0x40, 0x7C, 0x40, 0x7C,   // i
0x00, 0x38, 0x44, 0x44, 0x44, 0x38,   // j
0x00, 0x40, 0x3C, 0x04, 0x04, 0x7C,   // k
0x00, 0x38, 0x45, 0x45, 0x49, 0x3E,   // l
0x00, 0x7C, 0x50, 0x70, 0x00, 0x00,   // m   ~
0x00, 0x04, 0x04, 0x7C, 0x04, 0x04,   // n
0x00, 0x3C, 0x20, 0x3C, 0x20, 0x7C,   // o

0x00, 0x24, 0x42, 0x4A, 0x34, 0x00,   // p
0x00, 0x7C, 0x21, 0x11, 0x7C, 0x00,   // q
0x00, 0x7C, 0x10, 0x28, 0x44, 0x00,   // r
0x00, 0x7C, 0x50, 0x70, 0x00, 0x7C,   // s
0x00, 0x38, 0x54, 0x54, 0x54, 0x18,   // t
0x00, 0x7C, 0x04, 0x04, 0x0C, 0x00,   // u
0x00, 0x7C, 0x08, 0x10, 0x08, 0x7C,   // v
0x00, 0x3C, 0x20, 0x20, 0x3C, 0x60,   // w
0x00, 0x1C, 0x10, 0x10, 0x7C, 0x00,   // x
0x00, 0x7C, 0x10, 0x10, 0x7C, 0x00,   // y
0x00, 0x40, 0x2C, 0x12, 0x7E, 0x00,   // z
0x00, 0x63, 0x14, 0x08, 0x14, 0x63,   // {
0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,   // |
0x00, 0x01, 0x7F, 0x48, 0x48, 0x30,   // }
0x00, 0x41, 0x49, 0x49, 0x2A, 0x1C,    // ~ (Degrees)

};

fontdatatype UkrFont[] PROGMEM =
{
0x06, 0x08, 0x20, 0x5f,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   // sp
0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,   // !
0x00, 0x00, 0x07, 0x00, 0x07, 0x00,   // "
0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,   // #
0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,   // $
0x00, 0x23, 0x13, 0x08, 0x64, 0x62,   // %
0x00, 0x36, 0x49, 0x55, 0x22, 0x50,   // &
0x00, 0x00, 0x05, 0x03, 0x00, 0x00,   // '
0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,   // (
0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,   // )
0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,   // *
0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,   // +
0x00, 0x3E, 0x49, 0x45, 0x45, 0x38,   // ,
0x00, 0x08, 0x08, 0x08, 0x08, 0x08,   // -
0x00, 0x7C, 0x10, 0x38, 0x44, 0x38,   // .
0x00, 0x20, 0x10, 0x08, 0x04, 0x02,   // /

0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,   // 0
0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,   // 1
0x00, 0x42, 0x61, 0x51, 0x49, 0x46,   // 2
0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,   // 3
0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,   // 4
0x00, 0x27, 0x45, 0x45, 0x45, 0x39,   // 5
0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,   // 6
0x00, 0x01, 0x71, 0x09, 0x05, 0x03,   // 7
0x00, 0x36, 0x49, 0x49, 0x49, 0x36,   // 8
0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,   // 9
0x00, 0x73, 0x0C, 0x7F, 0x0C, 0x73,   // :
0x00, 0x4C, 0x30, 0x7C, 0x30, 0x4C,   // ;
0x00, 0x7F, 0x49, 0x49, 0x49, 0x31,   // <
0x00, 0x14, 0x14, 0x14, 0x14, 0x14,   // =
0x00, 0x7F, 0x10, 0x3E, 0x41, 0x3E,   // >
0x00, 0x02, 0x01, 0x51, 0x09, 0x06,   // ?

0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,   // @
0x00, 0x1C, 0x22, 0x7F, 0x22, 0x1C,   // A
0x00, 0x7F, 0x10, 0x08, 0x04, 0x7F,   // B
0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,   // C
0x00, 0x7F, 0x45, 0x45, 0x45, 0x3A,   // D
0x00, 0x61, 0x26, 0x18, 0x06, 0x01,   // E
0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,   // F
0x00, 0x7F, 0x01, 0x01, 0x01, 0x7F,   // G
0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,   // H
0x00, 0x7F, 0x40, 0x7F, 0x40, 0x7F,   // I
0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,   // J
0x00, 0x40, 0x3F, 0x01, 0x01, 0x7F,   // K
0x00, 0x60, 0x3F, 0x21, 0x3F, 0x60,   // L
0x00, 0x7F, 0x48, 0x48, 0x30, 0x00,   // M
0x00, 0x03, 0x01, 0x7F, 0x01, 0x03,   // N
0x00, 0x3F, 0x20, 0x3F, 0x20, 0x7F,   // O

0x00, 0x21, 0x41, 0x49, 0x4D, 0x33,   // P
0x00, 0x7E, 0x20, 0x11, 0x08, 0x7E,   // Q
0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,   // R
0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,   // S
0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,   // T
0x00, 0x7F, 0x01, 0x01, 0x01, 0x03,   // U
0x00, 0x7F, 0x06, 0x08, 0x06, 0x7F,   // V
0x00, 0x3F, 0x20, 0x20, 0x3F, 0x60,   // W
0x00, 0x07, 0x08, 0x08, 0x08, 0x7F,   // X
0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,   // Y
0x00, 0x66, 0x19, 0x09, 0x09, 0x7F,   // Z
0x00, 0x44, 0x28, 0x10, 0x28, 0x44,   // [
0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55,   // Backslash (Checker pattern)
0x00, 0x00, 0x45, 0x7C, 0x41, 0x00,   // ]
0x00, 0x04, 0x02, 0x01, 0x02, 0x04,   // ^
0x00, 0x40, 0x40, 0x40, 0x40, 0x40,   // _

0x00, 0x38, 0x54, 0x54, 0x44, 0x00,   // `
0x00, 0x18, 0x24, 0x7E, 0x24, 0x18,   // a
0x00, 0x7C, 0x20, 0x10, 0x7C, 0x00,   // b
0x00, 0x38, 0x44, 0x44, 0x44, 0x28,   // c
0x00, 0x7E, 0x4A, 0x4A, 0x34, 0x00,   // d
0x00, 0x4C, 0x90, 0x90, 0x90, 0x7C,   // e
0x00, 0x20, 0x54, 0x54, 0x78, 0x40,   // f
0x00, 0x7C, 0x04, 0x04, 0x7C, 0x00,   // g
0x00, 0xFC, 0x18, 0x24, 0x24, 0x18,   // h
0x00, 0x7C, 0x40, 0x7C, 0x40, 0x7C,   // i
0x00, 0x38, 0x44, 0x44, 0x44, 0x38,   // j
0x00, 0x40, 0x3C, 0x04, 0x04, 0x7C,   // k
0x00, 0x38, 0x45, 0x45, 0x49, 0x3E,   // l
0x00, 0x7C, 0x50, 0x70, 0x00, 0x00,   // m   ~
0x00, 0x04, 0x04, 0x7C, 0x04, 0x04,   // n
0x00, 0x3C, 0x20, 0x3C, 0x20, 0x7C,   // o

0x00, 0x24, 0x42, 0x4A, 0x34, 0x00,   // p
0x00, 0x7C, 0x21, 0x11, 0x7C, 0x00,   // q
0x00, 0x7C, 0x10, 0x28, 0x44, 0x00,   // r
0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,   // s
0x00, 0x38, 0x54, 0x54, 0x54, 0x18,   // t
0x00, 0x7C, 0x04, 0x04, 0x0C, 0x00,   // u
0x00, 0x7C, 0x08, 0x10, 0x08, 0x7C,   // v
0x00, 0x3C, 0x20, 0x20, 0x3C, 0x60,   // w
0x00, 0x1C, 0x10, 0x10, 0x7C, 0x00,   // x
0x00, 0x7C, 0x10, 0x10, 0x7C, 0x00,   // y
0x00, 0x40, 0x2C, 0x12, 0x7E, 0x00,   // z
0x00, 0x63, 0x14, 0x08, 0x14, 0x63,   // {
0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,   // |
0x00, 0x00, 0x45, 0x7C, 0x45, 0x00,   // }
0x00, 0x3C, 0x6A, 0x49, 0x49, 0x49,    // ~ (Degrees)

};

 

 

vingor
Offline
Зарегистрирован: 25.05.2014

Это понятно дефолтные шрифты все работают. 

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

Я же с самого начала написал, что скачал шрифт  DotMatrix_XL_Num

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Так допишите его в дефолтные

vingor
Offline
Зарегистрирован: 25.05.2014

Не помогает так же отображается такое ощущение как будто битмап картинку выводит с неправильно указанными размерами.

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

Решил сюда кинуть, может кому пригодится. Вывод трендов (графиков) на OLED.

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
#define sizeTrend 30
int in1[sizeTrend];
int in2[sizeTrend];
Adafruit_SSD1306 display(OLED_RESET);

int convert(int y, int mn, int mx, byte yTrend, byte heightTrend, int *in ){
  int ny=y;
  ny=map(ny,mn,mx,heightTrend-1+yTrend,yTrend);
  //ny=map(ny,mn,mx,yTrend,heightTrend-1+yTrend);
  return ny;
}

void setup(){
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); 
  display.display();
  //  delay(200);
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
}
void loop(){
  display.clearDisplay();
  drawTrend(95,30,0,0,5,in1);
  drawTrend(30,30,0,33,0,in2);
  drawTrend(34,24,60,37,5,in1);
  display.display();
  delay(200);
}
void drawTrend(int widthTrend, int heightTrend, int xTrend, byte yTrend, byte cn, int *in){
   //добавляем новое значение
  in[sizeTrend-1]=analogRead(cn);
  byte oldX=0;
  byte oldY=0+yTrend;
  int mn=1000;
  int mx=0;
  double k=0.0;
  //сдвигаем график
  for  (byte x=0;x<(sizeTrend-1);x++){
    in[x]=in[x+1];
  }

  //поиск мин и макс
  for (byte i=0;i<sizeTrend;i++){
    if (in[i]>mx){
      mx=in[i];
    }
    if (in[i]<mn){
      mn=in[i];
    }
  }
  if(mn==mx){
    mx=mn+1;
    mn=mn-1;
  }
  //формирование буфера вывода
  for(byte x=0;x<sizeTrend-1;x++){
    byte y=convert(in[x],mn,mx,yTrend,heightTrend,in);
    byte nxt_x=map(x,0,sizeTrend-1,0,widthTrend);
    //отрисовка тренда
    display.drawLine(xTrend+oldX, oldY, xTrend+nxt_x, y, WHITE);
    oldX=nxt_x;
    oldY=y;

    //отрисовка рамки
    display.drawRect(xTrend, yTrend, widthTrend, heightTrend, WHITE);

  } 
  //вывод минимума и максимума
  display.setCursor(xTrend+widthTrend+3,yTrend);
  display.println(mx);
  display.setCursor(xTrend+widthTrend+3,yTrend+heightTrend-8);
  display.println(mn);
  display.setCursor(xTrend+widthTrend+3,yTrend+(heightTrend/2)-4);
  display.println(in[sizeTrend-1]); //текущее
  oldX=0;
  oldY=convert(in[0],mn,mx,yTrend,heightTrend,in);
}

Код сыроват но работает. Видео

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

yul-i-an.

Ваш скетч напоминает мне поговорку: Бачили очі, що купували - їжте, хоч повилазьте! Переведу свою мысль. И как народ будет пользоваться вашим скетчем. Куда что подключать, что можно регулировать. И главное зачем он это будет делать?

vampo
Offline
Зарегистрирован: 07.06.2016

vingor пишет:

Это понятно дефолтные шрифты все работают. 

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

Я же с самого начала написал, что скачал шрифт  DotMatrix_XL_Nu

Первой строчкой перед массивом самого шрифта идет четыре числа, Размер Х, Размер Y, с какого символа будет использоваться шрифт  и количество символов в шрифте.

В дефолтных шрифтах так прописано: 0x06, 0x08, 0x20, 0x5f, (6пикс,8пикс, Начинать с пробела, 95 символов)

Еще как вариант попробовать изменить строчку fontdatatype DotMatrix_XL_Num[2004] Убрать в ней 2004, оставить пустые скобки как в дефолтных

 

 

 

 

energokom
Offline
Зарегистрирован: 31.07.2016

inhelp пишет:

Библиотека тут http://arduino-project.net/biblioteki-arduino/    качай OLED I2C RUS UKR FONTS

Скетч 

#include <OLED_I2C.h>
OLED  myOLED(SDA, SCL, 8);
extern uint8_t MegaNumbers[];
extern uint8_t RusFont[];
extern uint8_t SmallFont[];
#include <DS1307.h>
DS1307 rtc(A0, A1);

void setup() {
  myOLED.begin();
  rtc.halt(false); 
//  rtc.setDOW(MONDAY);        
//  rtc.setTime(13, 25, 0);     
//  rtc.setDate(27, 04, 2015);
}

void loop(){
  myOLED.setFont(SmallFont);
  myOLED.print(rtc.getDOWStr(), CENTER, 0);
  String stringOne = rtc.getTimeStr();
  myOLED.setFont(MegaNumbers);
  myOLED.print(stringOne.substring(0,2), 4, 12);
  myOLED.print("/", 51, 12);
  myOLED.print(stringOne.substring(3,5), 75, 12);
  myOLED.setFont(SmallFont);
  myOLED.print(rtc.getDateStr(), CENTER, 57);
  myOLED.update();
  delay(500);
  myOLED.setFont(MegaNumbers);
  myOLED.print("-", 51, 12);
  myOLED.update();
  delay(500);
}

 

 

День добрый, как сделать myOLED.setFont(MegaNumbers);?

Где можно скачать  MegaNumbers?

energokom
Offline
Зарегистрирован: 31.07.2016

andriano пишет:

inhelp пишет:

myOLED.drawRect(24, 0, 29, 15);

3) библиотека OLED_I2C не имеет возможности рисовать закрашеные прямоугольники

Не верю!
 

viod myOLED_FillRectangle(int x0, int y0, int x1, int y1)

{

  for (int i = x0; i <= x1; x++)\

    myOLED.drawLine(i, y0, i, y1);

}

 

Подскажите как в этой библиотеке сделать MegaNumbers?

energokom
Offline
Зарегистрирован: 31.07.2016

andriano пишет:

Вообще-то их можно добавить в фонт.

подскажите как добавить минус в фонт?

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

energokom пишет:

andriano пишет:

Вообще-то их можно добавить в фонт.

подскажите как добавить минус в фонт?

Вообще-то "добавить минус в фонт" можно массой разнообразных способов - в зависимости от того, что требуется.

Поэтму напомните, в каком контексте фигурировала эта фраза (что-то я навскидку исходного сообщения не нашел) и поясните, что конкретно Вам нужно.

energokom
Offline
Зарегистрирован: 31.07.2016

andriano пишет:

energokom пишет:

andriano пишет:

Вообще-то их можно добавить в фонт.

подскажите как добавить минус в фонт?

Вообще-то "добавить минус в фонт" можно массой разнообразных способов - в зависимости от того, что требуется.

Поэтму напомните, в каком контексте фигурировала эта фраза (что-то я навскидку исходного сообщения не нашел) и поясните, что конкретно Вам нужно.


Есть библиотека OLED I2C , на сайте автора есть дополнительные шрифты.
При попытке использования вместо цифр и букв козябры.
Может есть какая-то программа, которая позволит сама код шрифта в HEX переделать.

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

1. Выдать, Аы пытаетесь использовать неправильно.

2. Для начала хотелось бы понять, что такое "код шрифта".

energokom
Offline
Зарегистрирован: 31.07.2016

andriano пишет:

2. Для начала хотелось бы понять, что такое "код шрифта".


014
0x06, 0x08, 0x20, 0x5f,
015
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // sp
016
0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, // !
017
0x00, 0x00, 0x07, 0x00, 0x07, 0x00, // "
018
0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14, // #
019
0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12, // $
020
0x00, 0x23, 0x13, 0x08, 0x64, 0x62, // %
021
0x00, 0x36, 0x49, 0x55, 0x22, 0x50, // &
022
0x00, 0x00, 0x05, 0x03, 0x00, 0x00, // '
023
0x00, 0x00, 0x1c, 0x22, 0x41, 0x00, // (
024
0x00, 0x00, 0x41, 0x22, 0x1c, 0x00, // )
025
0x00, 0x14, 0x08, 0x3E, 0x08, 0x14, // *
026
0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, // +
027
0x00, 0x00, 0x00, 0xA0, 0x60, 0x00, // ,
028
0x00, 0x08, 0x08, 0x08, 0x08, 0x08, // -
029
0x00, 0x00, 0x60, 0x60, 0x00, 0x00, // .
030
0x00, 0x20, 0x10, 0x08, 0x04, 0x02, // /

Вот например в дефаутл который.

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

В этом шрифте уже есть минус.

И, кстати, он записан уже в гекс-формате, так что ничего переделывать не нужно.

energokom
Offline
Зарегистрирован: 31.07.2016

andriano пишет:

В этом шрифте уже есть минус.

И, кстати, он записан уже в гекс-формате, так что ничего переделывать не нужно.


Подскажите пожалуйста
1. в какой программе можно перевести шрифт в такой HEX формат для этой библиотекти OLED i2c (нужен более крупный шрифт);
2. и как можно уменьшить размер самой библиотекти (на атмега 328 она занимает 50% места отведенные под глобальные переменные). Мне нужно не более 40%.
Спасибо

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

1. Я так и не понял ОТКУДА надо что-то переводить в HEX. Ну и на всякий случай: я обычно в подобных случаях сам пишу нужную программу - это быстрее и проще, чем искать в И-нете подходящую, так что вряд ли смогу ответить, даже если Вы конкретизируете вопрос.

2. 50% места отведенного под переменные занимает экранный буфер. Это особенность, которую нельзя обойти. Можно лишь воспользоваться другой библиотекой, которая работает без экранного буфера, но у такого подхода есть свои ограничения. Еще можно в некоторых случаях уменьшить размер экранного буцфер, но это решение тоже не универсально, и, кроме того, требует высокой квалификации от программиста. Если Вы об этом спрашиваете, значит, Вашей квалификации для этого недостаточно.

energokom
Offline
Зарегистрирован: 31.07.2016

andriano пишет:

1. Я так и не понял ОТКУДА надо что-то переводить в HEX. Ну и на всякий случай: я обычно в подобных случаях сам пишу нужную программу - это быстрее и проще, чем искать в И-нете подходящую, так что вряд ли смогу ответить, даже если Вы конкретизируете вопрос.


Блягодаря вашим коментариям в теме разобрался.
Новый шрифт нужно создать в знаконенераторе, а в начале указать в HEX: размер шрифта в пикселях, с какого символа начинается и какое кол-во символов.
Знакогенератор использует двухмерный массив.

Видел вы переделали библиотеку OzOLED, можно у Вас ее скачать?
У меня та же ситуация, что и у Вас OLED i2c потребляет слишком много стека.

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

Ну там переделка настолько глубокая, что существенно более половины переписано с нуля. Собственно, она написана в первые недели моего знакомства с Ардуино, поэтому нужен был пример, от которого оттолкнуться (но по этому поводу особенно не переживайте - общий опыт программирования у меня около 40 лет). 

Ссылка на библиотеку и некоторое обсуждение применения есть в теме "Кириллица на дисплее или что я делаю не так". Если окажется, что ссылка потеряла актуальность, напишите, я перезалью куда-нибудь.

energokom
Offline
Зарегистрирован: 31.07.2016

andriano пишет:

Ссылка на библиотеку и некоторое обсуждение применения есть в теме "Кириллица на дисплее или что я делаю не так".

Я нашел Вашу библиотеку, размер шрифта такой какой нужно, и буфер не использует:

Вот, можете посмотреть что получилось:

https://youtu.be/9U5-3S1ONos

Правда правда вместо русских букв *** такие звездочки

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

energokom пишет:

Я нашел Вашу библиотеку, размер шрифта такой какой нужно, и буфер не использует:

Вот, можете посмотреть что получилось:

https://youtu.be/9U5-3S1ONos

Правда правда вместо русских букв *** такие звездочки

Библиотеку я специально адаптировал для согласования дисплея и Arduino IDE со стандартными настройками.

Arduino IDE по умолчанию использует кодировку UTF-8. Это - кодировка с символами переменой длины - наиболее сложный случай для Ардуино. Поэтому, думаю, подобных проектов почти нет - все предпочитают обходиться более простыми, но "кривоватыми" решениями типа такого: http://arduino-project.net/russkie-ukrainskie-shrifty-oled-i2c/

Т.е. если Вы набираете текст в настроенной по умолчанию Arduino IDE, с кириллицей на дисплее проблем быть не должно. А вот если Вы используете текст из другого источника, например, со смартфона, там могут быть варианты.

Увы, на видео нет ни звездочек, ни какой-либо информации, когда они возникают. Для диагноза нужно больше информации.

bagotu
Offline
Зарегистрирован: 15.10.2016

кто-нибудь решил проблему с индикацией знака "-" в шрифте  MegaNumbers при выводе отрицательных температур?

vampo
Offline
Зарегистрирован: 07.06.2016

Как вариант расширить данный шрифт дорисовав и добавив в него вначале еще три символа "Минус" "Точка" и "Слэш" и подкорректировав заголовок шрифта. Причем если нужен только минус, то Точку и Слэш можно не отрисовывать забить нулями.

Второй вариант. Добавить "минус" в программу в виде отдельной картинки. в программе сделать проверку если число меньше нуля, выводить перед числом иконку минуса.

третий вариант Можно нарисовать минус в шрифте вместо Слэша. Затем перед выводом число переводить в строку, и если код первого символа в этой строке 45 (-), то менять его на код 47(/) после этого выводить на экран.

 

bagotu
Offline
Зарегистрирован: 15.10.2016

Спасибо. Воспользовался вторым вариантом. Первый вариант чего-то не сработал...

edcop
Offline
Зарегистрирован: 23.07.2016

Прошу помощи гуру. Есть скетч регулятора мощности под дисплей LCD1602. Реализовано 2 меню (2 экрана). Не получается переделать под OLED_I2C.h с кириллицей. Константы и текст нормально, а переменные никак. Подскажите как правильно прописать команды для данной библиотеки.


if (millis() - displayMillis >= 1000) {
    displayMillis = millis();

    if (menu_1 && !set_menu_I) {
      lcd.setCursor(0, 0);
      lcd.print("BATT:");
      lcd.print(int(real_W));
      lcd.print("    ");

      lcd.setCursor(0, 1);
      lcd.print(name_preset[preset]);
      lcd.print(buffer_ust_W[preset]);
      lcd.print("    ");
    }

    if (!menu_1 && !set_menu_I)  {
      lcd.setCursor(0, 0);
      lcd.print("BPM ");
      lcd.print(TimeDate);

      lcd.setCursor(0, 1);
      lcd.print("BATT ");
      lcd.print(total_W);
    }

    if (set_menu_I) {
      lcd.setCursor(0, 0);
      lcd.print("YCTAHOBKA:");

      lcd.setCursor(0, 1);
      lcd.print(name_preset[preset]);
      lcd.print(">>");
      lcd.print(buffer_ust_W[preset]);
      lcd.print("    ");
    }

    if (set_W) {
      lcd.setCursor(14, 0);
      lcd.print("ON");
    }
    else {
      lcd.setCursor(13, 0);
      lcd.print("OFF");
    }
  }

Заранее благодарен.

SadiQ228
Offline
Зарегистрирован: 10.04.2017

а кто ни будь в курсе такие дисплеи только с желтой полосой сверху? какое там соотношение желтых и синих пикселей?

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

нет, есть полностью белые или синие

vampo
Offline
Зарегистрирован: 07.06.2016

Попробуйте конвертировать переменную в строку функцией String() внутри оператора print

edcop
Offline
Зарегистрирован: 23.07.2016

Можете показать на примере одной строки?

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

SadiQ228 пишет:
а кто ни будь в курсе такие дисплеи только с желтой полосой сверху? какое там соотношение желтых и синих пикселей?

бывают 2 варианта:

- двухцветные: сверху желтая зона 128x15, затем пропуск 1 пикс (всегда черная линия 0,5 мм), затем синяя зона 128x48.

- одноцветные (белые, либо голубые), эти без пропуска пикселя, 128х64.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

edcop пишет:
Можете показать на примере одной строки?

lcd.print(String("BATT:" + real_W + "    "));

 

edcop
Offline
Зарегистрирован: 23.07.2016

Tomasina пишет:

edcop пишет:
Можете показать на примере одной строки?

lcd.print(String("BATT:" + real_W + "    "));

команда lcd.print для oled-дисплея и библиотеки oled_i2c.h???

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

неважно для какой команды, String работает с любыми ***print.

vampo
Offline
Зарегистрирован: 07.06.2016

Цитата:

Можете показать на примере одной строки?

Здесть переменная m_osn, тип long, выводится на экран с выравниванием по правому краю. на 45 строчке

myOLED.print(String(m_osn), RIGHT, 45);
SadiQ228
Offline
Зарегистрирован: 10.04.2017

Здравствуйте, подскажите ткните носом в мануал, где показано как применять отрисованные в xbm логотипы? вот у меня на данный момент имеется один, не могу понять как его проинклудить....

SadiQ228
Offline
Зарегистрирован: 10.04.2017

не понимаю.. вроде все че можно раскоментил, адрес поменял с 3D на 3C но всеравно ошибка

 

Build options changed, rebuilding all
/home/alexdelux/Arduino/libraries/Adafruit_SSD1306/Adafruit_SSD1306.cpp:433:6: error: prototype for 'void Adafruit_SSD1306::dim(boolean)' does not match any in class 'Adafruit_SSD1306'
 void Adafruit_SSD1306::dim(boolean dim) {
      ^
In file included from /home/alexdelux/Arduino/libraries/Adafruit_SSD1306/Adafruit_SSD1306.cpp:28:0:
/home/alexdelux/Arduino/libraries/Adafruit_SSD1306/Adafruit_SSD1306.h:152:8: error: candidate is: void Adafruit_SSD1306::dim(uint8_t)
   void dim(uint8_t contrast);
        ^
Multiple libraries were found for "Wire.h"
 Used: /home/alexdelux/Arduino/libraries/Wire
 Not used: /home/alexdelux/Загрузки/arduino-1.6.8/hardware/arduino/avr/libraries/Wire
exit status 1
Error compiling for board Arduino Nano.

rw3ar
Offline
Зарегистрирован: 15.05.2017

Кажется, вопрос уже возниал, но ответа я найти не сумел

При попытке вывести данные, вмемто символа "точка" или "запятая", выводится знакоместо, заполненное кракозябрами.

Попытка прописать в соответствующий фонт (в библиотеке DefaultFonts.c), например, запятую, ничего не даёт - то есть при вызове именно этой самодельной запятой, она и выводится, но в числе всё равно кракозябра, и она не меняется при экспериментах с фонтами (((

что-то в этом роде

https://fotki.yandex.ru/next/users/rw3ar/album/458414/view/1222518

 

Ага. Разобрался.  Это был вопрос неуча тёмного и неграмотного ((((

Надо правильно пользоваться библиотечной фнкцией

printNumF(double num, byte dec, int x, int y, char divider, int length, char filler)

надо вписывать, например, 0x2e (будет точка ".")

"Учиться, учиться, и учиться"(с) ))))

ulis
ulis аватар
Offline
Зарегистрирован: 09.03.2011

Sirocco пишет:

А мне из китая лопнутый привезли, был просто в бумажку завёрнут и в конверт положен. Менять отказались.

А не надо было китайцам писать, что сломаный пришел, просто пишешь, что товар не получен .... и никуда не денутся

fessefrem
Offline
Зарегистрирован: 08.04.2017

[quote=mixail844]

Играет музыка на мотив Буратино :

На голове его колпак,
Но околпачен будет враг,
Злодеям он покажет нос
И рассмешит друзей до слез,
Он очень скоро будет тут,
Скажите, как его зовут?
Пууу!Хляяя!Выыый!...Пу-хля-вый!!

 

а по сути вопроса,вы предоставили ОЧЕНЬ мало информации

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

 

 

колокол переколоковать, колпак перевыколпоковать!!!!!! Тысячу и одну страницу в каждой из поискоывх машин пересмотрел - нигде нет адыкватной программы, чтобы ЕБУчий шрифт создать для oled дисплея.... Только нерабочие ссылки.... Есть только вот это: 

http://pikabu.ru/story/svoy_tekst_dlya_oled_128x64_4834291

raptoridze
Offline
Зарегистрирован: 10.01.2014

Олед экран подключенный по SPI
Юзаю библу адфруит ssd1306 SPI
Если не делать очистку экрана функцией cleardisplay
То при выводе нового символа и если там символ был, то выводится без очистки... Т.е. накладывается сверху.. Как сделать чтобы символ который выводится очищал от пред. Символа?

Hot Rod
Offline
Зарегистрирован: 27.06.2017

raptoridze, Не знаю на сколько правильно, но я очищаю нужное место прямоугольником

 

      display.setCursor(0, 0);               // установка курсора 1 строка
      display.fillRect (0, 0, 128, 8, 0);    // Стираем прямоугольником
      display.setCursor(0, 0);               // курсор в начало строки
      display.print("Water ");               // выводим на экран

 

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Как повернуть вывод информации на 90 градусов?

Т.е. чтобы экран был не 128х60, а 60х128.

Notturno
Offline
Зарегистрирован: 19.09.2018

Хорошее решение :) написал бы код как включается при отрицательной ...

b707
Offline
Зарегистрирован: 26.05.2017

Notturno пишет:

Хорошее решение :) написал бы код как включается при отрицательной ...

Notturno - два совета новичку.

1. Прежде чем отвечать, смотрите на дату сообщения. Дискуссия давно угасла, вряд ли ваш коммент кого-то заинтересует спустя год.

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

DimaSS
Offline
Зарегистрирован: 10.03.2019

Здравствуйте ребята! 

Очень нужна ваша помощь, а именно вопрос к inhelp: 

Вы дали ссылку на сайт с статьей как реализовать построение графика в реальном времени на 0,96 OLED дисплее, но ссылка не работает, сайт не октрывается. Можно ли получить код и вобще хоть какую - то инфу по данной статье, очень интерисует скетч, так как работаю над проэктом, где нужно отображать в реальном времени на графике расстояние. Я недавно наткнулся на статью по ссылке http://arduino-project.net/grafik/graph/, но почему то  сейчас, когда начал работу над проэктом то ссылка не работает, а больше толковых материалов не могу найти, помогите пожалуйста!

dpju
Offline
Зарегистрирован: 12.09.2019

yul-i-an.

Спасибо!