Pages: [1]   Go Down
Author Topic: Anfängerfrage: Zählerfunktion  (Read 3375 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Jr. Member
**
Karma: 1
Posts: 69
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tach,

hab mir auch vor kurzer zeit ein arduino zugelegt und experimentier damit nu ein bischen rum.

Wollte eine Zählfunktion programmieren die bei jedem Tasterdruck einen Wert um 1 erhöht, egal wie lange der Taster gedrückt wurde.

bekomms einfach net hin, wie würdet ihr das realisieren?

danke schon ma im vorraus
greetz
akrlfix
Logged

Weinsberg, Germany
Offline Offline
God Member
*****
Karma: 3
Posts: 773
A Coder's Tale
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Im Prinzip so.

Und bei "// turn LED on:" dann eben den Zähler hochzählen. smiley-wink
« Last Edit: October 25, 2010, 01:07:01 pm by Joghurt » Logged

Stuttgart
Offline Offline
God Member
*****
Karma: 13
Posts: 511
logic enrichments
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Der Trick dabei ist: Beide Zustände des Tasters auszuwerten. Sprich:

Taster betätigt (und bleibt gedrückt), dann ist die erste Bedingung erfüllt.
Taster losgelassen, dann wird erst gezählt. Somit die zweite Bedingung erfüllt.

Oder eben die Situation umkehren: Taster gedrückt, es zählt um eins weiter. Wartet dann bis der Taster wieder losgelassen wurde, bevor es weitergehen kann smiley-wink

Also ein kompletter High-Low Zyklus muss durchlaufen werden, damit die Zählung passiert.

Bedenke jedoch folgendes: Die meisten Taster sind nicht "entprellt". Dies führt unweigerlich zu Fehlzählungen. Diese kann man wiederrum durch Zeitschleifen minimieren.

« Last Edit: October 25, 2010, 01:14:30 pm by Realizer » Logged

Eine Kuh macht muuhh.
Viele Kuehe machen Muehe

Weinsberg, Germany
Offline Offline
God Member
*****
Karma: 3
Posts: 773
A Coder's Tale
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Das kommt dabei raus, wenn man programmiert, im Forum liest und gleichzeitig Fernseh guckt...  ;D

Realizer hat natürlich Recht. smiley-wink
Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Natürlich könnte man jetzt hingehen und sich erst einmal die Beschreibung der Bouce Library anschauen. Dehren Funktion es ist  digitale Eingänge zu entprellen. Und damit auch einen daran angeschlossenen Taster.

Bounce library for Arduino:
http://www.arduino.cc/playground/Code/Bounce
« Last Edit: October 25, 2010, 01:31:02 pm by Megaionstorm » Logged

Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

0
Offline Offline
Jr. Member
**
Karma: 1
Posts: 69
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

habs endlich hinbekommen smiley

funzt ganz gut auch ohne debounce, geht aber bestimmt auch eleganter

Code:
const int buttonPin = 12;

int buttonState = 0;
int counter = 0;
int buttonStateHIGH = 0;

void setup() {
  Serial.begin(9600);
  pinMode(buttonPin, INPUT);    
}

void loop(){
  buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH)
  {    
    buttonStateHIGH = 1;
  }
  if (buttonState == LOW && buttonStateHIGH == 1)
  {
    counter++;
    buttonStateHIGH = 0;
  }
  Serial.println(counter);
}

besten dank für die hilfe

greetz
akrlfix
« Last Edit: October 25, 2010, 01:47:12 pm by Akrlfix » Logged

Pages: [1]   Go Up
Jump to: