Tastatur um Stunden einer Uhr einzustellen


guten tag zusammen!


mein ziel ist es mit zwei tasten die stunden einer uhr einzustellen.


taste : 00 bis 23
taste down: 23 bis 00

es klappt jedenfalls nur zum teil.

ich finde den fehler leider nicht selber.

stefan

code: [select]




// sketch um von 00 bis 23 zu zaehlen bei taste up
// und wieder von 23 bis auf 00 bei taste down


const int  button_up_input = 9;                                    // taste = eingang 9
const int  button_down_input = 8;                                  // taste down = eingang 8


int state_button_down = digitalread(button_up_input);            // lese pushbutton down von input pin:
int state_button_up = digitalread( button_down_input);           // lese pushbutton von input pin:

int buttonpushcounter = 00;                                        // taehler fur tasten druecke
int buttonstate_up = 0;                                            // aktueller status der taste
int buttonstate_down = 0;                                          // aktueller status der taste
int lastbuttonstate = 00;                                          // vorheriger status der taste

long lastdebouncetime = 0;                                         // das letze mal als der ausgang pin geaendert wurde

void setup() {

  serial.begin(115200);

  pinmode(button_up_input, input);                                // initialisiere den button pin als eingang:
  pinmode(button_down_input, input);                               // initialisiere den button pin1 als eingang:

  serial.println("sunden:");

  serial.println(lastbuttonstate);
}

void loop() {

  buttonstate_up = digitalread(button_up_input);
  buttonstate_down = digitalread(button_down_input);

  if (buttonstate_up != lastbuttonstate) {                   // vergleiche buttonstate mit vorherigem status

    if (buttonstate_up == high)  {                             // wenn sich der status geaendert hat dann increment counter

   

      buttonpushcounter++;

      serial.println(buttonpushcounter);
    }

    delay(250);
  }

  lastbuttonstate = buttonstate_up;                      // speichere aktuellen status als letzten status , fuer nchsten durchlauf im loop



  if (buttonstate_down != lastbuttonstate) {              // vergleiche buttonstate mit vorherigem status

    if (buttonstate_down == high) {                       // wenn sich der status geaendert hat dann decrement counter

      buttonpushcounter -= 1;

      serial.println(buttonpushcounter);
    }

    delay(50);

    if (buttonpushcounter < 10) {

      serial.print("0");
    }

    if (buttonpushcounter > 10) {

      serial.print("");

    }

    if (buttonpushcounter < 1) {

      buttonpushcounter = 00;

    }

    if (buttonpushcounter > 22) {

      buttonpushcounter = 22;

    }
  }
  lastbuttonstate = buttonstate_down;                    // speichere den aktuellen status als letzen status, fuer naechssten durchlauf im lopp
}



- für 2 tasten solltest du auch 2 * lastbuttonstate variable spendieren

quote
code: [select]
int state_button_down = digitalread(button_up_input);            // lese pushbutton down von input pin:
int state_button_up = digitalread( button_down_input);           // lese pushbutton von input pin:
- funktionsaufrufe in der definition von globalen variablen willst du nicht wirklich. wann sollen die aufgerufen werden ? in setup() wäre früh genug, und sogar noch überflüssig.

- den buttonpushcounter würde ich gleich beim verändern auf den gültigen bereich begrenzen


Arduino Forum > International > Deutsch (Moderator: uwefed) > Tastatur um Stunden einer Uhr einzustellen


arduino

Comments