#include <Wire.h>
#include <U8glib.h>
U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NO_ACK);
float OilPressure; // Variabile per il calcolo della pressione dell'olio
//-----------------------------------------------------------------
void setup() {
u8g.setColorIndex(1);
u8g.setFont(u8g_font_6x10);
u8g.firstPage();
do {
u8g.drawStr(0, 10, "OIL press:");
} while (u8g.nextPage());
delay(1000);
}
//------------------------------------------------------------------
void loop() {
OilPressure = (float(OilPressure1(analogRead(1))));
u8g.firstPage();
do {
u8g.drawStr(0, 20, String(OilPressure).c_str());
u8g.drawStr(40, 20, "BAR");
} while (u8g.nextPage());
delay(1000);
}
//---------------------------------------------------------------------
float OilPressure1(float RawADC) {
float Pressure; // Local variabel. Only used in this routine.
if (RawADC < 30) Pressure = 0.0;
else if (RawADC < 62) Pressure = 0.4;
else if (RawADC < 72) Pressure = 0.6;
else if (RawADC < 78) Pressure = 0.8;
else if (RawADC < 86) Pressure = 1.0;
else if (RawADC < 95) Pressure = 1.2;
else if (RawADC < 102) Pressure = 1.4;
else if (RawADC < 105) Pressure = 1.6;
else if (RawADC < 112) Pressure = 1.8;
else if (RawADC < 117) Pressure = 2.0;
else if (RawADC < 125) Pressure = 2.2;
else if (RawADC < 128) Pressure = 2.4;
else if (RawADC < 137) Pressure = 2.6;
else if (RawADC < 142) Pressure = 2.8;
else if (RawADC < 147) Pressure = 3.0;
else if (RawADC < 152) Pressure = 3.2;
else if (RawADC < 159) Pressure = 3.4;
else if (RawADC < 166) Pressure = 3.6;
else if (RawADC < 171) Pressure = 3.8;
else if (RawADC < 176) Pressure = 4.0;
else if (RawADC < 181) Pressure = 4.2;
else if (RawADC < 183) Pressure = 4.4;
else if (RawADC < 188) Pressure = 4.6;
else if (RawADC < 195) Pressure = 4.8;
else if (RawADC < 198) Pressure = 5.0;
delay(1000); // Just a delay otherwise the display is flashing
return Pressure;
}