Forum: Mikrocontroller und Digitale Elektronik Anzeigeproblem bei LCD Display


von Gabriel T. (Gast)


Lesenswert?

Guten Abend

Ich sitze hier von einem Problem und weiss nicht weiter. Ich habe einen 
MQ-2 Sensor, welcher an den Arduino angeschlossen ist. Dazu verwende ich 
ein lcd Display. Der Warnton erfolgt über einen Buzzer. Ist der Wert vom 
Sensor (sensorThres) unter 400, erscheint die Meldung auf dem Display " 
- Wert ok. Soweit so gut. Jetzt möchte ich aber, dass wenn der Wert 400 
überschreitet, auf dem Display " - nicht ok" angezeigt wird, inklusive 
mit dem Buzzer, welcher einen Ton ausgibt.

Wie bringe ich das zustande, dass die Warnmeldung (nicht ok) angezeigt 
wird, und die erste Meldung (Wert ok) sozusagen gelöscht wird, und diese 
erst wieder angezeigt wird, wenn der Wert unter 400 ist?

Der Sketch sieht folgendermassen aus:


#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

const int gas = A0;
int  buzzer = 8;
int sensorThres = 400;
void setup()
{
lcd.begin();
}

void loop()
{
  int analogSensor = analogRead(A0);
tone(buzzer, 1000);
lcd.setCursor(0,0);
lcd.print("MQ-2 Sensor 1");
lcd.setCursor(0,1);
lcd.print(analogRead(gas));

if(analogSensor < sensorThres)
{
  lcd.print(" - Wert ok");

}

if(analogSensor > sensorThres)
{
  lcd.print(" - nicht ok");
  tone(buzzer, 1000);
  delay(100);
  tone(buzzer, 1000);


}
}

Ich denke, für Profis stellt sich schnell heraus, dass dieser Sketch von 
einem Anfänger geschrieben wurde. Was könnte ich bezogen auf die 
Übersicht etc. verbessern?

Danke für Eure Antworten:)

Mfg und noch einen schönen Abend, Gabriel

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Gabriel T. schrieb:
> lcd.print(analogRead(gas));

Was soll das? Warum gibst Du da nicht "analogSensor" aus?

von Teo D. (teoderix)


Lesenswert?

Entweder exakt an der selbe Displaystelle anzeigen, also alles 
überschreiben. Das heißt Cursorposition setzen, in Basic hieß der Befehl 
dazu "LOCATE". Oder das gesamte Display löschen.

von Gabriel T. (Gast)


Lesenswert?

Weil es ja (korrigier mich bitte, wenn ich falsch liege) es keinen 
Unterschied macht, welches ich jetzt verwende...

von Gabriel T. (Gast)


Lesenswert?

Teo D. schrieb:
> Entweder exakt an der selbe Displaystelle anzeigen, also alles
> überschreiben. Das heißt Cursorposition setzen, in Basic hieß der Befehl
> dazu "LOCATE". Oder das gesamte Display löschen.


Danke es hat geklappt:)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.