Also schnell die benötigten Pins des LCD (übrigens ein JM204A) aus dem Datenblatt herausgesucht und mit Flachbandkabel und Pinheadern versorgt und an den Arduino angeschlossen. (die Belegung des Arduino habe ich im Script angegeben)
Der NTC-Spannungsteiler bleibt, wie er ist. Und schon kanns losgehen. Da wir die vier schönen Zeilen mit 20 Zeichen pro Zeile am LCD zur Verfügung haben, kann auch viel Information angezeigt werden. Ich habe mich entschieden, den Integer Wert des 10Bit ADC anzuzeigen (0-1023), den errechneten Widerstandswert des NTC´s und natürlich die daraus errechnete Temperatur.
Und das hier ist der simple Code ;) ...
/* ingmarsretro 2016
* Pinzuordnungen fürs LCDisplay
* RS to digital 12
* EN to digital 11
* D4 to digital 5
* D5 to digital 4
* D6 to digital 3
* D7 to digital 2
* R/W to ground
* VSS to ground
*/
// include libraries
#include <LiquidCrystal.h>
#include <math.h>
int analogpin = 0;
int analogvalue = 0;
double a1=3.354016E-03;
double b1=3.2569850E-04;
double c1=2.61013E-06;
double d1=6.38309e-08;
double urt=0;
double rt=0;
double rvsrref=0;
double temp=0;
double tempc=0;
double r=2200;
double rref=2200;
double analog=0;
// interfacepins initialisieren
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// setup LCD spalten und reihen
lcd.begin(20, 4);
lcd.print("Testprogramm NTC");
Serial.begin(9600);
}
void loop() {
analogvalue=analogRead(analogpin);
analog=(0.004882812*analogvalue);
urt=5-analog;
rt=((r/analog)*urt);
rvsrref=rt/rref;
temp=(1/(a1+(b1*log(rvsrref))+(c1*(log(rvsrref*rvsrref)))+(d1*(log(rvsrref*rvsrref*rvsrref)))));
tempc=temp-273.15;
// column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print("ADC-Wert =");
lcd.setCursor(11,1);
lcd.print(analogvalue);
lcd.setCursor(0, 2);
lcd.print("Widerstd =");
lcd.setCursor(11, 2);
lcd.print(rt);
lcd.setCursor(0, 3);
lcd.print("Temp Cels=");
lcd.setCursor(11, 3);
lcd.print(tempc);
}