Arduino Forum

Forum 2005-2010 (read only) => International => Deutsch => Topic started by: hacky on Jan 03, 2011, 01:20 am

Title: Push Button verwenden?
Post by: hacky on Jan 03, 2011, 01:20 am
Hallo,

wie schließe/nutze ich diesen Button http://www.lipoly.de/index.php?main_page=product_info&products_id=103698

mit meinem Arduino?

Viele Grüße
Title: Re: Push Button verwenden?
Post by: shebu_18 on Jan 03, 2011, 08:04 am
http://arduino.cc/en/Tutorial/ButtonStateChange
Hier hast du ein Beischpiel. Der Button hat auch 2 pins die an jeweils an +5V und an buttonpin un dem widerstand gebunden werden.
Title: Re: Push Button verwenden?
Post by: Megaionstorm on Jan 03, 2011, 09:07 am
Gibt es auch eine Möglichkeit festzustellen mit welcher Geschwindkeit eine Taste gedrückt worden ist ?
Oder benötigt man dafür Spezialbuttons um zwischen langsamem und schnellem niederdrücken unterscheiden zu können ?

Gibt es auch Trackballs welche man zusammen mit dem Arduino verwenden kann ?
In der Grössenordnung wie bei Arcade Videospielautomaten.
Title: Re: Push Button verwenden?
Post by: shebu_18 on Jan 03, 2011, 09:21 am
Was meinst du mit "welcher Geschwindkeit eine Taste gedrückt worden ist ". Die Zeit zwischen 2 tasten druecken, oder die zeit von dem beruhren der taste bis zum schliesen des Kontaktes? Die Zeit zwischen den 2 tsten druecken kann man mit millis() bestimmen. Das andere ist schwiereiger.
Title: Re: Push Button verwenden?
Post by: Megaionstorm on Jan 03, 2011, 09:23 am
Die Zeit vom Berühren bis zum Niedergedrücktsein.
Title: Re: Push Button verwenden?
Post by: sth77 on Jan 03, 2011, 09:33 am
Geht nicht, wie denn auch... Dazu müsste es ja irgendwie eine Rückmeldung geben, wann der Taster berührt wurde. Das könnte man höchstens durch eine kapazitive Eigenbaulösung erreichen, stellt sich nur die Frage, wozu man das gebrauchen kann?
Title: Re: Push Button verwenden?
Post by: Realizer on Jan 03, 2011, 09:39 am
Quote
stellt sich nur die Frage, wozu man das gebrauchen kann?

Ich könnte sowas sogar vielleicht gut gebrauchen, wie ihr ja alles sicher meinen Thread mit dem DAC verfolgt habt, kann man z.B. für Audioerzeugung, bzw dessen Dynamik einen anschlagdynamischen Sensor gebrauchen. Stichwort Drumcomputer.

Oder E-Pianos oder Instrumente die elektronisch erzeugt werden, werden ja in "echt" mit "Gefühl" gespielt.

Kapazitiver Sensor hört sich gut an. Piezo wäre für Drumpads eine eventuelle Lösung. Aber ich will mich hich noch nicht zu weit aus dem Fenster hängen, da ich erst am konstruieren bin. Da kommen mir derartige Fragen und Threads gerade recht ;)

Title: Re: Push Button verwenden?
Post by: Megaionstorm on Jan 03, 2011, 10:02 am
Vielleicht mit einem Taster der zusätzlich einen Schleifkontakt eingebaut hat, wie bei einem Schieberegler !
Title: Re: Push Button verwenden?
Post by: Realizer on Jan 03, 2011, 10:19 am
Ich denke es kommt dabei ganz gewaltig auf sie Anwendung an, die du realisieren willst. Für einen Drumcomputer ist ein Schieberegler eher ungeeignet, weil wird u.U. sehr schnell "gespielt". Für einen Sythesizer wäre die Idee sehr brauchbar.

