ich habe vor über das Arduino via LCD Display die Öltemperatur an meinem Auto auszugeben. Leider habe ich keine OBD Schnittstelle und muss demnach alles Analog machen.
Aktuell simuliere ich den Öltemperatursensor mit einem Poti. Das funktioniert auch. Aktuell sieht das so aus:
Oeltemp.: X
Oeltemp.: XX
Oeltemp.: XXX
Oeltemp.: XXXX
Wenn die Öltemperatur steigt ist alles ok. Wenn Sie jedoch fällt, dann fängt das Board an die Einer Temperaturen folgendermaßen zu schreiben:
Oeltemp.: XYYY
An erster stelle werden dann wieder die Einer angezeigt, aber die Zehner, Hunderter und die Tausender Werte bleiben da stehen, bis der Wert hoch genug ist. Ich hoffe ich konnte das einigermaßen erklären.
Richtig, für ein Anfänger ist es aber einfacher.
Wie auch bei mir damals mit der Uhr, jede Sekunde hat das Display geflackert, ging mir irgendwann aufm sack und dann hab ichs so geändert wie in #2.
Im Fall der Öltemperatur hätte ich eine Mischung aus beidem gemacht, sprich rechtsbündig mit führenden Leerzeichen. Ist aber wie vieles Geschmacksache.
Ich verstehe nicht genau wie ich deinen Code in meinen Sketch einbauen soll.
void printNumber(int num)
{
lcd.print(num);
if (num < 1000) lcd.print(' ');
if (num < 100) lcd.print(' ');
if (num < 10) lcd.print(' ');
}
Hier mal mein Sketch:
// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// initialize the serial communications:
Serial.begin(9600);
}
void loop()
{
lcd.setCursor(0, 0); // Anfang auf Stelle 0, Zeile 0 setzen
lcd.print("Oeltemp. :"); // Temp. : auf LCD ausgeben
lcd.setCursor(11, 0); // Anfang auf Stelle 11, Zeile 0 setzen
lcd.print (analogRead(A0));
int sensorValue = analogRead(A0); //liest Analogeingang 0
Serial.println(sensorValue); //gibt Seriellen Wert aus
delay(1000); //wartet 1 Sekunde zwischen den Auslesewerten
}