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
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
- den buttonpushcounter würde ich gleich beim verändern auf den gültigen bereich begrenzen
quote
- 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.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:
- 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
Post a Comment