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);
}
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.
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.
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:
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.
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/