Digitaleingang Taster Hilfe

Ich habe ein kleines Problem. Ich habe einen einfach Taster an den 3,3V angeschlossen welcher auf einen Digitaleingang geht. Wenn ich den Taster betätige wird auch eine 0 gesetzt allerdings 1,5 sek. später nochmals und das so weiter ca. 3-4x.
Wo könnte da der Fehler sein? Den delay habe ich gemacht falls der Taster prellt oder so aber auch das hilft nichts.

  if (ResetState == HIGH) {
    Counter1 = 0;
    Serial.println(Counter1);
    delay(1500);
  }

Falls es noch wichtig ist das gesamte Skript.

/* 
Zähler 1 
*/

// constants won't change. They're used here to set pin numbers:
const int Sensor = 2;            // Sensor
const int Reset = 4;             // Reset
const int Rechtslauf = 9;        // Rechtslauf

// Variables will change:
int SensorState = 0;            // Sensor
int ResetState = 0;             // Reset
int RechtslaufState = 0;        // Rechtslauf

int lastSensorState = 0;

int Counter1 = 0;  // Zähler 1


void setup() {
  // initialize as a input:
  pinMode(Sensor, INPUT);            // Sensor
  pinMode(Reset, INPUT);             // Reset
  pinMode(Rechtslauf, INPUT);        // Rechtslauf

  // initialize serial communication:
  Serial.begin(38400);
}


void loop() {
  // digitalRead:
  SensorState = digitalRead(Sensor);                      // Sensor
  ResetState = digitalRead(Reset);                        // Reset
  RechtslaufState = digitalRead(Rechtslauf);              // Rechtslauf

// Reset Zähler 1
  if (ResetState == HIGH) {
    Counter1 = 0;
    Serial.println(Counter1);
    delay(1500);
  }

  // Zähler 1 hochzählen
  if (RechtslaufState != HIGH && (SensorState != lastSensorState)) {
    if (SensorState == HIGH) {
      Counter1 += 1;
      Serial.println(Counter1);
    }
  }

  // Zähler 1 runterzählen
  if (RechtslaufState == HIGH && (SensorState != lastSensorState)) {
    if (SensorState == HIGH) {
      Counter1 -= 1;
      Serial.println(Counter1);
    }
  }

  lastSensorState = SensorState;
}

Was für Board, wie ist der Taster angeklemmt?

Board ist ein Uno R3.
Spannungsversorgung 9V Netzteil.

1x Taster Reset geht von den 3,3V über den Taster zum Digitaleingang 4
1x Sensor geht von 5V auf den Digitaleingang 2
1x Taster für Rechtslauf geht auch über die 5V auf den Digitaleingang 9

Mach mall alle Taster

 pinMode(Sensor,  INPUT_PULLUP);

und schalte den über GND, ohne Widerstand hast dir schöne Antenne gebaut.
Beispiel
https://docs.arduino.cc/tutorials/generic/digital-input-pullup/
und warum zu 3,3V geklemmt?
Aufpassen du maust den Taster auf LOW auslesen = Wen betätigt gibt es low nicht high

1 Like

Alles klar, vielen Dank für die schnelle Hilfe

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.