#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST);
int pressure = 0;
int temperature = 0;
// 'OIL P_16x54', 16x54px
const unsigned char bitmap_OIL_P [] PROGMEM = {
0x1f, 0xf8, 0x3f, 0xfc, 0x70, 0x0e, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x70, 0x0e,
0x3f, 0xfc, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x06, 0x60, 0x06,
0x7f, 0xfe, 0x7f, 0xfe, 0x60, 0x06, 0x60, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x7f, 0xfe, 0x7f, 0xfe, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x7f, 0xfe, 0x01, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0x86,
0x01, 0x86, 0x01, 0xce, 0x00, 0xfc, 0x00, 0x78, 0x60, 0x00, 0x60, 0x00
};
// 'OIL T', 16x54px
const unsigned char bitmap_OIL_T [] PROGMEM = {
0x1f, 0xf8, 0x3f, 0xfc, 0x70, 0x0e, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x70, 0x0e,
0x3f, 0xfc, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x06, 0x60, 0x06,
0x7f, 0xfe, 0x7f, 0xfe, 0x60, 0x06, 0x60, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x7f, 0xfe, 0x7f, 0xfe, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x7f, 0xfe, 0x7f, 0xfe,
0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x60, 0x00, 0x60, 0x00
};
// 'Limit-Top', 8x54px
const unsigned char bitmap_Limit_Top [] PROGMEM = {
0xf0, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xf0, 0x47, 0xf0
};
// 'Limit-Bot', 8x54px
const unsigned char bitmap_Limit_Bot [] PROGMEM = {
0x0f, 0xe8, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xe4, 0x0f
};
// 'bar', 8x18px
const unsigned char bitmap_bar [] PROGMEM = {
0xff, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00, 0x40, 0xa8, 0xa8, 0xa8, 0xf0, 0x00, 0x00, 0xf8, 0x10,
0x08, 0x08
};
// 'degC', 8x10px
const unsigned char bitmap_degC [] PROGMEM = {
0x02, 0x05, 0x02, 0x00, 0x00, 0x7c, 0x82, 0x82, 0x82, 0x44
};
// '0', 24x12px
const unsigned char bitmap_0 [] PROGMEM = {
0x0f, 0xff, 0xf0, 0x1f, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3c, 0x00, 0x3c, 0x3c,
0x00, 0x3c, 0x3c, 0x00, 0x3c, 0x3c, 0x00, 0x3c, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x1f, 0xff,
0xf8, 0x0f, 0xff, 0xf0
};
// '1', 24x12px
const unsigned char bitmap_1 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x38, 0x01, 0xe0, 0x38, 0x01, 0xe0, 0x38, 0x01, 0xe0, 0x3f,
0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x38, 0x00, 0x00, 0x38, 0x00,
0x00, 0x00, 0x00, 0x00
};
// '2', 24x12px
const unsigned char bitmap_2 [] PROGMEM = {
0x1f, 0xf0, 0x38, 0x3f, 0xf8, 0x3c, 0x3f, 0xfc, 0x3c, 0x3f, 0xfc, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,
0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3f, 0xfc, 0x3c, 0x3f, 0xfc, 0x3c, 0x1f,
0xf8, 0x38, 0x0f, 0xf0
};
// '3', 24x12px
const unsigned char bitmap_3 [] PROGMEM = {
0x1c, 0x00, 0x38, 0x3c, 0x00, 0x3c, 0x3c, 0x00, 0x3c, 0x3c, 0x00, 0x3c, 0x3c, 0x18, 0x3c, 0x3c,
0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x1f, 0xff,
0xf8, 0x0f, 0xff, 0xf0
};
// '4', 24x12px
const unsigned char bitmap_4 [] PROGMEM = {
0x00, 0x0f, 0xf8, 0x00, 0x1f, 0xfc, 0x00, 0x3f, 0xfc, 0x00, 0x3f, 0xfc, 0x00, 0x3c, 0x00, 0x00,
0x3c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x3c, 0x00, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3f, 0xff,
0xfc, 0x1f, 0xff, 0xf8
};
// '5', 24x12px
const unsigned char bitmap_5 [] PROGMEM = {
0x1c, 0x0f, 0xf8, 0x3c, 0x1f, 0xfc, 0x3c, 0x3f, 0xfc, 0x3c, 0x3f, 0xfc, 0x3c, 0x3c, 0x3c, 0x3c,
0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3f, 0xfc, 0x3c, 0x3f, 0xfc, 0x3c, 0x1f, 0xf8,
0x3c, 0x0f, 0xf0, 0x1c
};
// '6', 24x12px
const unsigned char bitmap_6 [] PROGMEM = {
0x0f, 0xff, 0xf0, 0x1f, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3c, 0x3c, 0x3c, 0x3c,
0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3f, 0xfc, 0x3c, 0x3f, 0xfc, 0x3c, 0x1f, 0xf8,
0x3c, 0x0f, 0xf0, 0x1c
};
// '7', 24x12px
const unsigned char bitmap_7 [] PROGMEM = {
0x00, 0x00, 0x1c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x3c, 0x00,
0x00, 0x3c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x3c, 0x1f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3f, 0xff,
0xf8, 0x3f, 0xff, 0xf0
};
// '8', 24x12px
const unsigned char bitmap_8 [] PROGMEM = {
0x0f, 0xe7, 0xf0, 0x1f, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3c, 0x3c, 0x3c, 0x3c,
0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x1f, 0xff,
0xf8, 0x0f, 0xe7, 0xf0
};
// '9', 24x12px
const unsigned char bitmap_9 [] PROGMEM = {
0x1c, 0x0f, 0xf0, 0x3c, 0x1f, 0xf8, 0x3c, 0x3f, 0xfc, 0x3c, 0x3f, 0xfc, 0x3c, 0x3c, 0x3c, 0x3c,
0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x1f, 0xff,
0xf8, 0x0f, 0xff, 0xf0
};
// Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 640)
const int bitmap_allArray_LEN = 10;
const unsigned char* bitmap_allArray[10] = {
bitmap_0,
bitmap_1,
bitmap_2,
bitmap_3,
bitmap_4,
bitmap_5,
bitmap_6,
bitmap_7,
bitmap_8,
bitmap_9
};
int Pressure = 0; // Pressure gauge
int Temperature = 0; // Temperature gauge
void setup() {
// put your setup code here, to run once:
pinMode(A0, INPUT);
pinMode(A1, INPUT);
u8g.setFont(u8g_font_profont22);
u8g.setColorIndex(1); // set drawing color to white
}
void loop() {
u8g.firstPage();
do {
u8g.drawBox(63,0,2,64); // Separator
u8g.drawBitmapP(44,5,16/8,54, bitmap_OIL_P);
u8g.drawBitmapP(68,5,16/8,54, bitmap_OIL_T);
u8g.drawBitmapP(115,5,8/8,54, bitmap_Limit_Top);
u8g.drawBitmapP(5,5,8/8,54, bitmap_Limit_Bot);
u8g.drawBitmapP(19,42,8/8,18, bitmap_bar);
u8g.drawBitmapP(90,48,8/8,10, bitmap_degC);
u8g.drawBox(0, 0, 4, map(Pressure, 128, 850, 0, 64)); // Box Pressure
u8g.drawBox(124, 0, 4, map(Temperature, 128, 850, 0, 64)); // Box Temperature
u8g.drawBitmapP(17, 3, 24/8, 12, bitmap_allArray[0]);
u8g.drawBox(19,18,4,4); // Separator
u8g.drawBitmapP(17, 25, 24/8, 12, bitmap_allArray[0]);
} while ( u8g.nextPage() );
Pressure = analogRead(A0); // read the potentiometer value, 0-1023 for 0-5V
Temperature = analogRead(A1); // read the potentiometer value, 0-1023 for 0-5V
}