int analogPin = 0;
int raw = 0;
int Vin = 5;
float Vout = 0;
float R1 = 0;
float R2 = 1000;
float buffer = 0;
const float R1_min = 0.0;
const float R1_max = 100.0;
const float bar_min = 0.0;
const float bar_max = 7.0;
const float bar_per_ohm = (bar_max - bar_min) / (R1_max - R1_min);
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
Serial.begin(9600);
}
void loop() {
raw = analogRead(analogPin);
if (raw) {
buffer = raw * Vin;
Vout = buffer / 1024.0;
buffer = Vin / Vout - 1;
R1 = R2 * buffer;
float bar = (R1 - R1_min) * bar_per_ohm;
Serial.print("Vout: ");
Serial.println(Vout);
Serial.print("R1: ");
Serial.println(R1);
Serial.print("Bar: ");
Serial.println(bar);
display.clearDisplay();
display.setCursor(0, 0);
display.setTextSize(1);
display.setTextColor(WHITE);
display.print("OIL PRESS bar: ");
display.print(bar, 1);
display.display();
delay(1000);
}
}