PH-Wert auf TFT ausgeben

Hallo zusammen,

ich bin ganz neu was Adruino angeht und versuche mich das erste mal an ein Projekt.

Austattung: Adruino Mega 2560, TFT Shild, 3,5" TouchTFT

Ich habe nun eine PH-Sonde dran (A0) die über die Serielle Console auch die werte ausgibt.
Nun versuche ich die Werte auch über das Display auszugeben. Irgendwie scheine ich zu blöd dafür zu sein... :slight_smile:

Vielleicht kann mir von euch jemand einen Tip geben und bedanke mich im Vorraus.

LG Björn

#include <UTFT.h>
#include <URTouch.h>
#include <AnalogPHMeter.h>
#include <EEPROM.h>


UTFT     myGLCD(ITDB43,38,39,40,41);
URTouch  myTouch( 6, 5, 4, 3, 2);


extern uint8_t SmallFont[];
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];


AnalogPHMeter pHSensor(A0);
unsigned int pHCalibrationValueAddress = 0;

void setup(void) {
  
  myTouch.InitTouch(LANDSCAPE);
  myTouch.setPrecision(PREC_HI);
  myGLCD.InitLCD();
  myGLCD.clrScr();
  
  Serial.begin(9600);

  struct PHCalibrationValue pHCalibrationValue;
  EEPROM.get(pHCalibrationValueAddress, pHCalibrationValue);
  pHSensor.initialize(pHCalibrationValue);

  Serial.println("PH kalibrieren");
  Serial.println("Im EEPROM speichern");
  Serial.println("kalibrieren:");
  Serial.println(" - PH7 Lösung nutzen");
  Serial.println(" - Warten bis PH Wert stabiel ist.");
  Serial.println(" - Drücke 'c' zum Kalibrieren");
  Serial.println(" - Das gleiche für pH 4 und/oder pH 10,");
  Serial.println("   OK drücke 'l' für pH 4, und 'h' für pH 10");
  Serial.println();
  Serial.println("Drücke 's' um die werte im EEPROM zu speichern");
  Serial.println();
  Serial.println("*kalibrierung löschen drücke 'c'");
  delay(3000);

  HomeScreen();  // Darstellung Home Screen
//      currentPage = '0'; //  Home Screen
//      selectedUnit = '0'; // Unit 
}

void HomeScreen() {
  // Title
  myGLCD.setBackColor(0,0,0); // Hintergrund
  myGLCD.setColor(255, 255, 255); // Text farbe
  myGLCD.setFont(BigFont); // Text Schrift
  myGLCD.print("PH Meter", CENTER, 10); // Text
  myGLCD.setColor(255, 0, 0); // Farbe Linie
  myGLCD.drawLine(0,32,480,32); // Linie

  myGLCD.setBackColor(0,0,0); // Hintergrund
  myGLCD.setColor(255, 255, 255); // Text farbe
  myGLCD.setFont(SmallFont); // Text Schrift
  myGLCD.print("PH:" , 20, 42); // Text
  myGLCD.setColor(255, 0, 0); // Farbe Linie
  myGLCD.drawLine(0,60,480,60); // Linie

  myGLCD.setBackColor(0,0,0); // Hintergrund
  myGLCD.setColor(255, 255, 255); // Text farbe
  myGLCD.setFont(BigFont); // Text Schrift
  myGLCD.print("getpH()" , 80, 40); // Text
  myGLCD.setColor(255, 0, 0); // Farbe Linie
  myGLCD.drawLine(240,60,240,32); // Linie
   
    // Button
//  myGLCD.setColor(16, 167, 203);
//  myGLCD.fillRoundRect (125, 240, 350, 270); 
//  myGLCD.setColor(255, 255, 255); 
//  myGLCD.drawRoundRect (125, 240, 350, 270); 
//  myGLCD.setFont(BigFont); 
//  myGLCD.setBackColor(16, 167, 203); 
//  myGLCD.print("---", CENTER, 247); 
}
void loop(void) {
  static unsigned long t = millis();
  if (millis() - t > 1000) {
    Serial.println(pHSensor.singleReading().getpH());
    t = millis();
  }

  if (Serial.available()) {
    char c = Serial.read();
    if (c == 'm') {
      pHSensor.calibrationMid(7.000f);
    } else if (c == 'l') {
      pHSensor.calibrationLow(4.000f);
    } else if (c == 'h') {
      pHSensor.calibrationHigh(10.000f);
    } else if (c == 'c') {
      pHSensor.calibrationClear();
    } else if (c == 's') {
      EEPROM.put(pHCalibrationValueAddress, pHSensor.getCalibrationValue());
    }
  }
}

Hi

Naja - wenn ich etwas aktuelles auf einem egal wie geartetem Display ausgeben möchte, muß ich Das zumindest schon tun.
Ich sehe in Deiner loop() Nichts, was mit dem Display zu tun hat.
Somit wirst Du - sofern Das funktioniert, Deinen Start-Bildschirm in setup() generiert bekommen - mehr nicht - mehr machst Du ja auch nicht mit dem Display.

MfG

@TO: Du solltest uns auch einen Link zur UTFT-Lib geben. Es gibt mehrere davon.

Gruß Tommy

Versuche es mal indem du den Homescreen auch aus der Loop aufrufst.
Wäre schon mal ein Anfang.