Mit 8 Tastern 8 Relais Board steuern.

Ich will mit 8 Drucktastern es so hinbekommen, dass ich quasi jedem Relais einen Taster zuordne und alle 8 Relais unabhängig voneinander schalten kann.

Diese sollen dann also bei einmal drücken anziehen und wenn ich nochmal drücke wieder trennen.

Ich habe es bisher nur hinbekommen mit einem Taster eine Rotgrün LED zu bedienen.

Bei mehr kriege ich es ums Verrecken nicht hin!

Ich habe den Aufbau eines entprellten Tasters genommen, also mit Widerstand auf gnd gelegt, dann die andere Seite auf 5V und noch ein Kabel von der GND Seite, allerdings vor dem Widerstand auf Pin 2.

Der Sketch dazu sieht so aus:

// this constant won't change:
const int  buttonPin1 = 2;    // the pin that the pushbutton is attached to
const int ledPin = 13;       // Rote Seite
const int led2Pin = 12;     //Grüne Seite
// Variables will change:
int buttonPushCounter = 0;   // counter for the number of button presses
int buttonState = 0;         // current state of the button
int buttonState2 = 0;
int lastButtonState = 0;     // previous state of the button

void setup() {
 // initialize the button pin as a input:
 pinMode(buttonPin1, INPUT);
 pinMode(buttonPin2, OUTPUT);
 // initialize the LED as an output:
 pinMode(ledPin, OUTPUT);
 pinMode(led2Pin, OUTPUT);
 // initialize serial communication:
 Serial.begin(9600);
}


void loop() {
 // read the pushbutton input pin:
 buttonState = digitalRead(buttonPin1);
 buttonState2 = digitalRead(buttonPin2);

 // compare the buttonState to its previous state
 if (buttonState != lastButtonState) {
   // if the state has changed, increment the counter
   if (buttonState == HIGH) {
     // if the current state is HIGH then the button went from off to on:
     buttonPushCounter++;
     Serial.println("on");
     Serial.print("number of button pushes: ");
     Serial.println(buttonPushCounter);
   } else {
     // if the current state is LOW then the button went from on to off:
     Serial.println("off");
   }
   // Delay a little bit to avoid bouncing
   delay(50);
 }
 // save the current state as the last state, for next time through the loop
 lastButtonState = buttonState;


 // turns on the LED every four button pushes by checking the modulo of the
 // button push counter. the modulo function gives you the remainder of the
 // division of two numbers:
 if (buttonPushCounter % 2 == 0) {
   digitalWrite(ledPin, HIGH);
   digitalWrite(led2Pin, LOW);
 } else {
   digitalWrite(ledPin, LOW);
   digitalWrite(led2Pin, HIGH);
 }
}

Meine Frage:

Ist dieser Sketch überhaupt für mehrere Taster erweiterbar?

Wie muss ich die weiteren Taster anschließen?

Wie muss der Sketch aussehen?

Ich habe halt noch relativ wenig Ahnung davon. (Habe das Set seit zwei Wochen)

Ach so die acht Taster habe ich bisher so Verdrahtet: Gemeinsamer Massepunkt für alle Taster und dann jeweils einzelne Leitungen rausgeführt.

Ich komme halt beim weiteren Verlegen nicht weiter.

Setze deinen Sketch bitte in Code-Tags, damit wir den alle richtig lesen können.
Verwende die Schaltfläche </> oben links im Editorfenster.
Der Sketch lässt sich sicher auf mehr Tasten erweitern.
Und du brauchst eine Statusvariable, in der du den aktuellen Zustand der Led speicherst.

Wie geht das denn mit Variablen?

Der Unterschied zum Relais ist ja, dass man das Relais mit enable steuert oder nicht?

Ich habe da wie gesagt so gut wie keine Ahnung von.

Was verstehst du an Code-Tags nicht ?

// this constant won't change:
const int  buttonPin1 = 2;    // the pin that the pushbutton is attached to
const int  buttonPin2 = 4;   //Power Supply for button
const int ledPin = 13;       // the pin that the LED is attached to
const int led2Pin = 12;
// Variables will change:
int buttonPushCounter = 0;   // counter for the number of button presses
int buttonState = 0;         // current state of the button
int buttonState2 = 0;
int lastButtonState = 0;     // previous state of the button

void setup() {
  // initialize the button pin as a input:
  pinMode(buttonPin1, INPUT);
  pinMode(buttonPin2, OUTPUT);
  // initialize the LED as an output:
  pinMode(ledPin, OUTPUT);
  pinMode(led2Pin, OUTPUT);
  // initialize serial communication:
  Serial.begin(9600);
}


void loop() {
  // read the pushbutton input pin:
  buttonState = digitalRead(buttonPin1);
  buttonState2 = digitalRead(buttonPin2);

  // compare the buttonState to its previous state
  if (buttonState != lastButtonState) {
    // if the state has changed, increment the counter
    if (buttonState == HIGH) {
      // if the current state is HIGH then the button went from off to on:
      buttonPushCounter++;
      Serial.println("on");
      Serial.print("number of button pushes: ");
      Serial.println(buttonPushCounter);
    } else {
      // if the current state is LOW then the button went from on to off:
      Serial.println("off");
    }
    // Delay a little bit to avoid bouncing
    delay(50);
  }
  // save the current state as the last state, for next time through the loop
  lastButtonState = buttonState;


  // turns on the LED every four button pushes by checking the modulo of the
  // button push counter. the modulo function gives you the remainder of the
  // division of two numbers:
  if (buttonPushCounter % 2 == 0) {
    digitalWrite(ledPin, HIGH);
    digitalWrite(led2Pin, LOW);
  } else {
    digitalWrite(ledPin, LOW);
    digitalWrite(led2Pin, HIGH);
  }
}

Da haste nochmal ordentlich.

Marino_needing_help: Da haste nochmal ordentlich.

Wieso ich, du willst doch Hilfe.

Und wieso hast du den Buttonpin2 als Output definiert ?
Das kann nicht funktionieren.

Irgendwie überschneidet sich jetzt hier alles mit diesem Thread.

Das ist noch ein Teil eines Tests, der nicht funktioniert hat.

Aber auch, wenn ich ihn als Input setze, bekomme ich ihn nicht ausgelesen ohne dass er beim buttonPin1 mitmischt und die Led auch schaltet.

Ich bekomme das einfach nicht getrennt.

Ich habe seit 4 Stunden probieren immer das Gleiche Ergebnis.

Moko: Irgendwie überschneidet sich jetzt hier alles mit diesem Thread.

Stimmt, nur die Fragestellung ist eine andere.

K.A. warum der TO das gemacht hat.

Marino_needing_help: Das ist noch ein Teil eines Tests, der nicht funktioniert hat.

Aber auch, wenn ich ihn als Input setze, bekomme ich ihn nicht ausgelesen ohne dass er beim buttonPin1 mitmischt und die Led auch schaltet.

Ich bekomme das einfach nicht getrennt.

Ich habe seit 4 Stunden probieren immer das Gleiche Ergebnis.

Und das hatte ich dir im anderen Thread schon geschrieben.

Mist...wenn das so quer läuft......