Was hast du denn vor Megaionstorm ? Vielleicht gibt es ja noch ganz andere Lösungsansätze. Ein optisches Modul beispielsweise. Eine Lichtschranke. Wird der Lichtstrahl langsam oder ganz schnell unterbrochen, kann man auswerten. Oder einen Magnet in einer Spule bewegen. Das Signal lässt auch Rückschlüsse auf die Bewegung schließen. Piezo habe ich schon erwähnt.

Falls du einen Roboter mit Gefühl ausstatten willst ;) - Dehnungsmesstreifen. Oder Srommessung an einem Motor könnte auch Rückschlüsse auf Kraftbeanspruchung geben.
Title: Re: Push Button verwenden?
Post by: hacky on Jan 03, 2011, 10:20 am
Hi,

danke für die Antwort!

Ich könnte also z.B. 9 Buttons an die digital ins anbringen.

Brauche ich dann für jeden Button einen Wiederstand? Ich kenne mich leider micht e-tech nicht aus jedoch hoffe ich es könnte mir jemand logisch erklären.

Viele Grüße
Title: Re: Push Button verwenden?
Post by: saw0 on Jan 03, 2011, 10:28 am
Einen Wiederstand brauchst du gar nicht, wohl aber einen Widerstand:

http://arduino.cc/en/Tutorial/Button

Du kannst natürlich auch einen Schieberegister benutzen, wenn du Pins einsparen möchtest, aber ich denke das ist noch eine Stufe zu hoch.

Was willst du denn eigentlich machen?
Title: Re: Push Button verwenden?
Post by: hacky on Jan 03, 2011, 10:35 am
9 Buttons anbringen :-)

Reicht der eine Widerstand (Wenn ich mich ans Tutorial halte)?

Oder brauche ich einen stärkeren? Die Ohm Formel darf ruhig für die Erklärung verwendet werden,...

Mein e-tech wissen ist rudi mentär mit c jedoch kenne ich mich gut aus...
Title: Re: Push Button verwenden?
Post by: Realizer on Jan 03, 2011, 11:35 am
Quote
Mein e-tech wissen ist rudi mentär mit c jedoch kenne ich mich gut aus...
Bei mir ist es genau umgekehrt ;)

Der eine Widerstand reicht für einen Taster. Du baust die Schaltung ja mehrfach auf (9x). Also 9 x der gleiche Widerstand. 9x Taster und 9 Eingänge die du benutzt.

Berechnen braucht man hierbei nicht viel. Es geht einfach nur darum, den Eingang nicht "offen" zu lassen. wenn der Taster nicht gedrückt wird, muss sichergestellt sein daß LOW am Eingangspin anliegt. (Pulldown)

Oder eben High, wenn der Taster in der umgekehrten Form GND auf den Pin geben soll, dann Widerstand auf +5V (Pullup in diesem Fall).

Dies gilt im Übrigen für alle Bauteile. Lasse Eingänge nie "offen", denn sie beginnen zu schwingen oder jede Störung in der Umgebung kann ein ungewolltes Auslösen des Eingangs zur Folge haben.

