Taster korrekt ansteuern Arduino Nano

Hallo gemeinsam ich brauche da ein bisschen Hilfe.

ich habe ein Problem das ich mit einem Tastendruck den wert i um eins erhöhen will.

Wenn ich aber in dem Serial Monitor rein gehe sehe ich nur wie er automatisch ohne den Taster zu drücken hochzählt, außerdem fängt er nicht bei 1 an.

Ich verwende ein Arduino Nano (Original)
Software ist : Arduino 1.8.19
Der Taster ist korrekt angeschlossen (Mit Multimeter getestet).
5V zum Eingang Taster, raus aus Ausgang zu A6 in Arduino.
Warum ich Analog und nicht Digital Eingang genommen habe ist weil bei beidem das gleiche raus kommt.

Hier mein Code:

int i = 1;

void setup() {
  pinMode(A6, INPUT);
  Serial.begin(9600);
}

void loop() {
  if (analogRead(6) == HIGH) {
    // Warten, bis der Taster losgelassen wird, um mehrfache Inkremente zu vermeiden
    while (analogRead(6) == HIGH);

    i++;
    delay(200);  // Erhöhte Verzögerung für die Entprellung
    Serial.println(i);
    
    if (i == 21) {
      i = 1; // Nur zurücksetzen, wenn i 21 erreicht
    }
  }
}

A6, A7 sind reine Analoge Pins bei Nano R3 ,

hier versuchst du Pin D6 lesen :wink:

Da fehlt wohl der Widerstand gegen GND.
So hängt bei geöffnetem Taster der Eingang "in der Luft" und wirkt als Antenne, die alle (un)möglichen Signale einfängt.

Gruß Tommy

1 Like

Wenn man sich die Beispiele in der IDE anschaut, dann könnte das doch so einfach sein. :wink:

1 Like

tut er :wink: die erste Ausgabe erfolgt aber erst nach dem ersten Tastendruck bzw nach dem ersten Hochzählen... ergo 2

Genauso im zweiten Durchgang: Tastendruck => Ausgabe '21' (danach wird i sofort 1) => Tastendruck => Ausgabe '2'

Hallo
Letztlich wird es Sinn machen wenn Du den Taster noch vernünftig entprellst und eine Flankenauswertung mit einbaust

Für beides gibt es Beispiele in der IDE

Warum wenn entprellt noch ein Flankenauswertung?

Ich habe jetzt den Taster Ausgang durch ein widerstand auf Masse gelegt und zusätzlich vor dem widerstand (Taster ausgang) auf Digital pin 6 gesetzt und den code angepasst. es funktioniert. Ich danke für alle die mir geholfen haben.

Und wie hast du den Pullup Widerstand angeschlossen ?

Ich habe einfach den taster Ausgang nochmal mit Widerstand auf GND gelegt mehr nicht.

Das ist kein Pullup.
Wenn du den Pin mit dem Tasten auf GND legst, dann brauchst du einen Pullip (gegen +).
Bei deiner Schaltung hast du immer GND auf dem Pin und so funktioniert das def. nicht.
Jedenfalls nicht wie du das meinst.

Also 5V --> Taster --> Eingang --> Widerstand --> GND
Das würde passen.
Der Widerstand ist dann ein PullDown.

Gruß Tommy

genau so habe ich es nur das ich am Widerstand noch den D6 habe zum Arduino nach Taster

Das ist das, was ich mit "Eingang" (== D6) bezeichnet habe.

Gruß Tommy

Zeige doch mal ein Schaltbild wie du es tatsächlich hast .
Du widersprichst dir.

Ok, das ist dann ein Pulldown.
Du solltest dann deinen Post#8 auch noch berichtigen, da steht es anders.

Hab wohl vergessen widerstand zwischen zu schreiben

Na gut.
So passt es.

Da solltest du nochmal drüber nachdenken!

1 Like