Mit einem Knopf die Zahl auf dem Display Reseten

Hallo,

ich hab hier gleich 2 fragen da ich mich mit Programmieren noch gefühlt gar nicht auskenne.

Wie es gedacht war das es Funktioniert: Ich wollte mir für meine Softair einen Schuss Zähler programmieren mit zwei knöpfen, Knopf 1 soll die zahl auf dem OLED Display senken und wenn diese bei null gelangt soll die Null blinken.
Wenn ich jetzt Knopf 2 drücke soll auf dem Display wieder 150 stehen, was aber unabhängig zur null ist, weil ich gerne z.b. wenn auf dem Display 46 steht und ich denn Knopf 2 drücke soll da dann auch 150 stehen.

Falls mir jemand helfen könnte, das wäre mega.

Ps: ich hab einen Arduino Nano v3

#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
Adafruit_SSD1306 display(128, 32);

int counter=11;
int Resetval;
const int knopfpin=8;
const int Resetpin=9;
const int ledleer=10;
bool estPress=1;
bool estnoPress=1;

void setup() {
  pinMode(knopfpin, INPUT_PULLUP);
  pinMode(Resetpin, INPUT);
  delay(100);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.setRotation(0);
  display.setTextColor(WHITE);
  display.dim(false);
  {
    display.clearDisplay(); 
    display.setTextSize(2);
    display.setTextColor(WHITE);
    display.setCursor(6,8);
    display.println("Test");
    display.display();
    delay(2000);
  }

}

void loop() {
  Resetval=digitalRead(Resetpin);
  estPress=digitalRead(knopfpin);
  if((estnoPress==1 && estPress==0)|| counter==11){
    counter--;
    if(counter<1){
    display.clearDisplay();
    display.setTextSize(2);
    display.setCursor(0, 8);
    display.print("Ammo:");

    display.setTextSize(3);
    display.setTextColor(WHITE);
    display.setCursor(60, 5);
    display.print("!0!");
    display.display();
    delay(150);
    counter=0;
      
      }
       
    display.clearDisplay();
    display.setTextSize(2);
    display.setCursor(0, 8);
    display.print("Ammo:");
    display.setTextSize(3);
    display.setCursor(60, 5);
    display.print(counter);
    display.display();
  }
delay(20);
estnoPress=estPress;
}
const int ledleer=10;

Ich finde nichts weiter dazu im Code. Fehlt da was, oder muss noch aufgeräumt werden?

Wozu brauchst Du die delay()?

Wo versuchst Du 150 anzuzeigen?

Das mit den 150 ist egal, weil im Code noch Counter = 11 steht und der zeigt dann auf dem Display 10 an.

Das mit dem delay ich hab da einige eingebaut welche meinst du?

da fehlt praktisch der Code wo, wenn ich den Reset Knopf drücke, dass er dann zur ursprünglichen zahl geht in dem fall 10.

Hallo,

verstehe ich jetzt nicht ganz: dann bau den "Reset"-Knopf doch ein.
Du hast den Zähltaster doch auch eingebaut...

Gruß aus Berlin
Michael

Hi

Und bitte nenne den Knopf anders - einen Reset-Knopf gibt's auf dem Arduino selber schon - und wenn man Den drückt, beginnt der Sketch von Vorne.

MfG