Alte Regel, bitte hinter die Ohren schreiben: Eingänge werden immer beschaltet. Und wenn du unbenutzte Eingänge einfach auf GND ziehst.
Title: Re: Push Button verwenden?
Post by: hacky on Jan 03, 2011, 11:51 am
Super vielen lieben Dank für deine hilfreiche Antwort :-)
Title: Re: Push Button verwenden?
Post by: sth77 on Jan 03, 2011, 11:53 am
Schön erklärt, Realizer! Nur noch al Gedankenanstoß: Man kann auch einen internen PullUp aktivieren. Diese sind im Mega328 integriert, man erspart sich damit den zusätzlichen Widerstand auf dem Steckbrett bzw. auf der späteren Platine.
Quote
A pin may also be configured as an INPUT with pinMode, and subsequently made HIGH with digitalWrite, this will set the internal 20K pullup resistors, which will steer the input pin to a HIGH reading unless it is pulled LOW by external circuitry.
Also den Eingang mit pinMode digitalWrite auf High setzen aktiviert den PullUp. Somit muss der Taster nur zur Masse verbinden. Das muss man aber in der Programmierung beachten, dass ein Tastendruck ein Low bewirkt.
Title: Re: Push Button verwenden?
Post by: Realizer on Jan 03, 2011, 12:01 pm
Irgendwas mit dem Internen Pullup hatte ich zwar noch irgendwo im Hinterkopf, war mir aber nicht ganz sicher ohne noch zu recherchieren.  Thanks sth77
Title: Re: Push Button verwenden?
Post by: uwefed on Jan 03, 2011, 05:34 pm
Da hat sich aber ein Fehler eingeschlichen:
Quote
Also den Eingang mit pinMode auf High setzen aktiviert den PullUp.
Mit pinMode definierst Du den Pin als Eingang oder Ausgang.
Wenn Du einen Pin als Eingang definiert hast, aktivierst Du den PullUp-Widerstand durch digitalWrite(Pin, HIGH)
http://arduino.cc/en/Tutorial/DigitalPins
Grüße Uwe
Title: Re: Push Button verwenden?
Post by: sth77 on Jan 03, 2011, 06:00 pm
Ja, habs ja noch in der englischen Version richtig gepostet, aber schneller geschrieben als meine Gedanken dem Getippten folgen konnten. ;) Danke fürs aufmerksame Lesen, ich habe meinen Ursprungsbeitrag dahingehend korrigiert.
Title: Re: Push Button verwenden?
Post by: hacky on Jan 04, 2011, 12:46 pm
Hi,

der Button hat ja unten zwei Kontakte. Ich kann ja einfach zwei Drähte dran löten. Gibt es aber auch eine andere Möglichkeit? Irgendwelche Steckdrähte?

Viele Grüße
Title: Re: Push Button verwenden?
Post by: sth77 on Jan 04, 2011, 01:26 pm
Bei den meisten kleinformatigen Tastern bzw. Schaltern sind die Kontakte als Lötösen ausgeführt, bei größeren Modellen auch zum Aufstecken eines Kabelschuhs. Kann man bei dem verlinkten Taster schlecht erkennen, ich würde die Lötlösung aber vorziehen.
Title: Re: Push Button verwenden?
Post by: saw0 on Jan 04, 2011, 02:22 pm
(http://static.sparkfun.com//images/products/09178-03.jpg)

Hier sieht man die Anschlüsse ein bisschen.

Theoretisch kannst du wohl Kabelschuhe verwenden, ich würde allerdings wirklich wie sth77 schon sagt, löten was du löten kannst.
Title: Re: Push Button verwenden?
Post by: hacky on Jan 05, 2011, 02:57 pm
Hi,

ich muss leider nochmals nachfragen und zwar: Ich habe nun etwas mit diesen Tastern rumgespielt wie in diesem Tutorial http://arduino.cc/en/Tutorial/Button

Hat auch alles gut funktioniert und ich konnte einen Prototyp meiner Anwendung realisieren :)

Der Taster im Tutorial hat vier "Pins" und man verdrahtet drei davon. (5V, Gnd mit Widerstand und Digital Out)

Der verlinkte PushButton hat aber nur zwei Pins. Nun die Frage: Wie muss ich die zwei Pins verdrahten?

Ich habe noch einige andere Dinge ausprobiert und zwar einen Drucksensor, dieser hatte auch nur 2 Pins... Kann ich den PushButton wie in diesem Tutorial http://www.ladyada.net/learn/sensors/fsr.html verdrahten?

Vielen Dank schonmal!
Title: Re: Push Button verwenden?
Post by: sth77 on Jan 05, 2011, 03:50 pm
Nutze das Mausrad! ;) In deinem ersten Link gibt es noch einen richtigen Schaltplan, unter "Schematic". Da siehst du, dass der Taster auch nur 2 Pins brückt.
Der Drucksensor verändert seinen Widerstand, deshalb muss man ihn als Spannungsteiler beschalten und an einen Analogen Eingang hängen.
Title: Re: Push Button verwenden?
Post by: hacky on Jan 05, 2011, 04:50 pm
Ich kann mir denken was er ungefähr bedeutet aber ich bin mir nicht sicher wie ich das löten muss...

