Bodenfeuchtigkeitssensor wert am lcd display anzeigen

Hi
ich hab folgendes Problem habe ein LCD Display 16x2 und will auf dem display die bodenfeuchtigkeit anzeigen lassen, bekomme es aber nicht hin. Könnt ihr mir Tipps geben?

Ihr Beitrag wurde an seinen aktuellen Speicherort verschoben, da er besser geeignet ist.

Da ich nicht weiss wo es klemmt, ist das schwer.
zeig doch mal den Code - dann kann man drauf aufbauen.
Es hilft nicht, wenn ich rate.

Hallo
Beispiel vom Sensor durcharbeiten
Beispiel von dem LCD durcharbeiten
Beides verstehen
Beispiele zusammenführen

So sollte es klappen , wenn nicht dann zeige uns was du hast und berichte was nicht klappt.
Aber bitte nicht mit der Aussage " geht nicht" , denn meine Glaskugel habe ich abgeschafft und Kaffeesatz gibt's auch nicht mehr.
Heinz

int messwert=0;
const int relaisPin = 8;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup() {
// put your setup code here, to run once:
pinMode (relaisPin,OUTPUT);
Serial.begin(9600);

}

void loop() {
{lcd.init(); // initialize the lcd
lcd.init();
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(1,0);
lcd.print("messwert");

}
// put your main code here, to run repeatedly:
messwert=analogRead(A0);
Serial.print("messwert:");

Serial.println(messwert);

if (messwert<220){
digitalWrite (relaisPin, HIGH);
delay(100);
} else {
digitalWrite (relaisPin, LOW);
}

}

ich hab noch ein relai eingebaut das eine pumpe betreibt wenn die bodenfeuchtigkeit zu niedrig ist

Mach mal bitte folgendes:
gehe nochmal in das post, markiere den Code und klicke oben auf das </> Symbol. Danke !

Hallo
Da fehlt eine Zeile
lcd.print(messwert);
Du zeigst den Text 'Messwert " an aber den Wert selbst nicht
Heinz

unsigned int messwert = 0;
const byte relaisPin = 8;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 20, 4); // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
  // put your setup code here, to run once:
  pinMode (relaisPin, OUTPUT);
  Serial.begin(9600);
  lcd.init(); // initialize the lcd
  lcd.backlight();
}

void loop()
{
  messwert = analogRead(A0);
  lcd.setCursor(1, 0);
  lcd.print("messwert:           ");
  lcd.print(messwert);
  Serial.print("messwert:");
  Serial.println(messwert);
  // Das hier kann zum flattern führen
  if (messwert < 220)
  {
    digitalWrite (relaisPin, HIGH);
    delay(100);
  }
  else
  {
    digitalWrite (relaisPin, LOW);
  }
}

Nicht vergessen, oben den Code richtig einzubinden, dann versuchen wir das delay() da raus zu bekommen und das mögliche flattern abzustellen....

int messwert=0;
const int relaisPin = 8;
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display


void setup() {
  // put your setup code here, to run once:
pinMode (relaisPin,OUTPUT);
 Serial.begin(9600);

}

void loop() {
  {lcd.init();                      // initialize the lcd 
  lcd.init();
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(1,0);
  lcd.print("messwert");

}
  // put your main code here, to run repeatedly:
messwert=analogRead(A0);
Serial.print("messwert:");

Serial.println(messwert);

if (messwert<220){
  digitalWrite (relaisPin, HIGH);
  delay(100);
} else {
           digitalWrite (relaisPin, LOW);
}

}

ich hab jetzt ihren code eingeben aber am diplay steht nur messwert:

wie kann ich den messwert anzeigen lassen?

Moin
Überrprüfe die Anordnung der "{}" Klammern. Dabei hilft das Formatierungswerkzeug CNTRL T im IDE.
In der Loop werden keine Werte zum Display kopiert/geschrieben.

Nein, das ist nicht mein Code.
Der sieht ganz eindeutig anders aus.
Und nochmal mit einer festgesetzten Position für die Ausgabe:

unsigned int messwert = 0;
const byte relaisPin = 8;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 20, 4); // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
  // put your setup code here, to run once:
  pinMode (relaisPin, OUTPUT);
  Serial.begin(9600);
  lcd.init(); // initialize the lcd
  lcd.backlight();
}

void loop()
{
  messwert = analogRead(A0);
  lcd.setCursor(1, 0);
  lcd.print("messwert:           ");
  lcd.setCursor(10,0);
  lcd.print(messwert);
  Serial.print("messwert:");
  Serial.println(messwert);
  // Das hier kann zum flattern führen
  if (messwert < 220)
  {
    digitalWrite (relaisPin, HIGH);
    delay(100);
  }
  else
  {
    digitalWrite (relaisPin, LOW);
  }
}

danke für die Hilfe Fuinktionert jetzt
MFG Andreas

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