Hallo nochmal an alle,
danke für den Tipp mitm entprellen - habe an beide Taster noch 5 1K widerstände in Reihe gegen Masse geschalten (Was anderes hatte ich nicht da) nun bekomme ich saubere signale und bin auch schon einen schritt weiter.
ich wollte eine Schalter Lösung für meine Taster (also einmal drücken Schaltet mein Relais1 ein ein zweites mal drücken schaltet mein Relais1 aus)
mein Gedanke
Wenn der Taster Gedrückt wird, Variable um 1 hochzählen
Prüfen ob Variable Wert 1 hat
- wenn Ja -
Ausgang xy Low - wenn Nein -
Ausgang xy High
Prüfen ob Variable Wert 2 hat
- wenn Ja -
Variable auf 0 setzen
Die Umsetzung habe ich dann so gelöst
(weis als laie ja nicht ob es nicht eleganter gegangen wäre aber es läuft)
nun muss ich noch den ausgang relais 2 gleichsetzen, dann ist die erste hürde gepackt
Edit:
jetzt habe ich schon das nächste problem, wenn man auf dem Taster bleibt schaltet der ausgang ständig // wenn ich die Delay am ende erhöhe könnte man länger am taster bleiben, aber eigentlich wollte ich die komplett raus schmeissen, aber ohne die geht es über haupt nicht - kann mir da jemand nen tip geben?
const int taster1 = 3; // Abwärtsbutton
const int taster2 = 7; // Stop-button
const int taster3 = 5; // Aufwärtsbutton
//Relais
const int relais1 = 8;
const int relais2 = 12;
//Variable, werden geändert
int taster1status = 0; // Variable für den taster1
int taster2status = 0; // Variable für den taster2
int taster3status = 0; // Variable für den taster3
int zaehler1 = 0; // Variable zähler 1
int zaehler2 = 0; // Variable zähler 1
int zaehler3 = 0; // Variable zähler 1
// PIN Eigenschaften I/O
void setup ()
{
// serielle kommunikation mit 9600 bits per second:
Serial.begin(9600);
//Pins Eigenschaften zuweisen Outputs
pinMode (relais1, OUTPUT);
pinMode (relais2, OUTPUT);
//Pins Eigenschaften zuweisen Inputs
pinMode (taster1, INPUT);
pinMode (taster2, INPUT);
pinMode (taster3, INPUT);
}
void loop()
{
//Status von taster1 einlesen
taster1status = digitalRead(taster1);
taster3status = digitalRead(taster3);
//Überpüfen ob taster1 gedrückt
//Wenn gedrückt taster1status HIGH Setzte Relais1 Low um Relais zu schalten
if (taster1status == HIGH)
{
//Wert der Variable um 1 erhöhen
zaehler1 ++;
}
//Prüfen ob Variable Wert 1 hat
if (zaehler1 == 1)
{
//Relais1 einschalten
digitalWrite(relais1, LOW);
}
else
{
//Relais1 abschalten
digitalWrite(relais1, HIGH);
}
//Überpüfen ob taster3 gedrückt
//Wenn gedrückt taster1status HIGH Setzte Relais1 Low um Relais zu schalten
if (taster3status == HIGH)
{
//Relais2 einschalten
digitalWrite(relais2, LOW);
}
else
{
//Relais2 abschalten
digitalWrite(relais2, HIGH);
}
//Prüfen ob Variable Wert 2 hat
if (zaehler1 == 2)
{
//Variable Wert 0 zuweisen
zaehler1 = 0;
}
Serial.println(zaehler1);
delay(250);
}