Hallo zusammen,
die Ausgabe meines LCD wird von korrekt nach ca. 4sek zur Japanischen Buchstabensalat Laufschrift.
Könntet ihr mir da eventuell helfen?
Verwenden tue ich ein Pollin LCD 16*2 TC1602A im 4-Bit Mode.
//habe auch schon Testweise mal die Umlaute und das °-Zeichen entfernt, passiert trotzdem.
schonmal vielen Dank für jede Hilfe.
#include <LiquidCrystal.h>
// LiquidCrystal(RS, ENABLE, D4, D5, D6, D7);
LiquidCrystal lcd(11, 12, 4, 5, 8, 10);
void setup() {
Serial.begin(9600);
analogReference(DEFAULT);
pinMode(A0, INPUT);
//LCD Init und check ob Lötkolben/Thermoelemt angeschlossen ist;
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("BOOTING -- Check");
lcd.setCursor(0,1);
}
void loop() {
// Sollwert Messung Potentiometer;
int potiSoll = analogRead(A1);
int temperaturSoll = map(potiSoll, 0, 1023, 150, 450);
Serial.print("Solltemperatur: ");
Serial.println(temperaturSoll);
//Konstanten zur Berechnung der Thermoelement Temperatur;
const int thAmplification = 166; //Verstärkung Thermoelement Messverstärker 6k/1M=166,667
const float thmVperDigitTypeJ = 0.054423333; //Temperaturkonstante - °C/mV
const int thCalibration = 0; //0°C-100°C Kalibrierung/Abgleichsfaktor
// Erhöhen der ADC-Sammpling Rate;
// Bitmath Register verändern;
// Erstellen des ADC-Mittelwerts zur Anzeige-Temperatur-Stabilisierung ===> WORKING;
long thAmpMW1000 = 0;
long thAmpMWadd;
for (int count1 = 0; count1 < 1000; count1++){
long thAmpMW = analogRead(A0);
thAmpMWadd = thAmpMWadd + thAmpMW;
}
thAmpMW1000 = thAmpMWadd / 1000;
float thTempJformel = (((thAmpMW1000 * (5.0 / 1023.0)) / thAmplification) * 1000) / thmVperDigitTypeJ;
//Serielle Testwertausgabe;
Serial.print("ADC A0 Wert= ");
int thAmp = analogRead(A0);
Serial.println(thAmp);
Serial.print("ADC A0 Mittelwert aus 1000 Interationen: ");
Serial.println(thAmpMW1000);
Serial.print("Temperatur Lötspitze TypJ= ");
Serial.print(int(thTempJformel));
Serial.println("°C");
delay(1000); //Displayauslöseverzögerung
Serial.write(27); //clear Serial Monitor mit char(27)ESC
// ENDE der Ausgabe und der ADC-Auswertung
// Nulldurchgangserkennung
//Ansteuerung LCD für Betrieb 16*2;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Solltemp: "); //11digits
lcd.setCursor(11,0);
lcd.print(temperaturSoll); //3digits
lcd.setCursor(14,0);
lcd.print("°C"); //2digits
lcd.setCursor(0,1);
lcd.print(" Isttemp: "); //11digits
lcd.setCursor(11,1);
lcd.print(int(thTempJformel)); //3digits
lcd.setCursor(14,1);
lcd.print("°C"); //2digits
delay(25);
// BEGINN Ansteuerung Triac
}