#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST); // Fast I2C / TWI
// 'car', 64x14px
const unsigned char epd_bitmap_car [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8,
0x18, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,
0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x08, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x10, 0x08, 0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0x10,
0x08, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x10, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
0x01, 0xc0, 0x3f, 0xff, 0xff, 0xfc, 0x03, 0x80, 0x00, 0x3c, 0x40, 0x00, 0x00, 0x02, 0x3c, 0x00,
0x00, 0x27, 0xff, 0xff, 0xff, 0xff, 0xe4, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00
};
// 'sensor 1a off', 32x14px
const unsigned char epd_bitmap_sensor_1a_off [] PROGMEM = {
0x00, 0x40, 0x00, 0x00, 0x02, 0xa8, 0x00, 0x00, 0x05, 0x55, 0x00, 0x00, 0x02, 0xaa, 0xa0, 0x00,
0x05, 0x55, 0x54, 0x00, 0x0a, 0xaa, 0xaa, 0xa0, 0x15, 0x55, 0x55, 0x50, 0x0a, 0xaa, 0xaa, 0xa0,
0x01, 0x55, 0x55, 0x40, 0x00, 0x2a, 0xaa, 0xa0, 0x00, 0x15, 0x55, 0x40, 0x00, 0x02, 0xaa, 0xa0,
0x00, 0x00, 0x15, 0x40, 0x00, 0x00, 0x02, 0xa0
};
// 'sensor 1a on', 32x14px
const unsigned char epd_bitmap_sensor_1a_on [] PROGMEM = {
0x00, 0xc0, 0x00, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0x07, 0xff, 0xe0, 0x00,
0x0f, 0xff, 0xfe, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xe0,
0x03, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0x1f, 0xff, 0xe0, 0x00, 0x03, 0xff, 0xe0,
0x00, 0x00, 0x3f, 0xe0, 0x00, 0x00, 0x03, 0xe0
};
// 'sensor 1b off', 32x16px
const unsigned char epd_bitmap_sensor_1b_off [] PROGMEM = {
0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0xa0, 0x00, 0x00, 0x05, 0x54, 0x00, 0x00,
0x0a, 0xaa, 0x80, 0x00, 0x15, 0x55, 0x50, 0x00, 0x0a, 0xaa, 0xaa, 0x80, 0x15, 0x55, 0x55, 0x54,
0x0a, 0xaa, 0xaa, 0xa8, 0x05, 0x55, 0x55, 0x50, 0x00, 0xaa, 0xaa, 0xa8, 0x00, 0x15, 0x55, 0x50,
0x00, 0x02, 0xaa, 0xa8, 0x00, 0x00, 0x55, 0x50, 0x00, 0x00, 0x0a, 0xa0, 0x00, 0x00, 0x00, 0x50
};
// 'sensor 1b on', 32x16px
const unsigned char epd_bitmap_sensor_1b_on [] PROGMEM = {
0x02, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0xf0, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00,
0x0f, 0xff, 0x80, 0x00, 0x1f, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0xff, 0x80, 0x3f, 0xff, 0xff, 0xfc,
0x1f, 0xff, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xf8, 0x01, 0xff, 0xff, 0xf8, 0x00, 0x3f, 0xff, 0xf8,
0x00, 0x07, 0xff, 0xf8, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0xf0
};
// 'sensor 1c off', 32x17px
const unsigned char epd_bitmap_sensor_1c_off [] PROGMEM = {
0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x00, 0x00, 0x15, 0x50, 0x00, 0x00,
0x2a, 0xaa, 0x00, 0x00, 0x15, 0x55, 0x40, 0x00, 0x2a, 0xaa, 0xaa, 0x00, 0x55, 0x55, 0x55, 0x40,
0x2a, 0xaa, 0xaa, 0xaa, 0x15, 0x55, 0x55, 0x54, 0x02, 0xaa, 0xaa, 0xa8, 0x00, 0x55, 0x55, 0x54,
0x00, 0x0a, 0xaa, 0xa8, 0x00, 0x01, 0x55, 0x54, 0x00, 0x00, 0x2a, 0xa8, 0x00, 0x00, 0x05, 0x54,
0x00, 0x00, 0x00, 0x28
};
// 'sensor 1c on', 32x17px
const unsigned char epd_bitmap_sensor_1c_on [] PROGMEM = {
0x08, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00,
0x3f, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x00, 0x7f, 0xff, 0xfe, 0x00, 0x7f, 0xff, 0xff, 0xe0,
0x7f, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xfe, 0x03, 0xff, 0xff, 0xfc, 0x00, 0xff, 0xff, 0xfc,
0x00, 0x1f, 0xff, 0xfc, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x07, 0xfc,
0x00, 0x00, 0x00, 0x3c
};
// 'sensor 1d off', 32x18px
const unsigned char epd_bitmap_sensor_1d_off [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x2a, 0x80, 0x00, 0x00,
0x55, 0x50, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, 0x55, 0x55, 0x50, 0x00, 0xaa, 0xaa, 0xaa, 0x00,
0x55, 0x55, 0x55, 0x50, 0x2a, 0xaa, 0xaa, 0xaa, 0x05, 0x55, 0x55, 0x54, 0x02, 0xaa, 0xaa, 0xaa,
0x00, 0x55, 0x55, 0x54, 0x00, 0x0a, 0xaa, 0xaa, 0x00, 0x01, 0x55, 0x54, 0x00, 0x00, 0x2a, 0xa8,
0x00, 0x00, 0x01, 0x54, 0x00, 0x00, 0x00, 0x08
};
// 'sensor 1d on', 32x18px
const unsigned char epd_bitmap_sensor_1d_on [] PROGMEM = {
0x20, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f, 0xc0, 0x00, 0x00,
0xff, 0xf8, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xfe, 0x00,
0x7f, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xfe, 0x03, 0xff, 0xff, 0xfe,
0x00, 0x7f, 0xff, 0xfe, 0x00, 0x1f, 0xff, 0xfe, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xfc,
0x00, 0x00, 0x03, 0xfc, 0x00, 0x00, 0x00, 0x1c
};
// 'sensor 2a off', 24x9px
const unsigned char epd_bitmap_sensor_2a_off [] PROGMEM = {
0x2a, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x2a, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x2a, 0xaa, 0xaa, 0x55,
0x55, 0x55, 0x2a, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x2a, 0xaa, 0xaa
};
// 'sensor 2a on', 24x9px
const unsigned char epd_bitmap_sensor_2a_on [] PROGMEM = {
0x3f, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x7f,
0xff, 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff
};
// 'sensor 2b off', 32x9px
const unsigned char epd_bitmap_sensor_2b_off [] PROGMEM = {
0x0a, 0xaa, 0xaa, 0xa8, 0x05, 0x55, 0x55, 0x50, 0x0a, 0xaa, 0xaa, 0xa8, 0x05, 0x55, 0x55, 0x50,
0x0a, 0xaa, 0xaa, 0xa8, 0x15, 0x55, 0x55, 0x54, 0x0a, 0xaa, 0xaa, 0xa8, 0x15, 0x55, 0x55, 0x54,
0x02, 0xaa, 0xaa, 0xa0
};
// 'sensor 2b on', 32x9px
const unsigned char epd_bitmap_sensor_2b_on [] PROGMEM = {
0x0f, 0xff, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0xf8,
0x0f, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xfc,
0x07, 0xff, 0xff, 0xf0
};
// 'sensor 2c on', 32x10px
const unsigned char epd_bitmap_sensor_2c_on [] PROGMEM = {
0x18, 0x00, 0x00, 0x0c, 0x1f, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfe,
0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfe,
0x3f, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf8
};
// 'sensor 2c off', 32x10px
const unsigned char epd_bitmap_sensor_2c_off [] PROGMEM = {
0x10, 0x00, 0x00, 0x04, 0x0a, 0xaa, 0xaa, 0xa8, 0x15, 0x55, 0x55, 0x54, 0x2a, 0xaa, 0xaa, 0xaa,
0x15, 0x55, 0x55, 0x54, 0x2a, 0xaa, 0xaa, 0xaa, 0x15, 0x55, 0x55, 0x54, 0x2a, 0xaa, 0xaa, 0xaa,
0x15, 0x55, 0x55, 0x54, 0x0a, 0xaa, 0xaa, 0xa8
};
// 'sensor 2d off', 40x10px
const unsigned char epd_bitmap_sensor_2d_off [] PROGMEM = {
0x05, 0x00, 0x00, 0x00, 0x50, 0x02, 0xaa, 0xaa, 0xaa, 0xa0, 0x05, 0x55, 0x55, 0x55, 0x50, 0x02,
0xaa, 0xaa, 0xaa, 0xa0, 0x05, 0x55, 0x55, 0x55, 0x50, 0x0a, 0xaa, 0xaa, 0xaa, 0xa8, 0x05, 0x55,
0x55, 0x55, 0x50, 0x0a, 0xaa, 0xaa, 0xaa, 0xa8, 0x05, 0x55, 0x55, 0x55, 0x50, 0x00, 0xaa, 0xaa,
0xaa, 0x80
};
// 'sensor 2d on', 40x10px
const unsigned char epd_bitmap_sensor_2d_on [] PROGMEM = {
0x07, 0x00, 0x00, 0x00, 0x70, 0x07, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xf0, 0x07,
0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xff, 0xf8, 0x0f, 0xff,
0xff, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0xff, 0xf8, 0x01, 0xff, 0xff,
0xff, 0xc0
};
// 'sensor 3a off', 32x14px
const unsigned char epd_bitmap_sensor_3a_off [] PROGMEM = {
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x40, 0x00, 0x00, 0xaa, 0xa0, 0x00, 0x05, 0x55, 0x40,
0x00, 0x2a, 0xaa, 0xa0, 0x05, 0x55, 0x55, 0x50, 0x0a, 0xaa, 0xaa, 0xa8, 0x05, 0x55, 0x55, 0x50,
0x02, 0xaa, 0xaa, 0x80, 0x05, 0x55, 0x54, 0x00, 0x02, 0xaa, 0xa8, 0x00, 0x05, 0x55, 0x40, 0x00,
0x02, 0xa8, 0x00, 0x00, 0x05, 0x40, 0x00, 0x00
};
// 'sensor 3a on', 32x14px
const unsigned char epd_bitmap_sensor_3a_on [] PROGMEM = {
0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0x00, 0x00, 0xff, 0xe0, 0x00, 0x07, 0xff, 0xe0,
0x00, 0x7f, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xf0,
0x07, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xf8, 0x00, 0x07, 0xff, 0xc0, 0x00,
0x07, 0xfc, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00
};
// 'sensor 3b off', 32x16px
const unsigned char epd_bitmap_sensor_3b_off [] PROGMEM = {
0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x05, 0x40, 0x00, 0x00, 0x2a, 0xa0,
0x00, 0x01, 0x55, 0x50, 0x00, 0x0a, 0xaa, 0xa8, 0x01, 0x55, 0x55, 0x50, 0x2a, 0xaa, 0xaa, 0xa8,
0x15, 0x55, 0x55, 0x50, 0x0a, 0xaa, 0xaa, 0xa0, 0x15, 0x55, 0x55, 0x00, 0x0a, 0xaa, 0xa8, 0x00,
0x15, 0x55, 0x40, 0x00, 0x0a, 0xaa, 0x00, 0x00, 0x05, 0x50, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00
};
// 'sensor 3b on', 32x16px
const unsigned char epd_bitmap_sensor_3b_on [] PROGMEM = {
0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x01, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0xf8, 0x01, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xfc,
0x1f, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0x80, 0x1f, 0xff, 0xfc, 0x00,
0x1f, 0xff, 0xe0, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00
};
// 'sensor 3c off', 32x17px
const unsigned char epd_bitmap_sensor_3c_off [] PROGMEM = {
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x01, 0x50, 0x00, 0x00, 0x0a, 0xa8,
0x00, 0x00, 0x55, 0x54, 0x00, 0x02, 0xaa, 0xa8, 0x00, 0x55, 0x55, 0x54, 0x02, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x54, 0x2a, 0xaa, 0xaa, 0xa8, 0x15, 0x55, 0x55, 0x40, 0x2a, 0xaa, 0xaa, 0x00,
0x15, 0x55, 0x50, 0x00, 0x2a, 0xaa, 0x80, 0x00, 0x15, 0x54, 0x00, 0x00, 0x2a, 0xa0, 0x00, 0x00,
0x14, 0x00, 0x00, 0x00
};
// 'sensor 3c on', 32x17px
const unsigned char epd_bitmap_sensor_3c_on [] PROGMEM = {
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x1f, 0xf8,
0x00, 0x00, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xfc, 0x00, 0x7f, 0xff, 0xfe, 0x07, 0xff, 0xff, 0xfe,
0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xff, 0x00,
0x3f, 0xff, 0xf8, 0x00, 0x3f, 0xff, 0xc0, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x3f, 0xe0, 0x00, 0x00,
0x3c, 0x00, 0x00, 0x00
};
// 'sensor 3d off', 32x18px
const unsigned char epd_bitmap_sensor_3d_off [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x01, 0x54,
0x00, 0x00, 0x0a, 0xaa, 0x00, 0x00, 0x55, 0x55, 0x00, 0x0a, 0xaa, 0xaa, 0x00, 0x55, 0x55, 0x55,
0x0a, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x54, 0x2a, 0xaa, 0xaa, 0xa0, 0x55, 0x55, 0x55, 0x40,
0x2a, 0xaa, 0xaa, 0x00, 0x55, 0x55, 0x50, 0x00, 0x2a, 0xaa, 0x80, 0x00, 0x15, 0x54, 0x00, 0x00,
0x2a, 0x80, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
};
// 'sensor 3d on', 32x18px
const unsigned char epd_bitmap_sensor_3d_on [] PROGMEM = {
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x03, 0xfe,
0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0f, 0xff, 0xff, 0x00, 0x7f, 0xff, 0xff,
0x0f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xc0,
0x7f, 0xff, 0xfe, 0x00, 0x7f, 0xff, 0xf8, 0x00, 0x3f, 0xff, 0x80, 0x00, 0x3f, 0xfc, 0x00, 0x00,
0x3f, 0xc0, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00
};
// 'Sound', 24x10px
const unsigned char epd_bitmap_Sound [] PROGMEM = {
0x03, 0xc0, 0x0f, 0x02, 0x18, 0x21, 0x02, 0x38, 0x11, 0x02, 0x78, 0x89, 0x00, 0xfa, 0x48, 0x00,
0xfa, 0x48, 0x02, 0x78, 0x89, 0x02, 0x38, 0x11, 0x02, 0x18, 0x21, 0x03, 0xc0, 0x0f
};
// 'Unit_cm', 24x10px
const unsigned char epd_bitmap_Unit_cm [] PROGMEM = {
0xf0, 0x03, 0xc0, 0x80, 0x00, 0x40, 0xbe, 0xff, 0x40, 0xb6, 0xdb, 0x40, 0x30, 0xdb, 0x00, 0x30,
0xdb, 0x00, 0xb6, 0xdb, 0x40, 0xbe, 0xdb, 0x40, 0x80, 0x00, 0x40, 0xf0, 0x03, 0xc0
};
struct SensorData{
int PIN_TRIG;
int PIN_ECHO;
int distance;
};
#define Sensor_Count 3
#define Sensor_0_PIN_TRIG 3
#define Sensor_0_PIN_ECHO 2
#define Sensor_1_PIN_TRIG 5
#define Sensor_1_PIN_ECHO 4
#define Sensor_2_PIN_TRIG 7
#define Sensor_2_PIN_ECHO 6
#define Min_Distance 2
#define Max_Distance 202
int i;
struct SensorData Sensor[Sensor_Count];
int distance_checkpoint1;
int distance_checkpoint2;
int distance_checkpoint3;
int distance_checkpoint4;
void setup() {
u8g.setFont(u8g_font_tpssb);
u8g.setColorIndex(1);
Sensor[0].PIN_TRIG=Sensor_0_PIN_TRIG;
Sensor[0].PIN_ECHO=Sensor_0_PIN_ECHO;
Sensor[1].PIN_TRIG=Sensor_1_PIN_TRIG;
Sensor[1].PIN_ECHO=Sensor_1_PIN_ECHO;
Sensor[2].PIN_TRIG=Sensor_2_PIN_TRIG;
Sensor[2].PIN_ECHO=Sensor_2_PIN_ECHO;
for(i=0;i<Sensor_Count;i++) {
pinMode(Sensor[i].PIN_TRIG, OUTPUT);
pinMode(Sensor[i].PIN_ECHO, INPUT);
};
distance_checkpoint1 = Min_Distance + ((Min_Distance + Max_Distance)/4)*1;
distance_checkpoint2 = Min_Distance + ((Min_Distance + Max_Distance)/4)*2;
distance_checkpoint3 = Min_Distance + ((Min_Distance + Max_Distance)/4)*3;
distance_checkpoint4 = Min_Distance + ((Min_Distance + Max_Distance)/4)*4;
}
void loop() {
for(i=0;i<Sensor_Count;i++){
digitalWrite(Sensor[i].PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(Sensor[i].PIN_TRIG, LOW);
int duration = pulseIn(Sensor[i].PIN_ECHO, HIGH);
Sensor[i].distance=duration / 58;
}
u8g.firstPage();
do {
u8g.drawBitmapP( 0, 0, 24/8, 10, epd_bitmap_Unit_cm);
u8g.drawBitmapP( 104, 0, 24/8, 10, epd_bitmap_Sound);
u8g.drawBitmapP( 32, 0, 64/8, 14, epd_bitmap_car);
u8g.drawBitmapP( 24,17,32/8,14,((distance_checkpoint1<Sensor[0].distance) ? epd_bitmap_sensor_1a_on : epd_bitmap_sensor_1a_off));
u8g.drawBitmapP( 21,25,32/8,16,((distance_checkpoint2<Sensor[0].distance) ? epd_bitmap_sensor_1b_on : epd_bitmap_sensor_1b_off));
u8g.drawBitmapP( 18,34,32/8,17,((distance_checkpoint3<Sensor[0].distance) ? epd_bitmap_sensor_1c_on : epd_bitmap_sensor_1c_off));
u8g.drawBitmapP( 16,43,32/8,18,((distance_checkpoint4<Sensor[0].distance) ? epd_bitmap_sensor_1d_on : epd_bitmap_sensor_1d_off));
u8g.drawBitmapP( 51,23,24/8,9,((distance_checkpoint1<Sensor[1].distance) ? epd_bitmap_sensor_2a_on : epd_bitmap_sensor_2a_off));
u8g.drawBitmapP( 47,33,32/8,9,((distance_checkpoint2<Sensor[1].distance) ? epd_bitmap_sensor_2b_on : epd_bitmap_sensor_2b_off));
u8g.drawBitmapP( 47,42,32/8,10,((distance_checkpoint3<Sensor[1].distance) ? epd_bitmap_sensor_2c_on : epd_bitmap_sensor_2c_off));
u8g.drawBitmapP( 43,52,40/8,10,((distance_checkpoint4<Sensor[1].distance) ? epd_bitmap_sensor_2d_on : epd_bitmap_sensor_2d_off));
u8g.drawBitmapP( 71,17,32/8,14,((distance_checkpoint1<Sensor[2].distance) ? epd_bitmap_sensor_3a_on : epd_bitmap_sensor_3a_off));
u8g.drawBitmapP( 74,25,32/8,16,((distance_checkpoint2<Sensor[2].distance) ? epd_bitmap_sensor_3b_on : epd_bitmap_sensor_3b_off));
u8g.drawBitmapP( 77,34,32/8,17,((distance_checkpoint3<Sensor[2].distance) ? epd_bitmap_sensor_3c_on : epd_bitmap_sensor_3c_off));
u8g.drawBitmapP( 79,43,32/8,18,((distance_checkpoint4<Sensor[2].distance) ? epd_bitmap_sensor_3d_on : epd_bitmap_sensor_3d_off));
} while ( u8g.nextPage() );
delay(500);
}