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
}
}
}
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.
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.
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.