DHT11 + Touchscreen Problem

Hallo Zusammen,

habe mir vor kurzem meinen ersten Mega zugelegt.
Hab auch schon ein paar kleinere Projekte gemeistert, jetzt stoße ich auf folgendes Problem:

Ich will an folgendem Display einen Wert von einem DHT11 (dreipolig) anzeigen lassen.
Sobald ich den Sensor anschließe funktioniert allerdings der Touch nichtmehr.
Trenne ich ihn funktioniert der Touch sofort wieder.

Die Zusätzliche Spannungsversorgung habe ich angeschlossen, eine Fehlbelegung ist meines Wissens nach ebenfalls nicht vorhanden.

Hat hier jemand eine Idee?

Danke euch schonmal für hilfreiche Antworten.

Peter

Es könnte ein Fehler in Zeile 42 sein, oder es sind alle Pins vom Display belegt.

Inwiefern Zeile 42?
Bin wie gesagt noch neu in der Thematik. :sweat_smile:

Aber nur du kennst deinen Sketch und deine Schaltung.
Wie sollen wir helfen, ohne dein Wissen ?
Also poste deinen Sketch und setze den in Code-Tags und poste dein Schaltbild.

/*
  Name:    TouchTest.ino
  Created: 2019-12-25 12:52:14 AM
  Author:  Michael
*/

// the setup function runs once when you press reset or power the board

#include <Arduino.h>

#include <SPI.h>
#include "DHT.h" //DHT Bibliothek laden
#include <Adafruit_GFX.h>
#include <Waveshare4InchTftShield.h>
#include <Fonts/FreeSans18pt7b.h>


#define BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

#define DHTPIN 50
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);



Waveshare4InchTftShield Waveshield;
boolean buttonLuft = true;
boolean buttonZurueck = false;


void setup()
{

  SPI.begin();
  Waveshield.begin();
  Waveshield.setRotation(1);
  Waveshield.setFont(&FreeSans18pt7b);
  Serial.begin(9600);
  dht.begin();





  //Start-Bild
  Waveshield.fillScreen(WHITE);
  Waveshield.fillRect(5, 5, 470, 60, RED);
  Waveshield.drawRect(5, 5, 470, 60, BLACK);
  Waveshield.setCursor(35, 47);
  Waveshield.setTextColor(WHITE);
  Waveshield.setTextSize(1);
  Waveshield.print("Start-Fenster");


  Waveshield.fillRect(5, 135, 470, 60, WHITE);
  Waveshield.drawRect(5, 135, 470, 60, BLACK);
  Waveshield.setCursor(35, 177);
  Waveshield.setTextSize(1);
  Waveshield.setTextColor(BLACK);
  Waveshield.print("Luft-Ueberwachung");
}

int i = 0;

// the loop function runs over and over again until power down or reset
void loop() {

  TSPoint p = Waveshield.getPoint(); //Ganzen Touchscreen verwenden
  Waveshield.normalizeTsPoint(p); // Automatische Rotation

  float Luftfeuchtigkeit = dht.readHumidity();
  float Temperatur = dht.readTemperature();


  //Luft-Bild
  if (p.z > Waveshield.pressureThreshhold) {
    if (p.x > 5 && p.x < 475 && p.y > 135 && p.y < 195 && buttonLuft)
    {
      buttonZurueck = true;
      Waveshield.fillScreen(WHITE); // fillScreen = Hintergrundfarbe
      Waveshield.fillRect(5, 5, 470, 60, RED); // fillRect = Rechteck ausfüllen
      Waveshield.drawRect(5, 5, 470, 60, BLACK); // drawRect = Rechteck-Kontur
      Waveshield.setCursor(35, 47); // setCursor      = Text-Ausrichtung
      Waveshield.setTextColor(WHITE); // setTextColor   = Text-Farbe
      Waveshield.setTextSize(1);  // setTextSize = Text-Größe
      Waveshield.print("Luft-Ueberwachung"); // print = Text

      Waveshield.fillRect(5, 70, 470, 60, WHITE); // fillRect = Rechteck ausfüllen
      Waveshield.drawRect(5, 70, 470, 60, BLACK); // drawRect = Rechteck-Kontur
      Waveshield.setCursor(35, 112); // setCursor      = Text-Ausrichtung
      Waveshield.setTextColor(WHITE); // setTextColor   = Text-Farbe
      Waveshield.setTextSize(1);  // setTextSize = Text-Größe
      Waveshield.setTextColor(BLACK); // setTextColor   = Text-Farbe
      Waveshield.print("Temperatur"); // print = Text
      Waveshield.print(Temperatur);
      Waveshield.print("C");

      Waveshield.fillRect(200, 255, 275, 60, WHITE); // fillRect = Rechteck ausfüllen
      Waveshield.drawRect(200, 255, 275, 60, BLACK); // drawRect = Rechteck-Kontur
      Waveshield.setCursor(230, 297); // setCursor      = Text-Ausrichtung
      Waveshield.setTextSize(1);  // setTextSize = Text-Größe
      Waveshield.setTextColor(BLACK); // setTextColor   = Text-Farbe
      Waveshield.print("Zurueck"); // print = Text


    }
  }

  if (p.x > 5 && p.x < 475 && p.y > 135 && p.y < 235 && buttonLuft) {
    buttonZurueck = true;

  }





  if (p.x > 200 && p.x < 475 && p.y > 255 && p.y < 315 && buttonZurueck)
  { //p.x = Zwischen Punkt auf X-Achse, Y gleich
    setup();
  }







}

Schätze mal daß dieses Pin vom Touchpannel verwendet wird (SPI Schnittstelle auf dem Arduino MEGA 2560).

Versuch mal den Sensor auf einen anderen Pin zu legen.

Grüße Uwe

Vielen Dank, hat funktioniert :+1:.

Schönes Wochenende euch.

Schau dir mal das Pinout vom Mega an, da kannst du erkennen, welche Pins noch belegt und von dir nicht genutzt werden sollten.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.