Click Button Lib

Nabend...
Habe nicht längst die ClickButton Lib gefunden und muss sagen, gefällt mir besser als die OneButton Lib,
Alles gelötet und programmiert, getestet... funktioniert.
Nur funktioniert es auch dann, wenn nix gedrückt wird.
Ich denke es liegt an dem PULLUP Widerstand, oder? Wenn man ein externen 10k PULLDOWN Widerstand anbringt, sollte es ja nicht mehr passieren, oder liegt es garnicht an dem?
Hier gibts die Lib: https://code.google.com/p/clickbutton/

Und wie sollte man den Widerstand anbringen?
Habe +5V eine Seite
Dann vom Pin 3 zu andere Seite und 10k mit GND verbunden.

Schau dir das Beispiel an:

The circuit:
  - LED attached from pin 10 to resistor (say 220-ish ohms), other side of resistor to GND (ground)
  - pushbutton attached from pin 4 to GND
  No pullup resistor needed, using the Arduino's (Atmega's) internal pullup resistor in this example

Taster gegen GND schalten, der interne Pullup wird durch diese Anweisung aktiviert:

ClickButton button1(buttonPin1, LOW, CLICKBTN_PULLUP);

Richtig, hatte ich gelesen und verstanden.
Da ich ja Probleme mit dem "Geist" hab, der den Taster drückt, gegen mein Willen, dachte ich ein PULLDOWN anzubringen.

Also wie bringt man den Widerstand an und was muss dann im Code geändert werden?
Hatte probiert:

ClickButton button1(buttonPin1, LOW);
ClickButton button1(buttonPin1, HIGH);
ClickButton button1(buttonPin1, LOW, CLICKBTN_PULLUP);
ClickButton button1(buttonPin1, HIGH, CLICKBTN_PULLUP);

Da hilft nur ein Blick in die Library.

ClickButton button1(buttonPin1, LOW, CLICKBTN_PULLUP);

Dies bedeutet, dass auf LOW getrigegrt wird, während der interne Pullup aktiviert ist. Die Variante HIGH und aktivierter Pullup würde ja dafür sorgen, dass permanent ausgelöst wird, bzw. innerhalb der Library als langer Klick gewertet wird. Ohne aktiviertem internen Pullup liegt es an dir, das passend zu beschalten, eben durch externe Pullups bzw. Pulldowns.

Habe es nach diesem Bild gelötet http://arduino.cc/en/uploads/Tutorial/button_schem.png
10k Widerstand
So hab ichs im Sketch:

ClickButton button1(buttonPin1, HIGH, CLICKBTN_PULLUP);

Die LED leuchtet permanent.

In dem Fall darfst du den internen Pullup nicht aktivieren.

Wie gesagt, auch so leuchtet die LED permanent:

ClickButton button1(buttonPin1, HIGH);

Schande über mein Haupt :blush:
Nachdem ich das ganze auf dem Steckbrett erfolgreich testen konnte, habe ich die Platine untersucht....
Beim löten hab ich den neben liegenden Pin erwischt, wo zufällig die Led angeschlossen ist, somit war da permanent saft drauf.

Sorry jungs :smiley:

Aber eine Frage bleibt trotzdem...
Woran liegt es, wenn der Taster schaltet obwohl keiner drückt?
Liegt es an dem internen PULLUP?

Aber eine Frage bleibt trotzdem...
Woran liegt es, wenn der Taster schaltet obwohl keiner drückt?
Liegt es an dem internen PULLUP?

Am fehlenden Pullup bzw pulldown. Der Eingang bekommt dann störungen aus der Luft oder von der Nähe derines Fingers ecc.
Grüße Uwe

ClickButton button1(buttonPin1, LOW, CLICKBTN_PULLUP);

Hier wäre ja der PULLUP vorhanden!?
Spielt auch die Kabellänge eine Rolle?

skorpi08:
Spielt auch die Kabellänge eine Rolle?

weniger
Wie lange ist der Kabel?

Lan Kabel ca 10m

Nun hab ich aber anderes Problem :~
Mit kurzen Kabel funktionierts, mit dem 10m Lan Kabel als Stromversorgung aber nicht.
Es kommt 4,8V an. Die Led leuchtet wieder nur permanent.

Liegts an dem 10k? Zu hoch gewählt?

Allgemein sollten man bei langen Leitungen mit Pullups nach unten gehen. Und die internen Pullups haben ca. 30-50k.

Ausprobieren - nimm mal 4k7

Wenn der interne PULLUP bei 30k liegt, wieso gibt dann Störungen und bei dem 10k PULLDOWN mit kurzen Kabel nicht?
Wenn ich mehrere (ca 10) solcher platinen ( Busankoppler) an den Arduino anschließe, reicht der interne PULLUP und gibt es dann weniger Störungen?

Klaus_ww:
Ausprobieren - nimm mal 4k7

Oder zum Testen einfach einen weiteren 10k-Widerstand parallel an den bereits eingelöteten halten.

sth77:

Klaus_ww:
Ausprobieren - nimm mal 4k7

Oder zum Testen einfach einen weiteren 10k-Widerstand parallel an den bereits eingelöteten halten.

Bei beiden dasselbe Ergebnis. Hab ein 39k, 51K und 470 Ohm auch getestet, immer dasselbe.