TFT display M0283QT with Arduino UNO and DHT22

Hey there,

I'm currently trying to read out the sensor values of the DHT22 - which works very well with the serial monitor but not with the TFT display.

The TFT-display is - hopefully - correctly connected with the Arduino (as shown on the attached picture) but only gets white when powering it up. There is no chance to display the values or any written text.

Here the Example of the DHT22 readout:

#include "DHT.h"
 
#define DHTPIN 11     
#define DHTTYPE DHT22 //DHT11, DHT21, DHT22
 
DHT dht(DHTPIN, DHTTYPE);
 
void setup() 
{
  Serial.begin(9600); 
  Serial.println("DHT22 Test START");
 
  dht.begin();
}
 
void loop() 
{
  float h = dht.readHumidity();     //Luftfeuchte auslesen
  float t = dht.readTemperature();  //Temperatur auslesen
 
  // Prüfen ob eine gültige Zahl zurückgegeben wird. Wenn NaN (not a number) zurückgegeben wird, dann Fehler ausgeben.
  if (isnan(t) || isnan(h)) 
  {
    Serial.println("DHT22 konnte nicht ausgelesen werden");
  } 
  else
  {
    Serial.print("Luftfeuchte: "); 
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperatur: "); 
    Serial.print(t);
    Serial.println(" C");
  }
}

I just tried to use the program "TFTDisplayText" written by Arduino in connection with the github-library but as I pointed out - the display only gets white.

/*
  Arduino TFT text example

  This example demonstrates how to draw text on the
  TFT with an Arduino. The Arduino reads the value
  of an analog sensor attached to pin A0, and writes
  the value to the LCD screen, updating every
  quarter second.

  This example code is in the public domain

  Created 15 April 2013 by Scott Fitzgerald

  http://www.arduino.cc/en/Tutorial/TFTDisplayText

 */

#include <TFT.h>  // Arduino LCD library
#include <SPI.h>

// pin definition for the Uno
#define cs   10
#define dc   9
#define rst  8

// pin definition for the Leonardo
// #define cs   7
// #define dc   0
// #define rst  1

// create an instance of the library
TFT TFTscreen = TFT(cs, dc, rst);

// char array to print to the screen
char sensorPrintout[4];

void setup() {

  // Put this line at the beginning of every sketch that uses the GLCD:
  TFTscreen.begin();

  // clear the screen with a black background
  TFTscreen.background(0, 0, 0);

  // write the static text to the screen
  // set the font color to white
  TFTscreen.stroke(255, 255, 255);
  // set the font size
  TFTscreen.setTextSize(2);
  // write the text to the top left corner of the screen
  TFTscreen.text("Sensor Value :\n ", 0, 0);
  // ste the font size very large for the loop
  TFTscreen.setTextSize(5);
}

void loop() {

  // Read the value of the sensor on A0
  String sensorVal = String(analogRead(A0));

  // convert the reading to a char array
  sensorVal.toCharArray(sensorPrintout, 4);

  // set the font color
  TFTscreen.stroke(255, 255, 255);
  // print the sensor value
  TFTscreen.text(sensorPrintout, 0, 20);
  // wait for a moment
  delay(250);
  // erase the text you just wrote
  TFTscreen.stroke(0, 0, 0);
  TFTscreen.text(sensorPrintout, 0, 20);
}

I searched the web like 4-5 hours but didn't get any hint. I think the problem is the port assignment but I don't know what is wrong.

Du you have an idea?
I would be very thankful for any hint.

Hi,

the pin declaration is not the same like in the jpg.

You defined:

// pin definition for the Uno
#define cs   10
#define dc   9
#define rst  8

In your jpg the pins are:
cs for display: pin 7
cs for touch: pin 6
rst: pin 8

There is no dc in your picture.
I would assume that cs for display is dc. Take a look at the link:
mSD-Shield/hardware/mSD-Shield_v10.pdf
Give it a try tomorrow morning :wink:

Thank you for your hint but unfortunately, with this assignment, the display stays dark. :frowning: