Arduino Leonardo Zwei taster zwei-kanal-Relais-Modul

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);
}