Also ein Draht geht von Gnd in den Widerstand und von dort in den 1. Pin des Buttons und der andere Pin wird mit dem Digital Out verbunden?

Title: Re: Push Button verwenden?
Post by: sth77 on Jan 05, 2011, 05:03 pm
(http://arduino.cc/en/uploads/Tutorial/button_schem.png)
Von Masse über einen Widerstand zum Tasterpin und zum Eingang, der abgefragt werden muss. Den anderen Tasterpin direkt an 5V.
Warum sprichst du vom DigitalOut?
Title: Re: Push Button verwenden?
Post by: hacky on Jan 05, 2011, 05:15 pm
Sry input meinte ich :-)

Ok funktioniert dies auch bei den Tastern aus dem Arduino Tutorial? Wenn ja warum haben die aber 3 Pins angeklemmt?

Reicht das Protoshield für 17 Buttons?

http://www.sparkfun.com/products/7914

Vielen Dank!
Title: Re: Push Button verwenden?
Post by: Signal on Jan 05, 2011, 05:20 pm
17 Buttons brauchen 17 Eingänge. Sowie ich das sehe macht das ProtoShield nichts ausser einer Arbeitsfläche bereitstellen.
Du brauchst wohl einen Demultiplexer um soviele Buttons zu erfassen.
http://www.arduino.cc/playground/Learning/4051
Title: Re: Push Button verwenden?
Post by: hacky on Jan 05, 2011, 05:54 pm
Man kann aber die analogen Eingänge auch als digitale Eingänge verwenden... dies sollte doch dann funktionieren oder etwa nicht?

Reichen die "Löcher". Wie realisiert man "zum Tasterpin und zum Eingang" auf dieser Platine?

Title: Re: Push Button verwenden?
Post by: saw0 on Jan 06, 2011, 08:27 pm
Klar funktioniert das.

Quote
Reichen die "Löcher". Wie realisiert man "zum Tasterpin und zum Eingang" auf dieser Platine?



Versteh ich nicht.

Du musst entweder viel planen oder jeden Draht einzeln verlöten.
Benutz du ein Mini-Breadboard oder nur das Protoshield?

Title: Re: Push Button verwenden?
Post by: hacky on Jan 16, 2011, 07:04 pm
Hi,

also ich habe nun genau dies gemacht : "Von Masse über einen Widerstand zum Tasterpin und zum Eingang, der abgefragt werden muss. Den anderen Tasterpin direkt an 5V. " (1)

Das funktioniert auch wunderbar :-)

Jetzt habe ich allerdings mit zwei Fachleuten gesprochen und die meinten ich sollte: Von 5V über einen Widerstand zum Tasterpin und zum Eingang. Der andere Tasterpin an Masse. (2)

Beide Varianten funktionieren. Bei (1) erhalte ich bei drücken des Buttons den Wert "1" und bei (2) den Wert "0".

Hm man kann beides auswerten... aber welche Variante sollte ich nun für mein Projekt nutzen??? Welche technischen Unterschiede gibt es?

Zum löten nutze ich nun eine extra Platine und ich werde einige "Reihen" löten.

Viele Grüße
Title: Re: Push Button verwenden?
Post by: saw0 on Jan 16, 2011, 07:15 pm
Quote
mit zwei Fachleuten gesprochen


Naja... Fachleute in welchem Bereich?
Title: Re: Push Button verwenden?
Post by: sth77 on Jan 16, 2011, 07:57 pm
Prinzipiell ist das egal ob man die normale Logik oder eben die invertierte Logik benutzt. Wenn man bauteile (und damit Platz und Kosten) sparen will, kann man auch den den internen Pullup aktivieren und nur den Taster gegen Masse schalten.
Title: Re: Push Button verwenden?
Post by: hacky on Jan 16, 2011, 11:30 pm
e-tech student und microcontroller entwickler...

normale logik = variante 1?
Title: Re: Push Button verwenden?
Post by: sth77 on Jan 16, 2011, 11:41 pm
Ganz genau.