Hallo,
unten ist mein bisheriger Code angefügt. Ich möchte mit dem Code mit dem Select-Button zwischen Tempertur und Fahrenheit wechseln können. Mit diesen if-Bedingungen funktioniert, das nur wenn ich den Button gedrückt halte.
Kann mir Jemand vllt weiterhelfen?
Vielen Dank!
#include "DHT.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
DHT dht(A5, DHT11);
int State = 0;
int BUTTONS = A0;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
dht.begin();
display();
}
void loop() {
if (analogRead(BUTTONS) >=1000){
State=1;
display();
}
if ((analogRead (BUTTONS)>700) && (analogRead (BUTTONS)<1000)){
State=2;
display();
}
if (analogRead (BUTTONS)<=700){
State=3;
display();
}
}
void display() {
switch (State) {
case 1:
action1();
break;
case 2:
action2();
break;
default:
action3();
break;
}
}
...
Danke schonmal.
Ich bin nicht davon ausgegangen, dass die relevant wären und sie ein wenig unübersichtlich ist, da es das anzeigt, was es soll und ich keine Änderung an den Variablen vornehme. Hier ist der Rest des Codes
das Aber ist die Einstufung, wann was umschalten soll.
Um die Schaltpunkte richtig zu treffen, kannst Du Dir nur die Ausgabe von den gedrückten Tasten und keiner gedrückten taste geben.
Also folgender Code startet ohne gedrückte taste mit einer Ausgabe.
Mit jeder gedrückten Taste muss sich die Zahl ändern.
Wen Du alle Tasten durch hast, kannst Du damit ein Array füllen.
Also -> erste Ausgabe ohne gedrückte Taste, Wert aufschreiben
Dann mit jeder gedrückten Taste den zugehörigen Wert aufschreiben,
Dann hier damit melden, dann bau ich das fertig.
Den Versuch hatte ich auch schon gemacht, aber dann habe ich das gleiche Porblem, dass der nur bei Farhenheit stehen bleibt, solange ich den Button gedrückt halte. Sobald ich loslasse springt es wieder zu °C zurück.
Das ist richtig.
Damit geht Dein default: nicht.
Aber meiner sollte ja schon so ungefähr richtig gewesen sein
Ich nehm jetzt up und down für die Umschaltung °C/°F und Right für programm.