Hallo Zusammen,
neuer Tag, neues Problem:
ich habe bei meinem Display das Grundbild im Setup.
Nun möchte ich einen Sensor alle 5 Sekunden auslesen und in einem extra Bild anzeigen lassen.
Sobald ich allerdings eine Wiederholung einbaue komm ich nichtmehr ins Setup zurück, was davor allerdings funktioniert.
Hat hier jemand einen Lösungsvorschlag? Hab auch schon mit While herumprobiert allerdings bleibt er auch hier in der Endlosschleife hängen.
Falls euch sonst noch etwas auffällt, gerne meckern.
Danke euch schonmal.
#include <Arduino.h>
#include <SPI.h>
#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
Waveshare4InchTftShield Waveshield;
boolean buttonBF = true;
boolean buttonZurueck =false;
const int soilMoistPin = A0;
const int soilMoistLevelLow = 836; //Dieser Wert soll von euch entsprechend angepasst werden
const int soilMoistLevelHigh = 402; //Dieser Wert soll von euch entsprechend angepasst werden
void setup()
{
SPI.begin();
Waveshield.begin();
Waveshield.setRotation(1);
Waveshield.setFont(&FreeSans18pt7b);
Serial.begin(115200);
pinMode(soilMoistPin, INPUT);
Waveshield.fillScreen(WHITE);
//Start-Bild
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, 70, 470, 60, WHITE);
Waveshield.drawRect(5, 70, 470, 60,BLACK);
Waveshield.setCursor(35,112);
Waveshield.setTextSize(1);
Waveshield.setTextColor(BLACK);
Waveshield.print("Bodenfeuchte anzeigen");
}
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
// Mitte von Rechteck: Höhe + Abstand - Schriftgröße
//Bodenfeuchte Bild
if(p.z > Waveshield.pressureThreshhold) {
if(p.x>5 && p.x<475 && p.y>70 && p.y<130){
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("Bodenfeuchte"); // print = Text
Waveshield.fillRect(5, 255, 475, 60, WHITE); // fillRect = Rechteck ausfüllen
Waveshield.drawRect(5, 255, 475, 60,BLACK); // drawRect = Rechteck-Kontur
Waveshield.setCursor(35,297); // setCursor = Text-Ausrichtung
Waveshield.setTextSize(1); // setTextSize = Text-Größe
Waveshield.setTextColor(BLACK); // setTextColor = Text-Farbe
Waveshield.print("Zurueck"); // print = Text
Waveshield.fillRect(5, 70, 470, 60, WHITE); // fillRect = Rechteck ausfüllen
Waveshield.drawRect(5, 70, 470, 60,BLACK); // drawRect = Rechteck-Kontur
refresh:
//Bodenfeuchte Sensor
int soilMoist = analogRead(soilMoistPin);
Serial.print("Analog Value: ");
Serial.print(soilMoist);
// Auswertung der Bodenfeuchtigkeit in Prozent
int percentSoilMoist = map(soilMoist, soilMoistLevelHigh, soilMoistLevelLow, 100, 0);
Serial.print("\t");
Serial.print(percentSoilMoist);
Serial.println(" %");
{
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.fillRect(5, 70, 470, 60, WHITE); // fillRect = Rechteck ausfüllen
Waveshield.drawRect(5, 70, 470, 60,BLACK); // drawRect = Rechteck-Kontur
Waveshield.print("BodenFeuchte "); // print = Text
Waveshield.print(percentSoilMoist);
Waveshield.print(" %");
if(p.x>5 && p.x<475 && p.y>255 && p.y<315)
{
setup();
}
delay (5000);
goto refresh;
}
}
}
}