arduino zähler Zahlt selber welcher fehler

Hallo bei meinem sketch zählt der Zähler selber ohne das ich denn Taster betätige ich suche schon seit stunden nach dem fehler ich weiß nicht mehr weiter

int Speicher = 0;
int Taster = LOW;

const int i = 8;
const int a = 2;
const int b = 3;
const int c = 4;
const int d = 5;
const int e = 6;
const int f = 7;
const int g = 10;
const int h = 9;



void setup() {
 pinMode(2, OUTPUT);
 pinMode(3, OUTPUT);
 pinMode(4, OUTPUT);
 pinMode(5, OUTPUT);
 pinMode(6, OUTPUT);
 pinMode(7, OUTPUT);
 pinMode(10, OUTPUT);
 pinMode(9, OUTPUT);
 pinMode(8, INPUT);
Serial.begin(9600);
}

void loop() {

Taster = digitalRead(i);

if (Taster == HIGH)
{
 Speicher++;
 delay(600);
}
if (Speicher == 0)
{ digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(h, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 digitalWrite(e, HIGH);
}

else if (Speicher == 1)
{ digitalWrite(a, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(e, HIGH);
}

else if (Speicher == 2)
{ digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(g, HIGH);
 digitalWrite(h, HIGH);
 
}

else if (Speicher == 3)
{ digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 digitalWrite(e, HIGH);
}

else if (Speicher == 4)
{ digitalWrite(a, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(e, HIGH);

}

else
{
 Speicher = 0;
}
Serial.println(Speicher);
}

Bitte um hilfe

DerSpletti:
... Bitte um hilfe ...

Dann solltest Du zunächst Deinen Code in „Code-Tags“ fassen. Er ist dann besser lesbar. Du kannst das auch nachträglich tun: Posting bearbeiten wählen ... Code auswählen ... Code-Tag (Symbolleiste ganz links) klicken. Fäddich.

Gruß

Gregor

gregorss:
Dann solltest Du zunächst Deinen Code in „Code-Tags“ fassen. Er ist dann besser lesbar. Du kannst das auch nachträglich tun: Posting bearbeiten wählen ... Code auswählen ... Code-Tag (Symbolleiste ganz links) klicken. Fäddich.

Gruß

Gregor

Danke für die information das wusste ich nicht

Hi, hast Du am Taster-Eingang (pin 8) des Arduino einen Widerstand nach GND angeschlossen? (nennt sich Pull Down)
Wenn nicht liegt der Tastereingang bei nicht gedrückter Taste in Der luft und kann irgendwelche Zustände annehmen. Darum zählt dann der Zähler einfach duch, ohne dass Du die Taste drückst.
Du kannst auch den Taster statt zwischen Eingang Pin8 und +5V, zwischen Eingang Pin 8 und GND anschliessen.
Dann machst Du im Setup:

void setup() {
 pinMode(2, OUTPUT);
 pinMode(3, OUTPUT);
 pinMode(4, OUTPUT);
 pinMode(5, OUTPUT);
 pinMode(6, OUTPUT);
 pinMode(7, OUTPUT);
 pinMode(10, OUTPUT);
 pinMode(9, OUTPUT);
 [b]pinMode(8, INPUT_PULLUP);[/b]
Serial.begin(9600);
}

und die Abfrage des Tasters geht dann so:

[b]if (Taster == LOW)[/b]

Dadurch, dass Du den Taster nach GND schaltest, und den Eingang mit "Input_Pullup" deklarierst, schaltest Du den Internen Pullup-Widerstand im Arduinu ein, und kannst Dir den externen Widerstand sparen.

LG Stefan

Mit

meint Deltaflyer Pin Nr. 8. Die stümperhafte Smilie-Autmatik ist ein bisschen ... äh ... unterbelichtet.

Gruß

Gregor

Wenn man ein Leerzeichen mehr verwendet geht es
pin ( 8 )

@DerSpletti
Wenn Du nicht gerade eine 7 Segmentanzeige ansteuerst dann sind die Variablennamen nicht günstig gewählt da sie wenig aussagekräftig sind. Wenn es einen 7 Segmentanzeige ist dann mußt Du die Segmente auch ausschalten und nicht nur die betreffenden einschalten.
Außerdem Zählst Du so nicht die Anzahl der Tastendrücke sondern bei jedem Loop() ob der Taster gedrückt ist.
https://www.eleccircuit.com/the-button-become-toggle-switch-using-arduino/

Grüße Uwe

Oh, hab grade gesehen: Fett Schrift funktioniert innerhalb Code-Tag's nicht -> oder gibt es da auch nen Trick für?

LG Stefan

Deltaflyer:
Oh, hab grade gesehen: Fett Schrift funktioniert innerhalb Code-Tag's nicht -> oder gibt es da auch nen Trick für?

Nein!

Natürlich nicht.
Code muss unverfälscht rüber kommen!

Maximal die Syntaxerleuchtung ist wünschenswert, aber auch nur dann möglich, wenn die Sprache bekannt ist.

Ah ok. Danke.

Danke Leute das werde ich heute Abend mal ausprobieren. :kissing: