Anfänger sucht Hilfe beim Drucksensorprogramm

Servus liebe Leute, ich bin Arduino-Anfänger und brauche Hilfe für mein Techniker-Projekt. Ich baue einen Osmosefilter mit Automatisierung durch einen Arduino MEGA 2560 R3. Für die Druckmessung habe ich bei Amazon einen Drucksensor erstanden. Dieser hat drei Anschlüss: + für 5V, - für GND und gelb für das Signal. Ich habe jetzt das Signalkabel mit einem Vorwiderstand am A2 angeschlossen und wollte ihne mit analogRead() auslesen, wie das z.B bei dem Wasserstandmodul im StarterKit der Fall war. Soweit bekomm ich am seriellen Monitor auch die Werte für 0 bar zB 104 digits ausgegeben bis 9 bar 708 digits. Nun will ich jetzt die Digits in einen Druckwert mit einer Nachkommastelle (z.B 6,9 bar) umrechnen um diese Information später im Hautprogramm abzurufen.
Dafür hab ich bei Excel eine Kurver errechnen lassen, die der Linearität des Senosor im Bereich von 4-9 bar am nähesten kommt. y = 0,0142x – 1,1256.

also z.B bei 7 bar hab ich 573 digits: Druck = 0,0142 * 573digits - 1,1256 = 7,01 bar.

Ich hab die Werte der Geradefunktionun durch 1000 dividiert um die Kommas wegzubekommen und dann noch gerundet und bekomm so schon mal eine angabe in Millibar, jedoch durch das Runden etwas ungenau.
Kann mir bitte jmd Rat geben, wie ich die Ausgabe am seriellen Monitor und dann am meinem 16x2 LCD display in Bar und mit einer Nachkommastelle hinbekomme?

Sofern ich mich richtig eingelesen habe, kann man mit sprintf() auch keine float oder double oder long ausgeben...

Hier mal mein kleiner und bescheidener Code:

void loop()
{
int digits = analogRead(DS); //einlesen der Digits vom Pin

int druck_in_mbar = (14 * digits)-1126; // von mir erstellte Kurve durch 1000 dividert und gerundet
sprintf(Ausgabepuffer, "DRUCK: %d\n", druck_in_mbar); //Ausgabe in Millibar
Serial.print(Ausgabepuffer);

sprintf(Ausgabepuffer, "digits: %d\n", digits);
Serial.print(Ausgabepuffer);
delay(1000);

}

Vielen Dank im Voraus,
mit freundlichen Grüßen, Chris

chrisstarter:
bei Amazon einen Drucksensor erstanden.

Bitte immer einen Link dazu mitliefern.

Denn:

Dieser hat drei Anschlüss: + für 5V, - für GND und gelb für das Signal. Ich habe jetzt das Signalkabel mit einem Vorwiderstand am A2 angeschlossen

Das können eigentlich alle.
Und der Widerstand ist eher kontraproduktiv.
Wenn die 5V vom ARDUINO kommen, dann kannst Du den gesamten bereich nutzen.

und das:

Dafür hab ich bei Excel eine Kurver errechnen lassen, die der Linearität des Senosor im Bereich von 4-9 bar am nähesten kommt. y = 0,0142x – 1,1256.

also z.B bei 7 bar hab ich 573 digits: Druck = 0,0142 * 573digits - 1,1256 = 7,01 bar.

Ich hab die Werte der Geradefunktionun durch 1000 dividiert um die Kommas wegzubekommen und dann noch gerundet und bekomm so schon mal eine angabe in Millibar, jedoch durch das Runden etwas ungenau.

komplett sparen.

Schau Dir mal die map() Funktion an.
Damit gibst Du den Eingangswerten einen (umgerechneten) Ausgangswert.

Für Dich wie dafür gemacht.

Deinen Code bitte in codetags setzen. Oben im Editor das </> Symbol - das geht auch nachträglich, wenn Du Deinen Post mit modify (unten rechts unter dem Post) bearbeitest.

Sofern ich mich richtig eingelesen habe, kann man mit sprintf() auch keine float oder double oder long ausgeben...

Nur bedingt richtig.
Kann man für den Mega aktivieren.

Tipp:
Absolute Messungen? Dann Interne/Externe Referenz verwenden.
Ratiometrische Messungen? Dann Vcc als Referenz.