Ok ... dann hau rein .
Zählen mit Taster
-
-
Du verstehst mich miss.
Mein Beispiel ist nur zum Testen. Es ist ja noch nicht fertig.
Es sollen nur die einzelnen Schritte getestet werden.
Aus den einzelnen Schritten/Bausteinen entsteht dann langsam aber sicher das Endprodukt.
Ich muss ja erstmal sehen ob es läuft, bevor ich alles zusammenschraube.
Und es sollen keine Verschlusszeiten eingestellt werden.
Es wird die Zeit zwischen zwei Ereignissen eingestellt.
-
So kannst du es aber nicht ausbauen. Du wirst noch eine zweite Variable für den veränderlichen Summanden (1,10,100,1000.... usw.) brauchen. Da macht die If Bedingung if(zaehler>=10){ keinen Sinn. Du willst ja bestimmt mehr Belichtungszeiten als 1/10 oder sowas einstellen können.
-
Ja, kann erstmal nur mit einem Taster bis 10 zählen.
Ist ja auch nur zum Testen, ob's überhaupt funktioniert.
Darauf wird dann aufgebaut. -
Es wird bei deinem Beispiel nur ein Taster abgefragt. Außerdem kannst du damit nur max. bis 10 zählen.
Da fehlt noch ein bisschen was.
Der Ausdruck if(!digitalRead(taster)==1) ist etwas umständlich. Da kannst Du auch gleich if(digitalRead(taster)==0) oder if(!digitalRead(taster)) schreiben.
-
Hallo zusammen,
danke für die schnelle Antwort.
Viele Wege führen nach Rom 😉
Hatte heute Nacht einen Geistesblitz, und habe es heute Morgen getestet.
Und es macht was ich will.
Nun ist es aber so, dass hinter jedem Berg ein größerer steht. So habe ich nun ein anderes Problem welches gelöst werden muss.
Ich möchte nur zwei Taster verwenden.
Ein Taster schaltet immer weiter, Einer, 10er, 100er und 1000er, plus und minus.
Und der zweite zählt.
Sicher, ich könnte auch mit 8 Tastern arbeiten, aber das möchte ich nicht.
Das Ganze soll eine Zeiteinstellung für Highspeed Fotografie sein.
Ich hänge mal an was ich mir ausgedacht hatte. Die LED ist nur dafür da, dass ich sehe wie der Taster Arbeitet.
MfG
Achim
-
Hallo Achim,
wenn ich Dich richtig verstanden habe, möchtest Du zuerst auf einen Taster drücken und es soll hoch gezählt werden.
Sollte der Taster losgelassen werden soll die Zählung gestoppt werden.
Ich habe einen Taster als INPUT_PULLUP angeschlossen. Siehe beigefügten Code. Vielleicht kannst Du damit zum Start etwas anfangen.Gruß
Hans
-
In der Funktion zaehlen() hast Du eine Schleife die 1001 mal durchläuft bevor sie beendet wird und die Funktion zur loop() Funktion zurückkehrt. Während die Schleife abgearbeitet wird, wird kein Tastendruck ausgewertet. Es sollte reichen, wenn du es so machst:
Also lass die Schleife weg. Loop() ist ja auch eine Schleife. Darin wird die IF Bedingung permanent ausgewertet. Wird ein Tastendruck festgestellt, wird die Funktion zaehlen() aufgerufen, wird die Taste losgelassen, erfolgt kein Aufruf der Funktion.
Durch die „static“ Deklaration der Zählvariable „i“ bleibt ihr Wert auch nach dem Verlassen der zaehlen() Funktion erhalten.
Es wird allerdings nur hochgezählt. Wenn Du die Zählrichtung umschalten willst brauchst Du z.B. noch eine Umschaltertaste, eine Statusvariable für die Zählrichtung und musst entsprechende Bedingungen programmieren. -
Hallo zusammen,
wenn ich einen Taster drücke soll aufgezählt werden, später dann auf und ab und das Ergebnis soll dann in eine Variable geschrieben werden.
Aber erstmal geht es nur ums Prinzip.
Wenn ich den Taster drücke, wird auch gezählt.
Aber es hört nicht auf, wenn ich den Taster loslasse.
Was muss ich machen das nur solange gezählt wird wie auch der Taster gedrückt ist?
MfG
Achim